summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/onefiledist.yml14
-rw-r--r--.github/workflows/win-build.yml14
-rw-r--r--doc/Async.335
-rw-r--r--doc/Class.315
-rw-r--r--doc/msgcat.n4
-rw-r--r--doc/string.n7
-rw-r--r--generic/regc_locale.c623
-rw-r--r--generic/tcl.decls13
-rw-r--r--generic/tcl.h12
-rw-r--r--generic/tclAssembly.c10
-rw-r--r--generic/tclAsync.c210
-rw-r--r--generic/tclBasic.c18
-rw-r--r--generic/tclBinary.c74
-rw-r--r--generic/tclCkalloc.c2
-rw-r--r--generic/tclClock.c2
-rw-r--r--generic/tclCmdAH.c4
-rw-r--r--generic/tclCmdMZ.c28
-rw-r--r--generic/tclCompCmds.c6
-rw-r--r--generic/tclCompExpr.c10
-rw-r--r--generic/tclCompile.c381
-rw-r--r--generic/tclCompile.h36
-rw-r--r--generic/tclDecls.h51
-rw-r--r--generic/tclDictObj.c58
-rw-r--r--generic/tclDisassemble.c32
-rw-r--r--generic/tclEncoding.c304
-rw-r--r--generic/tclEnsemble.c44
-rw-r--r--generic/tclEnv.c10
-rw-r--r--generic/tclEvent.c6
-rw-r--r--generic/tclExecute.c52
-rw-r--r--generic/tclGet.c4
-rw-r--r--generic/tclIO.c54
-rw-r--r--generic/tclIORChan.c4
-rw-r--r--generic/tclIORTrans.c2
-rw-r--r--generic/tclIndexObj.c50
-rw-r--r--generic/tclInt.h32
-rw-r--r--generic/tclLink.c6
-rw-r--r--generic/tclListObj.c140
-rw-r--r--generic/tclLiteral.c6
-rw-r--r--generic/tclNamesp.c35
-rw-r--r--generic/tclOO.c20
-rw-r--r--generic/tclOO.decls6
-rw-r--r--generic/tclOOCall.c14
-rw-r--r--generic/tclOODecls.h11
-rw-r--r--generic/tclOOMethod.c4
-rw-r--r--generic/tclOOStubInit.c2
-rw-r--r--generic/tclObj.c56
-rw-r--r--generic/tclPathObj.c38
-rw-r--r--generic/tclProc.c74
-rw-r--r--generic/tclRegexp.c22
-rw-r--r--generic/tclResult.c4
-rw-r--r--generic/tclScan.c4
-rw-r--r--generic/tclStrToD.c10
-rw-r--r--generic/tclStringObj.c28
-rw-r--r--generic/tclStubInit.c9
-rw-r--r--generic/tclTest.c15
-rw-r--r--generic/tclThread.c14
-rw-r--r--generic/tclUniData.c1852
-rw-r--r--generic/tclUtil.c22
-rw-r--r--generic/tclVar.c58
-rw-r--r--generic/tclZipfs.c2
-rw-r--r--library/encoding/cns11643.enc1584
-rw-r--r--library/init.tcl2
-rw-r--r--library/safe.tcl2
-rw-r--r--library/tcltest/tcltest.tcl6
-rw-r--r--library/tzdata/Africa/Accra67
-rw-r--r--library/tzdata/America/Anguilla6
-rw-r--r--library/tzdata/America/Antigua6
-rw-r--r--library/tzdata/America/Aruba6
-rw-r--r--library/tzdata/America/Atikokan13
-rw-r--r--library/tzdata/America/Barbados11
-rw-r--r--library/tzdata/America/Blanc-Sablon13
-rw-r--r--library/tzdata/America/Coral_Harbour6
-rw-r--r--library/tzdata/America/Creston9
-rw-r--r--library/tzdata/America/Curacao8
-rw-r--r--library/tzdata/America/Dominica6
-rw-r--r--library/tzdata/America/Grenada6
-rw-r--r--library/tzdata/America/Guadeloupe6
-rw-r--r--library/tzdata/America/Guyana9
-rw-r--r--library/tzdata/America/Kralendijk6
-rw-r--r--library/tzdata/America/Lower_Princes6
-rw-r--r--library/tzdata/America/Marigot6
-rw-r--r--library/tzdata/America/Montserrat6
-rw-r--r--library/tzdata/America/Nassau285
-rw-r--r--library/tzdata/America/Port_of_Spain7
-rw-r--r--library/tzdata/America/St_Barthelemy6
-rw-r--r--library/tzdata/America/St_Kitts6
-rw-r--r--library/tzdata/America/St_Lucia6
-rw-r--r--library/tzdata/America/St_Thomas6
-rw-r--r--library/tzdata/America/St_Vincent6
-rw-r--r--library/tzdata/America/Tortola6
-rw-r--r--library/tzdata/America/Virgin6
-rw-r--r--library/tzdata/Antarctica/DumontDUrville9
-rw-r--r--library/tzdata/Antarctica/Syowa7
-rw-r--r--library/tzdata/Asia/Amman156
-rw-r--r--library/tzdata/Atlantic/Azores2
-rw-r--r--library/tzdata/Atlantic/Madeira2
-rw-r--r--library/tzdata/Europe/Lisbon2
-rw-r--r--library/tzdata/Pacific/Apia157
-rw-r--r--library/tzdata/Pacific/Enderbury9
-rw-r--r--library/tzdata/Pacific/Kanton8
-rw-r--r--library/tzdata/Pacific/Niue5
-rw-r--r--library/tzdata/Pacific/Rarotonga5
-rw-r--r--library/tzdata/Pacific/Tongatapu6
-rw-r--r--libtommath/tommath.h2
-rw-r--r--macosx/tclMacOSXFCmd.c4
-rw-r--r--macosx/tclMacOSXNotify.c162
-rw-r--r--tests/async.test7
-rw-r--r--tests/cmdAH.test4
-rw-r--r--tests/encoding.test79
-rw-r--r--tests/http11.test2
-rw-r--r--tests/httpPipeline.test2
-rw-r--r--tests/httpTest.tcl2
-rw-r--r--tests/httpTestScript.tcl2
-rw-r--r--tests/httpd11.tcl2
-rw-r--r--tests/info.test2
-rw-r--r--tests/namespace.test18
-rw-r--r--tests/proc.test9
-rw-r--r--tests/regexp.test3
-rw-r--r--tests/regexpComp.test2
-rw-r--r--tests/safe.test8
-rw-r--r--tests/string.test2
-rw-r--r--tests/stringObj.test2
-rw-r--r--tests/tcltests.tcl1
-rw-r--r--tools/checkLibraryDoc.tcl2
-rw-r--r--tools/encoding/big5.txt103
-rw-r--r--tools/encoding/cns11643.txt17796
-rw-r--r--tools/encoding/jis0201.txt52
-rw-r--r--tools/encoding/jis0208.txt66
-rw-r--r--tools/encoding/jis0212.txt71
-rw-r--r--tools/encoding/shiftjis.txt66
-rwxr-xr-xtools/findBadExternals.tcl2
-rw-r--r--tools/genStubs.tcl4
-rw-r--r--tools/index.tcl2
-rw-r--r--tools/installData.tcl2
-rw-r--r--tools/installVfs.tcl2
-rwxr-xr-xtools/loadICU.tcl2
-rw-r--r--tools/makeHeader.tcl2
-rw-r--r--tools/mkdepend.tcl2
-rw-r--r--tools/regexpTestLib.tcl4
-rw-r--r--tools/tclOOScript.tcl6
-rwxr-xr-xtools/tclZIC.tcl2
-rw-r--r--tools/tcltk-man2html-utils.tcl4
-rwxr-xr-xtools/tcltk-man2html.tcl4
-rw-r--r--tools/uniParse.tcl4
-rwxr-xr-xunix/configure303
-rw-r--r--unix/configure.ac7
-rw-r--r--unix/tclConfig.h.in3
-rw-r--r--unix/tclEpollNotfy.c69
-rw-r--r--unix/tclKqueueNotfy.c81
-rw-r--r--unix/tclSelectNotfy.c147
-rw-r--r--unix/tclUnixFCmd.c6
-rw-r--r--unix/tclUnixFile.c27
-rw-r--r--unix/tclUnixNotfy.c80
-rw-r--r--unix/tclUnixPort.h3
-rw-r--r--unix/tclUnixThrd.c8
-rwxr-xr-xwin/configure142
-rw-r--r--win/rules.vc2
-rw-r--r--win/tclWinLoad.c2
-rw-r--r--win/tclWinNotify.c49
-rw-r--r--win/tclsh.exe.manifest.in4
160 files changed, 23289 insertions, 3322 deletions
diff --git a/.github/workflows/onefiledist.yml b/.github/workflows/onefiledist.yml
index b5caa4e..b6b3614 100644
--- a/.github/workflows/onefiledist.yml
+++ b/.github/workflows/onefiledist.yml
@@ -103,12 +103,18 @@ jobs:
runs-on: windows-latest
defaults:
run:
- shell: bash
+ shell: msys2 {0}
+ env:
+ CC: gcc
+ CFGOPT: --disable-symbols --disable-shared
steps:
- - name: Checkout
- uses: actions/checkout@v2
- name: Install MSYS2
uses: msys2/setup-msys2@v2
+ with:
+ msystem: UCRT64
+ install: git mingw-w64-ucrt-x86_64-toolchain make zip
+ - name: Checkout
+ uses: actions/checkout@v2
- name: Prepare
run: |
touch generic/tclStubInit.c generic/tclOOStubInit.c
@@ -116,7 +122,7 @@ jobs:
mkdir 1dist
working-directory: .
- name: Configure
- run: ./configure --disable-symbols --disable-shared --enable-zipfs
+ run: ./configure $CFGOPT
working-directory: win
- name: Build
run: |
diff --git a/.github/workflows/win-build.yml b/.github/workflows/win-build.yml
index 7520704..f8a0a6c 100644
--- a/.github/workflows/win-build.yml
+++ b/.github/workflows/win-build.yml
@@ -1,5 +1,7 @@
name: Windows
on: [push]
+env:
+ ERROR_ON_FAILURES: 1
jobs:
msvc:
runs-on: windows-latest
@@ -41,13 +43,12 @@ jobs:
throw "nmake exit code: $lastexitcode"
}
env:
- ERROR_ON_FAILURES: 1
CI_BUILD_WITH_MSVC: 1
gcc:
runs-on: windows-latest
defaults:
run:
- shell: bash
+ shell: msys2 {0}
working-directory: win
strategy:
matrix:
@@ -60,10 +61,13 @@ jobs:
- "--enable-symbols=mem"
# Using powershell means we need to explicitly stop on failure
steps:
+ - name: Install MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: MINGW64
+ install: git mingw-w64-x86_64-toolchain make
- name: Checkout
uses: actions/checkout@v2
- - name: Install MSYS2 and Make
- run: choco install msys2 make
- name: Prepare
run: |
touch tclStubInit.c tclOOStubInit.c tclOOScript.h
@@ -80,8 +84,6 @@ jobs:
run: make tcltest
- name: Run Tests
run: make test
- env:
- ERROR_ON_FAILURES: 1
# If you add builds with Wine, be sure to define the environment variable
# CI_USING_WINE when running them so that broken tests know not to run.
diff --git a/doc/Async.3 b/doc/Async.3
index 347ba3d..e6ec5f8 100644
--- a/doc/Async.3
+++ b/doc/Async.3
@@ -9,7 +9,7 @@
.so man.macros
.BS
.SH NAME
-Tcl_AsyncCreate, Tcl_AsyncMark, Tcl_AsyncInvoke, Tcl_AsyncDelete, Tcl_AsyncReady \- handle asynchronous events
+Tcl_AsyncCreate, Tcl_AsyncMark, Tcl_AsyncMarkFromSignal, Tcl_AsyncInvoke, Tcl_AsyncDelete, Tcl_AsyncReady \- handle asynchronous events
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -17,11 +17,16 @@ Tcl_AsyncCreate, Tcl_AsyncMark, Tcl_AsyncInvoke, Tcl_AsyncDelete, Tcl_AsyncReady
Tcl_AsyncHandler
\fBTcl_AsyncCreate\fR(\fIproc, clientData\fR)
.sp
+void
\fBTcl_AsyncMark\fR(\fIasync\fR)
.sp
int
+\fBTcl_AsyncMarkFromSignal\fR(\fIasync\fR, \fIsigNumber\fR)
+.sp
+int
\fBTcl_AsyncInvoke\fR(\fIinterp, code\fR)
.sp
+void
\fBTcl_AsyncDelete\fR(\fIasync\fR)
.sp
int
@@ -34,6 +39,8 @@ Procedure to invoke to handle an asynchronous event.
One-word value to pass to \fIproc\fR.
.AP Tcl_AsyncHandler async in
Token for asynchronous event handler.
+.AP int sigNumber in
+POSIX signal number, when used in a signal context.
.AP Tcl_Interp *interp in
Tcl interpreter in which command was being evaluated when handler was
invoked, or NULL if handler was invoked when there was no interpreter
@@ -60,10 +67,11 @@ to a clean state, such as after the current Tcl command completes.
.PP
\fBTcl_AsyncCreate\fR, \fBTcl_AsyncDelete\fR, and \fBTcl_AsyncReady\fR
are thread sensitive. They access and/or set a thread-specific data
-structure in the event of a core built with \fI\-\-enable\-threads\fR. The token
-created by \fBTcl_AsyncCreate\fR contains the needed thread information it
-was called from so that calling \fBTcl_AsyncMark\fR(\fItoken\fR) will only yield
-the origin thread into the asynchronous handler.
+structure in the event of a core built with \fI\-\-enable\-threads\fR.
+The token created by \fBTcl_AsyncCreate\fR contains the needed thread
+information it was called from so that calling \fBTcl_AsyncMarkFromSignal\fR
+or \fBTcl_AsyncMark\fR with this token will only yield the origin
+thread into the asynchronous handler.
.PP
\fBTcl_AsyncCreate\fR creates an asynchronous handler and returns
a token for it.
@@ -72,13 +80,16 @@ any occurrences of the asynchronous event that it is intended
to handle (it is not safe to create a handler at the time of
an event).
When an asynchronous event occurs the code that detects the event
-(such as a signal handler) should call \fBTcl_AsyncMark\fR with the
-token for the handler.
-\fBTcl_AsyncMark\fR will mark the handler as ready to execute, but it
-will not invoke the handler immediately.
-Tcl will call the \fIproc\fR associated with the handler later, when
-the world is in a safe state, and \fIproc\fR can then carry out
-the actions associated with the asynchronous event.
+(such as a POSIX signal handler) should call \fBTcl_AsyncMarkFromSignal\fR
+with the token for the handler and the POSIX signal number. The
+return value of this function is true, when the handler will be
+marked, false otherwise.
+For non-signal contexts, \fBTcl_AsyncMark\fR serves the same purpose.
+\fBTcl_AsyncMarkFromSignal\fR and \fBTcl_AsyncMark\fR will mark
+the handler as ready to execute, but will not invoke the handler
+immediately. Tcl will call the \fIproc\fR associated with the
+handler later, when the world is in a safe state, and \fIproc\fR
+can then carry out the actions associated with the asynchronous event.
\fIProc\fR should have arguments and result that match the
type \fBTcl_AsyncProc\fR:
.PP
diff --git a/doc/Class.3 b/doc/Class.3
index 5f8e061..c89c5f4 100644
--- a/doc/Class.3
+++ b/doc/Class.3
@@ -55,6 +55,14 @@ Tcl_ObjectMapMethodNameProc
\fBTcl_ObjectGetMethodNameMapper\fR(\fIobject\fR)
.sp
\fBTcl_ObjectSetMethodNameMapper\fR(\fIobject\fR, \fImethodNameMapper\fR)
+.sp
+.VS "TIP 605"
+Tcl_Class
+\fBTcl_GetClassOfObject\fR(\fIobject\fR)
+.sp
+Tcl_Obj *
+\fBTcl_GetObjectClassName\fR(\fIinterp\fR, \fIobject\fR)
+.VE "TIP 605"
.SH ARGUMENTS
.AS ClientData metadata in/out
.AP Tcl_Interp *interp in/out
@@ -114,6 +122,13 @@ function. Note that the Tcl_Obj reference returned by \fBTcl_GetObjectName\fR
is a shared reference. You can also get whether the object has been marked for
deletion with \fBTcl_ObjectDeleted\fR (it returns true if deletion of the
object has begun); this can be useful during the processing of methods.
+.VS "TIP 605"
+The class of an object can be retrieved with \fBTcl_GetClassOfObject\fR, and
+the name of the class of an object with \fBTcl_GetObjectClassName\fR; note
+that these two \fImay\fR return NULL during deletion of an object (this is
+transient, and only occurs when the object is a long way through being
+deleted).
+.VE "TIP 605"
.PP
Instances of classes are created using \fBTcl_NewObjectInstance\fR, which
creates an object from any class (and which is internally called by both
diff --git a/doc/msgcat.n b/doc/msgcat.n
index 1384fa8..ac6dde7 100644
--- a/doc/msgcat.n
+++ b/doc/msgcat.n
@@ -735,7 +735,7 @@ To register to a callback, use:
namespace eval gui {
msgcat::mcpackageconfig changecmd updateGUI
- proc updateGui args {
+ proc updateGUI args {
puts "New locale is '[lindex $args 0]'."
}
}
@@ -769,7 +769,7 @@ msgcat::mcpackageconfig unknowncmd ""
.CE
As an example, the user requires the week day in a certain locale as follows:
.CS
-clock format clock seconds -format %A -locale fr
+clock format [clock seconds] -format %A -locale fr
.CE
\fBclock\fR sets the package locale to \fBfr\fR and looks for the day name as follows:
.CS
diff --git a/doc/string.n b/doc/string.n
index f3d7616..aefe485 100644
--- a/doc/string.n
+++ b/doc/string.n
@@ -319,9 +319,10 @@ specified as for the \fBindex\fR method. If \fInewstring\fR is
specified, then it is placed in the removed character range. If
\fIfirst\fR is less than zero then it is treated as if it were zero,
and if \fIlast\fR is greater than or equal to the length of the string
-then it is treated as if it were \fBend\fR. If \fIfirst\fR is greater
-than \fIlast\fR or the length of the initial string, or \fIlast\fR is
-less than 0, then the initial string is returned untouched.
+then it is treated as if it were \fBend\fR. The initial string is
+returned untouched, if \fIfirst\fR is greater than \fIlast\fR, or if
+\fIfirst\fR is equal to or greater than the length of the initial string,
+or \fIlast\fR is less than 0.
.TP
\fBstring reverse \fIstring\fR
.
diff --git a/generic/regc_locale.c b/generic/regc_locale.c
index 2aea16d..cf751ba 100644
--- a/generic/regc_locale.c
+++ b/generic/regc_locale.c
@@ -140,34 +140,34 @@ static const crange alphaRangeTable[] = {
{0x3F7, 0x481}, {0x48A, 0x52F}, {0x531, 0x556}, {0x560, 0x588},
{0x5D0, 0x5EA}, {0x5EF, 0x5F2}, {0x620, 0x64A}, {0x671, 0x6D3},
{0x6FA, 0x6FC}, {0x712, 0x72F}, {0x74D, 0x7A5}, {0x7CA, 0x7EA},
- {0x800, 0x815}, {0x840, 0x858}, {0x860, 0x86A}, {0x8A0, 0x8B4},
- {0x8B6, 0x8C7}, {0x904, 0x939}, {0x958, 0x961}, {0x971, 0x980},
- {0x985, 0x98C}, {0x993, 0x9A8}, {0x9AA, 0x9B0}, {0x9B6, 0x9B9},
- {0x9DF, 0x9E1}, {0xA05, 0xA0A}, {0xA13, 0xA28}, {0xA2A, 0xA30},
- {0xA59, 0xA5C}, {0xA72, 0xA74}, {0xA85, 0xA8D}, {0xA8F, 0xA91},
- {0xA93, 0xAA8}, {0xAAA, 0xAB0}, {0xAB5, 0xAB9}, {0xB05, 0xB0C},
- {0xB13, 0xB28}, {0xB2A, 0xB30}, {0xB35, 0xB39}, {0xB5F, 0xB61},
- {0xB85, 0xB8A}, {0xB8E, 0xB90}, {0xB92, 0xB95}, {0xBA8, 0xBAA},
- {0xBAE, 0xBB9}, {0xC05, 0xC0C}, {0xC0E, 0xC10}, {0xC12, 0xC28},
- {0xC2A, 0xC39}, {0xC58, 0xC5A}, {0xC85, 0xC8C}, {0xC8E, 0xC90},
- {0xC92, 0xCA8}, {0xCAA, 0xCB3}, {0xCB5, 0xCB9}, {0xD04, 0xD0C},
- {0xD0E, 0xD10}, {0xD12, 0xD3A}, {0xD54, 0xD56}, {0xD5F, 0xD61},
- {0xD7A, 0xD7F}, {0xD85, 0xD96}, {0xD9A, 0xDB1}, {0xDB3, 0xDBB},
- {0xDC0, 0xDC6}, {0xE01, 0xE30}, {0xE40, 0xE46}, {0xE86, 0xE8A},
- {0xE8C, 0xEA3}, {0xEA7, 0xEB0}, {0xEC0, 0xEC4}, {0xEDC, 0xEDF},
- {0xF40, 0xF47}, {0xF49, 0xF6C}, {0xF88, 0xF8C}, {0x1000, 0x102A},
- {0x1050, 0x1055}, {0x105A, 0x105D}, {0x106E, 0x1070}, {0x1075, 0x1081},
- {0x10A0, 0x10C5}, {0x10D0, 0x10FA}, {0x10FC, 0x1248}, {0x124A, 0x124D},
- {0x1250, 0x1256}, {0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D},
- {0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE}, {0x12C2, 0x12C5},
- {0x12C8, 0x12D6}, {0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A},
- {0x1380, 0x138F}, {0x13A0, 0x13F5}, {0x13F8, 0x13FD}, {0x1401, 0x166C},
- {0x166F, 0x167F}, {0x1681, 0x169A}, {0x16A0, 0x16EA}, {0x16F1, 0x16F8},
- {0x1700, 0x170C}, {0x170E, 0x1711}, {0x1720, 0x1731}, {0x1740, 0x1751},
+ {0x800, 0x815}, {0x840, 0x858}, {0x860, 0x86A}, {0x870, 0x887},
+ {0x889, 0x88E}, {0x8A0, 0x8C9}, {0x904, 0x939}, {0x958, 0x961},
+ {0x971, 0x980}, {0x985, 0x98C}, {0x993, 0x9A8}, {0x9AA, 0x9B0},
+ {0x9B6, 0x9B9}, {0x9DF, 0x9E1}, {0xA05, 0xA0A}, {0xA13, 0xA28},
+ {0xA2A, 0xA30}, {0xA59, 0xA5C}, {0xA72, 0xA74}, {0xA85, 0xA8D},
+ {0xA8F, 0xA91}, {0xA93, 0xAA8}, {0xAAA, 0xAB0}, {0xAB5, 0xAB9},
+ {0xB05, 0xB0C}, {0xB13, 0xB28}, {0xB2A, 0xB30}, {0xB35, 0xB39},
+ {0xB5F, 0xB61}, {0xB85, 0xB8A}, {0xB8E, 0xB90}, {0xB92, 0xB95},
+ {0xBA8, 0xBAA}, {0xBAE, 0xBB9}, {0xC05, 0xC0C}, {0xC0E, 0xC10},
+ {0xC12, 0xC28}, {0xC2A, 0xC39}, {0xC58, 0xC5A}, {0xC85, 0xC8C},
+ {0xC8E, 0xC90}, {0xC92, 0xCA8}, {0xCAA, 0xCB3}, {0xCB5, 0xCB9},
+ {0xD04, 0xD0C}, {0xD0E, 0xD10}, {0xD12, 0xD3A}, {0xD54, 0xD56},
+ {0xD5F, 0xD61}, {0xD7A, 0xD7F}, {0xD85, 0xD96}, {0xD9A, 0xDB1},
+ {0xDB3, 0xDBB}, {0xDC0, 0xDC6}, {0xE01, 0xE30}, {0xE40, 0xE46},
+ {0xE86, 0xE8A}, {0xE8C, 0xEA3}, {0xEA7, 0xEB0}, {0xEC0, 0xEC4},
+ {0xEDC, 0xEDF}, {0xF40, 0xF47}, {0xF49, 0xF6C}, {0xF88, 0xF8C},
+ {0x1000, 0x102A}, {0x1050, 0x1055}, {0x105A, 0x105D}, {0x106E, 0x1070},
+ {0x1075, 0x1081}, {0x10A0, 0x10C5}, {0x10D0, 0x10FA}, {0x10FC, 0x1248},
+ {0x124A, 0x124D}, {0x1250, 0x1256}, {0x125A, 0x125D}, {0x1260, 0x1288},
+ {0x128A, 0x128D}, {0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE},
+ {0x12C2, 0x12C5}, {0x12C8, 0x12D6}, {0x12D8, 0x1310}, {0x1312, 0x1315},
+ {0x1318, 0x135A}, {0x1380, 0x138F}, {0x13A0, 0x13F5}, {0x13F8, 0x13FD},
+ {0x1401, 0x166C}, {0x166F, 0x167F}, {0x1681, 0x169A}, {0x16A0, 0x16EA},
+ {0x16F1, 0x16F8}, {0x1700, 0x1711}, {0x171F, 0x1731}, {0x1740, 0x1751},
{0x1760, 0x176C}, {0x176E, 0x1770}, {0x1780, 0x17B3}, {0x1820, 0x1878},
{0x1880, 0x1884}, {0x1887, 0x18A8}, {0x18B0, 0x18F5}, {0x1900, 0x191E},
{0x1950, 0x196D}, {0x1970, 0x1974}, {0x1980, 0x19AB}, {0x19B0, 0x19C9},
- {0x1A00, 0x1A16}, {0x1A20, 0x1A54}, {0x1B05, 0x1B33}, {0x1B45, 0x1B4B},
+ {0x1A00, 0x1A16}, {0x1A20, 0x1A54}, {0x1B05, 0x1B33}, {0x1B45, 0x1B4C},
{0x1B83, 0x1BA0}, {0x1BBA, 0x1BE5}, {0x1C00, 0x1C23}, {0x1C4D, 0x1C4F},
{0x1C5A, 0x1C7D}, {0x1C80, 0x1C88}, {0x1C90, 0x1CBA}, {0x1CBD, 0x1CBF},
{0x1CE9, 0x1CEC}, {0x1CEE, 0x1CF3}, {0x1D00, 0x1DBF}, {0x1E00, 0x1F15},
@@ -176,74 +176,78 @@ static const crange alphaRangeTable[] = {
{0x1FC6, 0x1FCC}, {0x1FD0, 0x1FD3}, {0x1FD6, 0x1FDB}, {0x1FE0, 0x1FEC},
{0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFC}, {0x2090, 0x209C}, {0x210A, 0x2113},
{0x2119, 0x211D}, {0x212A, 0x212D}, {0x212F, 0x2139}, {0x213C, 0x213F},
- {0x2145, 0x2149}, {0x2C00, 0x2C2E}, {0x2C30, 0x2C5E}, {0x2C60, 0x2CE4},
- {0x2CEB, 0x2CEE}, {0x2D00, 0x2D25}, {0x2D30, 0x2D67}, {0x2D80, 0x2D96},
- {0x2DA0, 0x2DA6}, {0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE},
- {0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE},
- {0x3031, 0x3035}, {0x3041, 0x3096}, {0x309D, 0x309F}, {0x30A1, 0x30FA},
- {0x30FC, 0x30FF}, {0x3105, 0x312F}, {0x3131, 0x318E}, {0x31A0, 0x31BF},
- {0x31F0, 0x31FF}, {0x3400, 0x4DBF}, {0x4E00, 0x9FFC}, {0xA000, 0xA48C},
- {0xA4D0, 0xA4FD}, {0xA500, 0xA60C}, {0xA610, 0xA61F}, {0xA640, 0xA66E},
- {0xA67F, 0xA69D}, {0xA6A0, 0xA6E5}, {0xA717, 0xA71F}, {0xA722, 0xA788},
- {0xA78B, 0xA7BF}, {0xA7C2, 0xA7CA}, {0xA7F5, 0xA801}, {0xA803, 0xA805},
- {0xA807, 0xA80A}, {0xA80C, 0xA822}, {0xA840, 0xA873}, {0xA882, 0xA8B3},
- {0xA8F2, 0xA8F7}, {0xA90A, 0xA925}, {0xA930, 0xA946}, {0xA960, 0xA97C},
- {0xA984, 0xA9B2}, {0xA9E0, 0xA9E4}, {0xA9E6, 0xA9EF}, {0xA9FA, 0xA9FE},
- {0xAA00, 0xAA28}, {0xAA40, 0xAA42}, {0xAA44, 0xAA4B}, {0xAA60, 0xAA76},
- {0xAA7E, 0xAAAF}, {0xAAB9, 0xAABD}, {0xAADB, 0xAADD}, {0xAAE0, 0xAAEA},
- {0xAAF2, 0xAAF4}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E}, {0xAB11, 0xAB16},
- {0xAB20, 0xAB26}, {0xAB28, 0xAB2E}, {0xAB30, 0xAB5A}, {0xAB5C, 0xAB69},
- {0xAB70, 0xABE2}, {0xAC00, 0xD7A3}, {0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB},
- {0xF900, 0xFA6D}, {0xFA70, 0xFAD9}, {0xFB00, 0xFB06}, {0xFB13, 0xFB17},
- {0xFB1F, 0xFB28}, {0xFB2A, 0xFB36}, {0xFB38, 0xFB3C}, {0xFB46, 0xFBB1},
- {0xFBD3, 0xFD3D}, {0xFD50, 0xFD8F}, {0xFD92, 0xFDC7}, {0xFDF0, 0xFDFB},
- {0xFE70, 0xFE74}, {0xFE76, 0xFEFC}, {0xFF21, 0xFF3A}, {0xFF41, 0xFF5A},
- {0xFF66, 0xFFBE}, {0xFFC2, 0xFFC7}, {0xFFCA, 0xFFCF}, {0xFFD2, 0xFFD7},
- {0xFFDA, 0xFFDC}
+ {0x2145, 0x2149}, {0x2C00, 0x2CE4}, {0x2CEB, 0x2CEE}, {0x2D00, 0x2D25},
+ {0x2D30, 0x2D67}, {0x2D80, 0x2D96}, {0x2DA0, 0x2DA6}, {0x2DA8, 0x2DAE},
+ {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE}, {0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE},
+ {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE}, {0x3031, 0x3035}, {0x3041, 0x3096},
+ {0x309D, 0x309F}, {0x30A1, 0x30FA}, {0x30FC, 0x30FF}, {0x3105, 0x312F},
+ {0x3131, 0x318E}, {0x31A0, 0x31BF}, {0x31F0, 0x31FF}, {0x3400, 0x4DBF},
+ {0x4E00, 0xA48C}, {0xA4D0, 0xA4FD}, {0xA500, 0xA60C}, {0xA610, 0xA61F},
+ {0xA640, 0xA66E}, {0xA67F, 0xA69D}, {0xA6A0, 0xA6E5}, {0xA717, 0xA71F},
+ {0xA722, 0xA788}, {0xA78B, 0xA7CA}, {0xA7D5, 0xA7D9}, {0xA7F2, 0xA801},
+ {0xA803, 0xA805}, {0xA807, 0xA80A}, {0xA80C, 0xA822}, {0xA840, 0xA873},
+ {0xA882, 0xA8B3}, {0xA8F2, 0xA8F7}, {0xA90A, 0xA925}, {0xA930, 0xA946},
+ {0xA960, 0xA97C}, {0xA984, 0xA9B2}, {0xA9E0, 0xA9E4}, {0xA9E6, 0xA9EF},
+ {0xA9FA, 0xA9FE}, {0xAA00, 0xAA28}, {0xAA40, 0xAA42}, {0xAA44, 0xAA4B},
+ {0xAA60, 0xAA76}, {0xAA7E, 0xAAAF}, {0xAAB9, 0xAABD}, {0xAADB, 0xAADD},
+ {0xAAE0, 0xAAEA}, {0xAAF2, 0xAAF4}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E},
+ {0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E}, {0xAB30, 0xAB5A},
+ {0xAB5C, 0xAB69}, {0xAB70, 0xABE2}, {0xAC00, 0xD7A3}, {0xD7B0, 0xD7C6},
+ {0xD7CB, 0xD7FB}, {0xF900, 0xFA6D}, {0xFA70, 0xFAD9}, {0xFB00, 0xFB06},
+ {0xFB13, 0xFB17}, {0xFB1F, 0xFB28}, {0xFB2A, 0xFB36}, {0xFB38, 0xFB3C},
+ {0xFB46, 0xFBB1}, {0xFBD3, 0xFD3D}, {0xFD50, 0xFD8F}, {0xFD92, 0xFDC7},
+ {0xFDF0, 0xFDFB}, {0xFE70, 0xFE74}, {0xFE76, 0xFEFC}, {0xFF21, 0xFF3A},
+ {0xFF41, 0xFF5A}, {0xFF66, 0xFFBE}, {0xFFC2, 0xFFC7}, {0xFFCA, 0xFFCF},
+ {0xFFD2, 0xFFD7}, {0xFFDA, 0xFFDC}
#if CHRBITS > 16
,{0x10000, 0x1000B}, {0x1000D, 0x10026}, {0x10028, 0x1003A}, {0x1003F, 0x1004D},
{0x10050, 0x1005D}, {0x10080, 0x100FA}, {0x10280, 0x1029C}, {0x102A0, 0x102D0},
{0x10300, 0x1031F}, {0x1032D, 0x10340}, {0x10342, 0x10349}, {0x10350, 0x10375},
{0x10380, 0x1039D}, {0x103A0, 0x103C3}, {0x103C8, 0x103CF}, {0x10400, 0x1049D},
{0x104B0, 0x104D3}, {0x104D8, 0x104FB}, {0x10500, 0x10527}, {0x10530, 0x10563},
- {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10800, 0x10805},
- {0x1080A, 0x10835}, {0x1083F, 0x10855}, {0x10860, 0x10876}, {0x10880, 0x1089E},
- {0x108E0, 0x108F2}, {0x10900, 0x10915}, {0x10920, 0x10939}, {0x10980, 0x109B7},
- {0x10A10, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35}, {0x10A60, 0x10A7C},
- {0x10A80, 0x10A9C}, {0x10AC0, 0x10AC7}, {0x10AC9, 0x10AE4}, {0x10B00, 0x10B35},
- {0x10B40, 0x10B55}, {0x10B60, 0x10B72}, {0x10B80, 0x10B91}, {0x10C00, 0x10C48},
- {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2}, {0x10D00, 0x10D23}, {0x10E80, 0x10EA9},
- {0x10F00, 0x10F1C}, {0x10F30, 0x10F45}, {0x10FB0, 0x10FC4}, {0x10FE0, 0x10FF6},
- {0x11003, 0x11037}, {0x11083, 0x110AF}, {0x110D0, 0x110E8}, {0x11103, 0x11126},
- {0x11150, 0x11172}, {0x11183, 0x111B2}, {0x111C1, 0x111C4}, {0x11200, 0x11211},
- {0x11213, 0x1122B}, {0x11280, 0x11286}, {0x1128A, 0x1128D}, {0x1128F, 0x1129D},
- {0x1129F, 0x112A8}, {0x112B0, 0x112DE}, {0x11305, 0x1130C}, {0x11313, 0x11328},
- {0x1132A, 0x11330}, {0x11335, 0x11339}, {0x1135D, 0x11361}, {0x11400, 0x11434},
- {0x11447, 0x1144A}, {0x1145F, 0x11461}, {0x11480, 0x114AF}, {0x11580, 0x115AE},
- {0x115D8, 0x115DB}, {0x11600, 0x1162F}, {0x11680, 0x116AA}, {0x11700, 0x1171A},
- {0x11800, 0x1182B}, {0x118A0, 0x118DF}, {0x118FF, 0x11906}, {0x1190C, 0x11913},
- {0x11918, 0x1192F}, {0x119A0, 0x119A7}, {0x119AA, 0x119D0}, {0x11A0B, 0x11A32},
- {0x11A5C, 0x11A89}, {0x11AC0, 0x11AF8}, {0x11C00, 0x11C08}, {0x11C0A, 0x11C2E},
- {0x11C72, 0x11C8F}, {0x11D00, 0x11D06}, {0x11D0B, 0x11D30}, {0x11D60, 0x11D65},
- {0x11D6A, 0x11D89}, {0x11EE0, 0x11EF2}, {0x12000, 0x12399}, {0x12480, 0x12543},
+ {0x10570, 0x1057A}, {0x1057C, 0x1058A}, {0x1058C, 0x10592}, {0x10597, 0x105A1},
+ {0x105A3, 0x105B1}, {0x105B3, 0x105B9}, {0x10600, 0x10736}, {0x10740, 0x10755},
+ {0x10760, 0x10767}, {0x10780, 0x10785}, {0x10787, 0x107B0}, {0x107B2, 0x107BA},
+ {0x10800, 0x10805}, {0x1080A, 0x10835}, {0x1083F, 0x10855}, {0x10860, 0x10876},
+ {0x10880, 0x1089E}, {0x108E0, 0x108F2}, {0x10900, 0x10915}, {0x10920, 0x10939},
+ {0x10980, 0x109B7}, {0x10A10, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35},
+ {0x10A60, 0x10A7C}, {0x10A80, 0x10A9C}, {0x10AC0, 0x10AC7}, {0x10AC9, 0x10AE4},
+ {0x10B00, 0x10B35}, {0x10B40, 0x10B55}, {0x10B60, 0x10B72}, {0x10B80, 0x10B91},
+ {0x10C00, 0x10C48}, {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2}, {0x10D00, 0x10D23},
+ {0x10E80, 0x10EA9}, {0x10F00, 0x10F1C}, {0x10F30, 0x10F45}, {0x10F70, 0x10F81},
+ {0x10FB0, 0x10FC4}, {0x10FE0, 0x10FF6}, {0x11003, 0x11037}, {0x11083, 0x110AF},
+ {0x110D0, 0x110E8}, {0x11103, 0x11126}, {0x11150, 0x11172}, {0x11183, 0x111B2},
+ {0x111C1, 0x111C4}, {0x11200, 0x11211}, {0x11213, 0x1122B}, {0x11280, 0x11286},
+ {0x1128A, 0x1128D}, {0x1128F, 0x1129D}, {0x1129F, 0x112A8}, {0x112B0, 0x112DE},
+ {0x11305, 0x1130C}, {0x11313, 0x11328}, {0x1132A, 0x11330}, {0x11335, 0x11339},
+ {0x1135D, 0x11361}, {0x11400, 0x11434}, {0x11447, 0x1144A}, {0x1145F, 0x11461},
+ {0x11480, 0x114AF}, {0x11580, 0x115AE}, {0x115D8, 0x115DB}, {0x11600, 0x1162F},
+ {0x11680, 0x116AA}, {0x11700, 0x1171A}, {0x11740, 0x11746}, {0x11800, 0x1182B},
+ {0x118A0, 0x118DF}, {0x118FF, 0x11906}, {0x1190C, 0x11913}, {0x11918, 0x1192F},
+ {0x119A0, 0x119A7}, {0x119AA, 0x119D0}, {0x11A0B, 0x11A32}, {0x11A5C, 0x11A89},
+ {0x11AB0, 0x11AF8}, {0x11C00, 0x11C08}, {0x11C0A, 0x11C2E}, {0x11C72, 0x11C8F},
+ {0x11D00, 0x11D06}, {0x11D0B, 0x11D30}, {0x11D60, 0x11D65}, {0x11D6A, 0x11D89},
+ {0x11EE0, 0x11EF2}, {0x12000, 0x12399}, {0x12480, 0x12543}, {0x12F90, 0x12FF0},
{0x13000, 0x1342E}, {0x14400, 0x14646}, {0x16800, 0x16A38}, {0x16A40, 0x16A5E},
- {0x16AD0, 0x16AED}, {0x16B00, 0x16B2F}, {0x16B40, 0x16B43}, {0x16B63, 0x16B77},
- {0x16B7D, 0x16B8F}, {0x16E40, 0x16E7F}, {0x16F00, 0x16F4A}, {0x16F93, 0x16F9F},
- {0x17000, 0x187F7}, {0x18800, 0x18CD5}, {0x18D00, 0x18D08}, {0x1B000, 0x1B11E},
- {0x1B150, 0x1B152}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, {0x1BC00, 0x1BC6A},
- {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99}, {0x1D400, 0x1D454},
- {0x1D456, 0x1D49C}, {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B9}, {0x1D4BD, 0x1D4C3},
- {0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C},
- {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544}, {0x1D54A, 0x1D550},
- {0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D6C0}, {0x1D6C2, 0x1D6DA}, {0x1D6DC, 0x1D6FA},
- {0x1D6FC, 0x1D714}, {0x1D716, 0x1D734}, {0x1D736, 0x1D74E}, {0x1D750, 0x1D76E},
- {0x1D770, 0x1D788}, {0x1D78A, 0x1D7A8}, {0x1D7AA, 0x1D7C2}, {0x1D7C4, 0x1D7CB},
- {0x1E100, 0x1E12C}, {0x1E137, 0x1E13D}, {0x1E2C0, 0x1E2EB}, {0x1E800, 0x1E8C4},
+ {0x16A70, 0x16ABE}, {0x16AD0, 0x16AED}, {0x16B00, 0x16B2F}, {0x16B40, 0x16B43},
+ {0x16B63, 0x16B77}, {0x16B7D, 0x16B8F}, {0x16E40, 0x16E7F}, {0x16F00, 0x16F4A},
+ {0x16F93, 0x16F9F}, {0x17000, 0x187F7}, {0x18800, 0x18CD5}, {0x18D00, 0x18D08},
+ {0x1AFF0, 0x1AFF3}, {0x1AFF5, 0x1AFFB}, {0x1B000, 0x1B122}, {0x1B150, 0x1B152},
+ {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, {0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C},
+ {0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99}, {0x1D400, 0x1D454}, {0x1D456, 0x1D49C},
+ {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B9}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D505},
+ {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C}, {0x1D51E, 0x1D539},
+ {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544}, {0x1D54A, 0x1D550}, {0x1D552, 0x1D6A5},
+ {0x1D6A8, 0x1D6C0}, {0x1D6C2, 0x1D6DA}, {0x1D6DC, 0x1D6FA}, {0x1D6FC, 0x1D714},
+ {0x1D716, 0x1D734}, {0x1D736, 0x1D74E}, {0x1D750, 0x1D76E}, {0x1D770, 0x1D788},
+ {0x1D78A, 0x1D7A8}, {0x1D7AA, 0x1D7C2}, {0x1D7C4, 0x1D7CB}, {0x1DF00, 0x1DF1E},
+ {0x1E100, 0x1E12C}, {0x1E137, 0x1E13D}, {0x1E290, 0x1E2AD}, {0x1E2C0, 0x1E2EB},
+ {0x1E7E0, 0x1E7E6}, {0x1E7E8, 0x1E7EB}, {0x1E7F0, 0x1E7FE}, {0x1E800, 0x1E8C4},
{0x1E900, 0x1E943}, {0x1EE00, 0x1EE03}, {0x1EE05, 0x1EE1F}, {0x1EE29, 0x1EE32},
{0x1EE34, 0x1EE37}, {0x1EE4D, 0x1EE4F}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72},
{0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B},
- {0x1EEA1, 0x1EEA3}, {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x20000, 0x2A6DD},
- {0x2A700, 0x2B734}, {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0},
+ {0x1EEA1, 0x1EEA3}, {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x20000, 0x2A6DF},
+ {0x2A700, 0x2B738}, {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0},
{0x2F800, 0x2FA1D}, {0x30000, 0x3134A}
#endif
};
@@ -259,27 +263,28 @@ static const chr alphaCharTable[] = {
0xA38, 0xA39, 0xA5E, 0xAB2, 0xAB3, 0xABD, 0xAD0, 0xAE0, 0xAE1,
0xAF9, 0xB0F, 0xB10, 0xB32, 0xB33, 0xB3D, 0xB5C, 0xB5D, 0xB71,
0xB83, 0xB99, 0xB9A, 0xB9C, 0xB9E, 0xB9F, 0xBA3, 0xBA4, 0xBD0,
- 0xC3D, 0xC60, 0xC61, 0xC80, 0xCBD, 0xCDE, 0xCE0, 0xCE1, 0xCF1,
- 0xCF2, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE33, 0xE81, 0xE82, 0xE84,
- 0xEA5, 0xEB2, 0xEB3, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x1065,
- 0x1066, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA,
- 0x1AA7, 0x1BAE, 0x1BAF, 0x1CF5, 0x1CF6, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D,
- 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128,
- 0x214E, 0x2183, 0x2184, 0x2CF2, 0x2CF3, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F,
- 0x3005, 0x3006, 0x303B, 0x303C, 0xA62A, 0xA62B, 0xA8FB, 0xA8FD, 0xA8FE,
- 0xA9CF, 0xAA7A, 0xAAB1, 0xAAB5, 0xAAB6, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E,
- 0xFB40, 0xFB41, 0xFB43, 0xFB44
+ 0xC3D, 0xC5D, 0xC60, 0xC61, 0xC80, 0xCBD, 0xCDD, 0xCDE, 0xCE0,
+ 0xCE1, 0xCF1, 0xCF2, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE33, 0xE81,
+ 0xE82, 0xE84, 0xEA5, 0xEB2, 0xEB3, 0xEBD, 0xEC6, 0xF00, 0x103F,
+ 0x1061, 0x1065, 0x1066, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7,
+ 0x17DC, 0x18AA, 0x1AA7, 0x1BAE, 0x1BAF, 0x1CF5, 0x1CF6, 0x1CFA, 0x1F59,
+ 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124,
+ 0x2126, 0x2128, 0x214E, 0x2183, 0x2184, 0x2CF2, 0x2CF3, 0x2D27, 0x2D2D,
+ 0x2D6F, 0x2E2F, 0x3005, 0x3006, 0x303B, 0x303C, 0xA62A, 0xA62B, 0xA7D0,
+ 0xA7D1, 0xA7D3, 0xA8FB, 0xA8FD, 0xA8FE, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAB5,
+ 0xAAB6, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44
#if CHRBITS > 16
- ,0x1003C, 0x1003D, 0x10808, 0x10837, 0x10838, 0x1083C, 0x108F4, 0x108F5, 0x109BE,
- 0x109BF, 0x10A00, 0x10EB0, 0x10EB1, 0x10F27, 0x11144, 0x11147, 0x11176, 0x111DA,
- 0x111DC, 0x11288, 0x1130F, 0x11310, 0x11332, 0x11333, 0x1133D, 0x11350, 0x114C4,
- 0x114C5, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x11915, 0x11916, 0x1193F, 0x11941,
- 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D08, 0x11D09,
- 0x11D46, 0x11D67, 0x11D68, 0x11D98, 0x11FB0, 0x16F50, 0x16FE0, 0x16FE1, 0x16FE3,
- 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B,
- 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49,
- 0x1EE4B, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F,
- 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE7E
+ ,0x1003C, 0x1003D, 0x10594, 0x10595, 0x105BB, 0x105BC, 0x10808, 0x10837, 0x10838,
+ 0x1083C, 0x108F4, 0x108F5, 0x109BE, 0x109BF, 0x10A00, 0x10EB0, 0x10EB1, 0x10F27,
+ 0x11071, 0x11072, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288,
+ 0x1130F, 0x11310, 0x11332, 0x11333, 0x1133D, 0x11350, 0x114C4, 0x114C5, 0x114C7,
+ 0x11644, 0x116B8, 0x11909, 0x11915, 0x11916, 0x1193F, 0x11941, 0x119E1, 0x119E3,
+ 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D08, 0x11D09, 0x11D46, 0x11D67,
+ 0x11D68, 0x11D98, 0x11FB0, 0x16F50, 0x16FE0, 0x16FE1, 0x16FE3, 0x1AFFD, 0x1AFFE,
+ 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E7ED,
+ 0x1E7EE, 0x1E94B, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42,
+ 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B,
+ 0x1EE5D, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE7E
#endif
};
@@ -302,7 +307,7 @@ static const crange controlRangeTable[] = {
#define NUM_CONTROL_RANGE (sizeof(controlRangeTable)/sizeof(crange))
static const chr controlCharTable[] = {
- 0xAD, 0x61C, 0x6DD, 0x70F, 0x8E2, 0x180E, 0xFEFF
+ 0xAD, 0x61C, 0x6DD, 0x70F, 0x890, 0x891, 0x8E2, 0x180E, 0xFEFF
#if CHRBITS > 16
,0x110BD, 0x110CD, 0xE0001
#endif
@@ -330,8 +335,9 @@ static const crange digitRangeTable[] = {
{0x11136, 0x1113F}, {0x111D0, 0x111D9}, {0x112F0, 0x112F9}, {0x11450, 0x11459},
{0x114D0, 0x114D9}, {0x11650, 0x11659}, {0x116C0, 0x116C9}, {0x11730, 0x11739},
{0x118E0, 0x118E9}, {0x11950, 0x11959}, {0x11C50, 0x11C59}, {0x11D50, 0x11D59},
- {0x11DA0, 0x11DA9}, {0x16A60, 0x16A69}, {0x16B50, 0x16B59}, {0x1D7CE, 0x1D7FF},
- {0x1E140, 0x1E149}, {0x1E2F0, 0x1E2F9}, {0x1E950, 0x1E959}, {0x1FBF0, 0x1FBF9}
+ {0x11DA0, 0x11DA9}, {0x16A60, 0x16A69}, {0x16AC0, 0x16AC9}, {0x16B50, 0x16B59},
+ {0x1D7CE, 0x1D7FF}, {0x1E140, 0x1E149}, {0x1E2F0, 0x1E2F9}, {0x1E950, 0x1E959},
+ {0x1FBF0, 0x1FBF9}
#endif
};
@@ -347,27 +353,27 @@ static const crange digitRangeTable[] = {
static const crange punctRangeTable[] = {
{0x21, 0x23}, {0x25, 0x2A}, {0x2C, 0x2F}, {0x5B, 0x5D},
- {0x55A, 0x55F}, {0x66A, 0x66D}, {0x700, 0x70D}, {0x7F7, 0x7F9},
- {0x830, 0x83E}, {0xF04, 0xF12}, {0xF3A, 0xF3D}, {0xFD0, 0xFD4},
- {0x104A, 0x104F}, {0x1360, 0x1368}, {0x16EB, 0x16ED}, {0x17D4, 0x17D6},
- {0x17D8, 0x17DA}, {0x1800, 0x180A}, {0x1AA0, 0x1AA6}, {0x1AA8, 0x1AAD},
- {0x1B5A, 0x1B60}, {0x1BFC, 0x1BFF}, {0x1C3B, 0x1C3F}, {0x1CC0, 0x1CC7},
- {0x2010, 0x2027}, {0x2030, 0x2043}, {0x2045, 0x2051}, {0x2053, 0x205E},
- {0x2308, 0x230B}, {0x2768, 0x2775}, {0x27E6, 0x27EF}, {0x2983, 0x2998},
- {0x29D8, 0x29DB}, {0x2CF9, 0x2CFC}, {0x2E00, 0x2E2E}, {0x2E30, 0x2E4F},
- {0x3001, 0x3003}, {0x3008, 0x3011}, {0x3014, 0x301F}, {0xA60D, 0xA60F},
- {0xA6F2, 0xA6F7}, {0xA874, 0xA877}, {0xA8F8, 0xA8FA}, {0xA9C1, 0xA9CD},
- {0xAA5C, 0xAA5F}, {0xFE10, 0xFE19}, {0xFE30, 0xFE52}, {0xFE54, 0xFE61},
- {0xFF01, 0xFF03}, {0xFF05, 0xFF0A}, {0xFF0C, 0xFF0F}, {0xFF3B, 0xFF3D},
- {0xFF5F, 0xFF65}
+ {0x55A, 0x55F}, {0x61D, 0x61F}, {0x66A, 0x66D}, {0x700, 0x70D},
+ {0x7F7, 0x7F9}, {0x830, 0x83E}, {0xF04, 0xF12}, {0xF3A, 0xF3D},
+ {0xFD0, 0xFD4}, {0x104A, 0x104F}, {0x1360, 0x1368}, {0x16EB, 0x16ED},
+ {0x17D4, 0x17D6}, {0x17D8, 0x17DA}, {0x1800, 0x180A}, {0x1AA0, 0x1AA6},
+ {0x1AA8, 0x1AAD}, {0x1B5A, 0x1B60}, {0x1BFC, 0x1BFF}, {0x1C3B, 0x1C3F},
+ {0x1CC0, 0x1CC7}, {0x2010, 0x2027}, {0x2030, 0x2043}, {0x2045, 0x2051},
+ {0x2053, 0x205E}, {0x2308, 0x230B}, {0x2768, 0x2775}, {0x27E6, 0x27EF},
+ {0x2983, 0x2998}, {0x29D8, 0x29DB}, {0x2CF9, 0x2CFC}, {0x2E00, 0x2E2E},
+ {0x2E30, 0x2E4F}, {0x2E52, 0x2E5D}, {0x3001, 0x3003}, {0x3008, 0x3011},
+ {0x3014, 0x301F}, {0xA60D, 0xA60F}, {0xA6F2, 0xA6F7}, {0xA874, 0xA877},
+ {0xA8F8, 0xA8FA}, {0xA9C1, 0xA9CD}, {0xAA5C, 0xAA5F}, {0xFE10, 0xFE19},
+ {0xFE30, 0xFE52}, {0xFE54, 0xFE61}, {0xFF01, 0xFF03}, {0xFF05, 0xFF0A},
+ {0xFF0C, 0xFF0F}, {0xFF3B, 0xFF3D}, {0xFF5F, 0xFF65}
#if CHRBITS > 16
,{0x10100, 0x10102}, {0x10A50, 0x10A58}, {0x10AF0, 0x10AF6}, {0x10B39, 0x10B3F},
- {0x10B99, 0x10B9C}, {0x10F55, 0x10F59}, {0x11047, 0x1104D}, {0x110BE, 0x110C1},
- {0x11140, 0x11143}, {0x111C5, 0x111C8}, {0x111DD, 0x111DF}, {0x11238, 0x1123D},
- {0x1144B, 0x1144F}, {0x115C1, 0x115D7}, {0x11641, 0x11643}, {0x11660, 0x1166C},
- {0x1173C, 0x1173E}, {0x11944, 0x11946}, {0x11A3F, 0x11A46}, {0x11A9A, 0x11A9C},
- {0x11A9E, 0x11AA2}, {0x11C41, 0x11C45}, {0x12470, 0x12474}, {0x16B37, 0x16B3B},
- {0x16E97, 0x16E9A}, {0x1DA87, 0x1DA8B}
+ {0x10B99, 0x10B9C}, {0x10F55, 0x10F59}, {0x10F86, 0x10F89}, {0x11047, 0x1104D},
+ {0x110BE, 0x110C1}, {0x11140, 0x11143}, {0x111C5, 0x111C8}, {0x111DD, 0x111DF},
+ {0x11238, 0x1123D}, {0x1144B, 0x1144F}, {0x115C1, 0x115D7}, {0x11641, 0x11643},
+ {0x11660, 0x1166C}, {0x1173C, 0x1173E}, {0x11944, 0x11946}, {0x11A3F, 0x11A46},
+ {0x11A9A, 0x11A9C}, {0x11A9E, 0x11AA2}, {0x11C41, 0x11C45}, {0x12470, 0x12474},
+ {0x16B37, 0x16B3B}, {0x16E97, 0x16E9A}, {0x1DA87, 0x1DA8B}
#endif
};
@@ -377,21 +383,22 @@ static const chr punctCharTable[] = {
0x3A, 0x3B, 0x3F, 0x40, 0x5F, 0x7B, 0x7D, 0xA1, 0xA7,
0xAB, 0xB6, 0xB7, 0xBB, 0xBF, 0x37E, 0x387, 0x589, 0x58A,
0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x5F3, 0x5F4, 0x609, 0x60A, 0x60C,
- 0x60D, 0x61B, 0x61E, 0x61F, 0x6D4, 0x85E, 0x964, 0x965, 0x970,
- 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xE5A, 0xE5B,
- 0xF14, 0xF85, 0xFD9, 0xFDA, 0x10FB, 0x1400, 0x166E, 0x169B, 0x169C,
- 0x1735, 0x1736, 0x1944, 0x1945, 0x1A1E, 0x1A1F, 0x1C7E, 0x1C7F, 0x1CD3,
+ 0x60D, 0x61B, 0x6D4, 0x85E, 0x964, 0x965, 0x970, 0x9FD, 0xA76,
+ 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xE5A, 0xE5B, 0xF14, 0xF85,
+ 0xFD9, 0xFDA, 0x10FB, 0x1400, 0x166E, 0x169B, 0x169C, 0x1735, 0x1736,
+ 0x1944, 0x1945, 0x1A1E, 0x1A1F, 0x1B7D, 0x1B7E, 0x1C7E, 0x1C7F, 0x1CD3,
0x207D, 0x207E, 0x208D, 0x208E, 0x2329, 0x232A, 0x27C5, 0x27C6, 0x29FC,
- 0x29FD, 0x2CFE, 0x2CFF, 0x2D70, 0x2E52, 0x3030, 0x303D, 0x30A0, 0x30FB,
- 0xA4FE, 0xA4FF, 0xA673, 0xA67E, 0xA8CE, 0xA8CF, 0xA8FC, 0xA92E, 0xA92F,
- 0xA95F, 0xA9DE, 0xA9DF, 0xAADE, 0xAADF, 0xAAF0, 0xAAF1, 0xABEB, 0xFD3E,
- 0xFD3F, 0xFE63, 0xFE68, 0xFE6A, 0xFE6B, 0xFF1A, 0xFF1B, 0xFF1F, 0xFF20,
- 0xFF3F, 0xFF5B, 0xFF5D
+ 0x29FD, 0x2CFE, 0x2CFF, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA4FE,
+ 0xA4FF, 0xA673, 0xA67E, 0xA8CE, 0xA8CF, 0xA8FC, 0xA92E, 0xA92F, 0xA95F,
+ 0xA9DE, 0xA9DF, 0xAADE, 0xAADF, 0xAAF0, 0xAAF1, 0xABEB, 0xFD3E, 0xFD3F,
+ 0xFE63, 0xFE68, 0xFE6A, 0xFE6B, 0xFF1A, 0xFF1B, 0xFF1F, 0xFF20, 0xFF3F,
+ 0xFF5B, 0xFF5D
#if CHRBITS > 16
,0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10EAD, 0x110BB,
0x110BC, 0x11174, 0x11175, 0x111CD, 0x111DB, 0x112A9, 0x1145A, 0x1145B, 0x1145D,
- 0x114C6, 0x1183B, 0x119E2, 0x11C70, 0x11C71, 0x11EF7, 0x11EF8, 0x11FFF, 0x16A6E,
- 0x16A6F, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F, 0x1E95E, 0x1E95F
+ 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11C70, 0x11C71, 0x11EF7, 0x11EF8, 0x11FFF,
+ 0x12FF1, 0x12FF2, 0x16A6E, 0x16A6F, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F, 0x1E95E,
+ 0x1E95F
#endif
};
@@ -429,18 +436,20 @@ static const crange lowerRangeTable[] = {
{0x1F50, 0x1F57}, {0x1F60, 0x1F67}, {0x1F70, 0x1F7D}, {0x1F80, 0x1F87},
{0x1F90, 0x1F97}, {0x1FA0, 0x1FA7}, {0x1FB0, 0x1FB4}, {0x1FC2, 0x1FC4},
{0x1FD0, 0x1FD3}, {0x1FE0, 0x1FE7}, {0x1FF2, 0x1FF4}, {0x2146, 0x2149},
- {0x2C30, 0x2C5E}, {0x2C76, 0x2C7B}, {0x2D00, 0x2D25}, {0xA72F, 0xA731},
+ {0x2C30, 0x2C5F}, {0x2C76, 0x2C7B}, {0x2D00, 0x2D25}, {0xA72F, 0xA731},
{0xA771, 0xA778}, {0xA793, 0xA795}, {0xAB30, 0xAB5A}, {0xAB60, 0xAB68},
{0xAB70, 0xABBF}, {0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFF41, 0xFF5A}
#if CHRBITS > 16
- ,{0x10428, 0x1044F}, {0x104D8, 0x104FB}, {0x10CC0, 0x10CF2}, {0x118C0, 0x118DF},
- {0x16E60, 0x16E7F}, {0x1D41A, 0x1D433}, {0x1D44E, 0x1D454}, {0x1D456, 0x1D467},
- {0x1D482, 0x1D49B}, {0x1D4B6, 0x1D4B9}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D4CF},
- {0x1D4EA, 0x1D503}, {0x1D51E, 0x1D537}, {0x1D552, 0x1D56B}, {0x1D586, 0x1D59F},
- {0x1D5BA, 0x1D5D3}, {0x1D5EE, 0x1D607}, {0x1D622, 0x1D63B}, {0x1D656, 0x1D66F},
- {0x1D68A, 0x1D6A5}, {0x1D6C2, 0x1D6DA}, {0x1D6DC, 0x1D6E1}, {0x1D6FC, 0x1D714},
- {0x1D716, 0x1D71B}, {0x1D736, 0x1D74E}, {0x1D750, 0x1D755}, {0x1D770, 0x1D788},
- {0x1D78A, 0x1D78F}, {0x1D7AA, 0x1D7C2}, {0x1D7C4, 0x1D7C9}, {0x1E922, 0x1E943}
+ ,{0x10428, 0x1044F}, {0x104D8, 0x104FB}, {0x10597, 0x105A1}, {0x105A3, 0x105B1},
+ {0x105B3, 0x105B9}, {0x10CC0, 0x10CF2}, {0x118C0, 0x118DF}, {0x16E60, 0x16E7F},
+ {0x1D41A, 0x1D433}, {0x1D44E, 0x1D454}, {0x1D456, 0x1D467}, {0x1D482, 0x1D49B},
+ {0x1D4B6, 0x1D4B9}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D4CF}, {0x1D4EA, 0x1D503},
+ {0x1D51E, 0x1D537}, {0x1D552, 0x1D56B}, {0x1D586, 0x1D59F}, {0x1D5BA, 0x1D5D3},
+ {0x1D5EE, 0x1D607}, {0x1D622, 0x1D63B}, {0x1D656, 0x1D66F}, {0x1D68A, 0x1D6A5},
+ {0x1D6C2, 0x1D6DA}, {0x1D6DC, 0x1D6E1}, {0x1D6FC, 0x1D714}, {0x1D716, 0x1D71B},
+ {0x1D736, 0x1D74E}, {0x1D750, 0x1D755}, {0x1D770, 0x1D788}, {0x1D78A, 0x1D78F},
+ {0x1D7AA, 0x1D7C2}, {0x1D7C4, 0x1D7C9}, {0x1DF00, 0x1DF09}, {0x1DF0B, 0x1DF1E},
+ {0x1E922, 0x1E943}
#endif
};
@@ -510,10 +519,10 @@ static const chr lowerCharTable[] = {
0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C,
0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797,
0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9,
- 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C3, 0xA7C8,
- 0xA7CA, 0xA7F6, 0xA7FA
+ 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3,
+ 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0xA7FA
#if CHRBITS > 16
- ,0x1D4BB, 0x1D7CB
+ ,0x105BB, 0x105BC, 0x1D4BB, 0x1D7CB
#endif
};
@@ -532,18 +541,18 @@ static const crange upperRangeTable[] = {
{0x1F18, 0x1F1D}, {0x1F28, 0x1F2F}, {0x1F38, 0x1F3F}, {0x1F48, 0x1F4D},
{0x1F68, 0x1F6F}, {0x1FB8, 0x1FBB}, {0x1FC8, 0x1FCB}, {0x1FD8, 0x1FDB},
{0x1FE8, 0x1FEC}, {0x1FF8, 0x1FFB}, {0x210B, 0x210D}, {0x2110, 0x2112},
- {0x2119, 0x211D}, {0x212A, 0x212D}, {0x2130, 0x2133}, {0x2C00, 0x2C2E},
+ {0x2119, 0x211D}, {0x212A, 0x212D}, {0x2130, 0x2133}, {0x2C00, 0x2C2F},
{0x2C62, 0x2C64}, {0x2C6D, 0x2C70}, {0x2C7E, 0x2C80}, {0xA7AA, 0xA7AE},
{0xA7B0, 0xA7B4}, {0xA7C4, 0xA7C7}, {0xFF21, 0xFF3A}
#if CHRBITS > 16
- ,{0x10400, 0x10427}, {0x104B0, 0x104D3}, {0x10C80, 0x10CB2}, {0x118A0, 0x118BF},
- {0x16E40, 0x16E5F}, {0x1D400, 0x1D419}, {0x1D434, 0x1D44D}, {0x1D468, 0x1D481},
- {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B5}, {0x1D4D0, 0x1D4E9}, {0x1D507, 0x1D50A},
- {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544},
- {0x1D54A, 0x1D550}, {0x1D56C, 0x1D585}, {0x1D5A0, 0x1D5B9}, {0x1D5D4, 0x1D5ED},
- {0x1D608, 0x1D621}, {0x1D63C, 0x1D655}, {0x1D670, 0x1D689}, {0x1D6A8, 0x1D6C0},
- {0x1D6E2, 0x1D6FA}, {0x1D71C, 0x1D734}, {0x1D756, 0x1D76E}, {0x1D790, 0x1D7A8},
- {0x1E900, 0x1E921}
+ ,{0x10400, 0x10427}, {0x104B0, 0x104D3}, {0x10570, 0x1057A}, {0x1057C, 0x1058A},
+ {0x1058C, 0x10592}, {0x10C80, 0x10CB2}, {0x118A0, 0x118BF}, {0x16E40, 0x16E5F},
+ {0x1D400, 0x1D419}, {0x1D434, 0x1D44D}, {0x1D468, 0x1D481}, {0x1D4A9, 0x1D4AC},
+ {0x1D4AE, 0x1D4B5}, {0x1D4D0, 0x1D4E9}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514},
+ {0x1D516, 0x1D51C}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544}, {0x1D54A, 0x1D550},
+ {0x1D56C, 0x1D585}, {0x1D5A0, 0x1D5B9}, {0x1D5D4, 0x1D5ED}, {0x1D608, 0x1D621},
+ {0x1D63C, 0x1D655}, {0x1D670, 0x1D689}, {0x1D6A8, 0x1D6C0}, {0x1D6E2, 0x1D6FA},
+ {0x1D71C, 0x1D734}, {0x1D756, 0x1D76E}, {0x1D790, 0x1D7A8}, {0x1E900, 0x1E921}
#endif
};
@@ -613,10 +622,11 @@ static const chr upperCharTable[] = {
0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA77D, 0xA77E, 0xA780,
0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798,
0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6,
- 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C2, 0xA7C9, 0xA7F5
+ 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6,
+ 0xA7D8, 0xA7F5
#if CHRBITS > 16
- ,0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D504, 0x1D505, 0x1D538,
- 0x1D539, 0x1D546, 0x1D7CA
+ ,0x10594, 0x10595, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D504,
+ 0x1D505, 0x1D538, 0x1D539, 0x1D546, 0x1D7CA
#endif
};
@@ -630,74 +640,72 @@ static const crange graphRangeTable[] = {
{0x21, 0x7E}, {0xA1, 0xAC}, {0xAE, 0x377}, {0x37A, 0x37F},
{0x384, 0x38A}, {0x38E, 0x3A1}, {0x3A3, 0x52F}, {0x531, 0x556},
{0x559, 0x58A}, {0x58D, 0x58F}, {0x591, 0x5C7}, {0x5D0, 0x5EA},
- {0x5EF, 0x5F4}, {0x606, 0x61B}, {0x61E, 0x6DC}, {0x6DE, 0x70D},
+ {0x5EF, 0x5F4}, {0x606, 0x61B}, {0x61D, 0x6DC}, {0x6DE, 0x70D},
{0x710, 0x74A}, {0x74D, 0x7B1}, {0x7C0, 0x7FA}, {0x7FD, 0x82D},
- {0x830, 0x83E}, {0x840, 0x85B}, {0x860, 0x86A}, {0x8A0, 0x8B4},
- {0x8B6, 0x8C7}, {0x8D3, 0x8E1}, {0x8E3, 0x983}, {0x985, 0x98C},
- {0x993, 0x9A8}, {0x9AA, 0x9B0}, {0x9B6, 0x9B9}, {0x9BC, 0x9C4},
- {0x9CB, 0x9CE}, {0x9DF, 0x9E3}, {0x9E6, 0x9FE}, {0xA01, 0xA03},
- {0xA05, 0xA0A}, {0xA13, 0xA28}, {0xA2A, 0xA30}, {0xA3E, 0xA42},
- {0xA4B, 0xA4D}, {0xA59, 0xA5C}, {0xA66, 0xA76}, {0xA81, 0xA83},
- {0xA85, 0xA8D}, {0xA8F, 0xA91}, {0xA93, 0xAA8}, {0xAAA, 0xAB0},
- {0xAB5, 0xAB9}, {0xABC, 0xAC5}, {0xAC7, 0xAC9}, {0xACB, 0xACD},
- {0xAE0, 0xAE3}, {0xAE6, 0xAF1}, {0xAF9, 0xAFF}, {0xB01, 0xB03},
- {0xB05, 0xB0C}, {0xB13, 0xB28}, {0xB2A, 0xB30}, {0xB35, 0xB39},
- {0xB3C, 0xB44}, {0xB4B, 0xB4D}, {0xB55, 0xB57}, {0xB5F, 0xB63},
- {0xB66, 0xB77}, {0xB85, 0xB8A}, {0xB8E, 0xB90}, {0xB92, 0xB95},
- {0xBA8, 0xBAA}, {0xBAE, 0xBB9}, {0xBBE, 0xBC2}, {0xBC6, 0xBC8},
- {0xBCA, 0xBCD}, {0xBE6, 0xBFA}, {0xC00, 0xC0C}, {0xC0E, 0xC10},
- {0xC12, 0xC28}, {0xC2A, 0xC39}, {0xC3D, 0xC44}, {0xC46, 0xC48},
- {0xC4A, 0xC4D}, {0xC58, 0xC5A}, {0xC60, 0xC63}, {0xC66, 0xC6F},
- {0xC77, 0xC8C}, {0xC8E, 0xC90}, {0xC92, 0xCA8}, {0xCAA, 0xCB3},
- {0xCB5, 0xCB9}, {0xCBC, 0xCC4}, {0xCC6, 0xCC8}, {0xCCA, 0xCCD},
- {0xCE0, 0xCE3}, {0xCE6, 0xCEF}, {0xD00, 0xD0C}, {0xD0E, 0xD10},
- {0xD12, 0xD44}, {0xD46, 0xD48}, {0xD4A, 0xD4F}, {0xD54, 0xD63},
- {0xD66, 0xD7F}, {0xD81, 0xD83}, {0xD85, 0xD96}, {0xD9A, 0xDB1},
- {0xDB3, 0xDBB}, {0xDC0, 0xDC6}, {0xDCF, 0xDD4}, {0xDD8, 0xDDF},
- {0xDE6, 0xDEF}, {0xDF2, 0xDF4}, {0xE01, 0xE3A}, {0xE3F, 0xE5B},
- {0xE86, 0xE8A}, {0xE8C, 0xEA3}, {0xEA7, 0xEBD}, {0xEC0, 0xEC4},
- {0xEC8, 0xECD}, {0xED0, 0xED9}, {0xEDC, 0xEDF}, {0xF00, 0xF47},
- {0xF49, 0xF6C}, {0xF71, 0xF97}, {0xF99, 0xFBC}, {0xFBE, 0xFCC},
- {0xFCE, 0xFDA}, {0x1000, 0x10C5}, {0x10D0, 0x1248}, {0x124A, 0x124D},
- {0x1250, 0x1256}, {0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D},
- {0x1290, 0x12B0}, {0x12B2, 0x12B5}, {0x12B8, 0x12BE}, {0x12C2, 0x12C5},
- {0x12C8, 0x12D6}, {0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A},
- {0x135D, 0x137C}, {0x1380, 0x1399}, {0x13A0, 0x13F5}, {0x13F8, 0x13FD},
- {0x1400, 0x167F}, {0x1681, 0x169C}, {0x16A0, 0x16F8}, {0x1700, 0x170C},
- {0x170E, 0x1714}, {0x1720, 0x1736}, {0x1740, 0x1753}, {0x1760, 0x176C},
- {0x176E, 0x1770}, {0x1780, 0x17DD}, {0x17E0, 0x17E9}, {0x17F0, 0x17F9},
- {0x1800, 0x180D}, {0x1810, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18AA},
- {0x18B0, 0x18F5}, {0x1900, 0x191E}, {0x1920, 0x192B}, {0x1930, 0x193B},
- {0x1944, 0x196D}, {0x1970, 0x1974}, {0x1980, 0x19AB}, {0x19B0, 0x19C9},
- {0x19D0, 0x19DA}, {0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E}, {0x1A60, 0x1A7C},
- {0x1A7F, 0x1A89}, {0x1A90, 0x1A99}, {0x1AA0, 0x1AAD}, {0x1AB0, 0x1AC0},
- {0x1B00, 0x1B4B}, {0x1B50, 0x1B7C}, {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37},
- {0x1C3B, 0x1C49}, {0x1C4D, 0x1C88}, {0x1C90, 0x1CBA}, {0x1CBD, 0x1CC7},
- {0x1CD0, 0x1CFA}, {0x1D00, 0x1DF9}, {0x1DFB, 0x1F15}, {0x1F18, 0x1F1D},
- {0x1F20, 0x1F45}, {0x1F48, 0x1F4D}, {0x1F50, 0x1F57}, {0x1F5F, 0x1F7D},
- {0x1F80, 0x1FB4}, {0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3}, {0x1FD6, 0x1FDB},
- {0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE}, {0x2010, 0x2027},
- {0x2030, 0x205E}, {0x2074, 0x208E}, {0x2090, 0x209C}, {0x20A0, 0x20BF},
- {0x20D0, 0x20F0}, {0x2100, 0x218B}, {0x2190, 0x2426}, {0x2440, 0x244A},
- {0x2460, 0x2B73}, {0x2B76, 0x2B95}, {0x2B97, 0x2C2E}, {0x2C30, 0x2C5E},
- {0x2C60, 0x2CF3}, {0x2CF9, 0x2D25}, {0x2D30, 0x2D67}, {0x2D7F, 0x2D96},
- {0x2DA0, 0x2DA6}, {0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE},
- {0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE},
- {0x2DE0, 0x2E52}, {0x2E80, 0x2E99}, {0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5},
- {0x2FF0, 0x2FFB}, {0x3001, 0x303F}, {0x3041, 0x3096}, {0x3099, 0x30FF},
- {0x3105, 0x312F}, {0x3131, 0x318E}, {0x3190, 0x31E3}, {0x31F0, 0x321E},
- {0x3220, 0x9FFC}, {0xA000, 0xA48C}, {0xA490, 0xA4C6}, {0xA4D0, 0xA62B},
- {0xA640, 0xA6F7}, {0xA700, 0xA7BF}, {0xA7C2, 0xA7CA}, {0xA7F5, 0xA82C},
- {0xA830, 0xA839}, {0xA840, 0xA877}, {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9},
- {0xA8E0, 0xA953}, {0xA95F, 0xA97C}, {0xA980, 0xA9CD}, {0xA9CF, 0xA9D9},
- {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36}, {0xAA40, 0xAA4D}, {0xAA50, 0xAA59},
- {0xAA5C, 0xAAC2}, {0xAADB, 0xAAF6}, {0xAB01, 0xAB06}, {0xAB09, 0xAB0E},
- {0xAB11, 0xAB16}, {0xAB20, 0xAB26}, {0xAB28, 0xAB2E}, {0xAB30, 0xAB6B},
- {0xAB70, 0xABED}, {0xABF0, 0xABF9}, {0xAC00, 0xD7A3}, {0xD7B0, 0xD7C6},
- {0xD7CB, 0xD7FB}, {0xF900, 0xFA6D}, {0xFA70, 0xFAD9}, {0xFB00, 0xFB06},
- {0xFB13, 0xFB17}, {0xFB1D, 0xFB36}, {0xFB38, 0xFB3C}, {0xFB46, 0xFBC1},
- {0xFBD3, 0xFD3F}, {0xFD50, 0xFD8F}, {0xFD92, 0xFDC7}, {0xFDF0, 0xFDFD},
- {0xFE00, 0xFE19}, {0xFE20, 0xFE52}, {0xFE54, 0xFE66}, {0xFE68, 0xFE6B},
+ {0x830, 0x83E}, {0x840, 0x85B}, {0x860, 0x86A}, {0x870, 0x88E},
+ {0x898, 0x8E1}, {0x8E3, 0x983}, {0x985, 0x98C}, {0x993, 0x9A8},
+ {0x9AA, 0x9B0}, {0x9B6, 0x9B9}, {0x9BC, 0x9C4}, {0x9CB, 0x9CE},
+ {0x9DF, 0x9E3}, {0x9E6, 0x9FE}, {0xA01, 0xA03}, {0xA05, 0xA0A},
+ {0xA13, 0xA28}, {0xA2A, 0xA30}, {0xA3E, 0xA42}, {0xA4B, 0xA4D},
+ {0xA59, 0xA5C}, {0xA66, 0xA76}, {0xA81, 0xA83}, {0xA85, 0xA8D},
+ {0xA8F, 0xA91}, {0xA93, 0xAA8}, {0xAAA, 0xAB0}, {0xAB5, 0xAB9},
+ {0xABC, 0xAC5}, {0xAC7, 0xAC9}, {0xACB, 0xACD}, {0xAE0, 0xAE3},
+ {0xAE6, 0xAF1}, {0xAF9, 0xAFF}, {0xB01, 0xB03}, {0xB05, 0xB0C},
+ {0xB13, 0xB28}, {0xB2A, 0xB30}, {0xB35, 0xB39}, {0xB3C, 0xB44},
+ {0xB4B, 0xB4D}, {0xB55, 0xB57}, {0xB5F, 0xB63}, {0xB66, 0xB77},
+ {0xB85, 0xB8A}, {0xB8E, 0xB90}, {0xB92, 0xB95}, {0xBA8, 0xBAA},
+ {0xBAE, 0xBB9}, {0xBBE, 0xBC2}, {0xBC6, 0xBC8}, {0xBCA, 0xBCD},
+ {0xBE6, 0xBFA}, {0xC00, 0xC0C}, {0xC0E, 0xC10}, {0xC12, 0xC28},
+ {0xC2A, 0xC39}, {0xC3C, 0xC44}, {0xC46, 0xC48}, {0xC4A, 0xC4D},
+ {0xC58, 0xC5A}, {0xC60, 0xC63}, {0xC66, 0xC6F}, {0xC77, 0xC8C},
+ {0xC8E, 0xC90}, {0xC92, 0xCA8}, {0xCAA, 0xCB3}, {0xCB5, 0xCB9},
+ {0xCBC, 0xCC4}, {0xCC6, 0xCC8}, {0xCCA, 0xCCD}, {0xCE0, 0xCE3},
+ {0xCE6, 0xCEF}, {0xD00, 0xD0C}, {0xD0E, 0xD10}, {0xD12, 0xD44},
+ {0xD46, 0xD48}, {0xD4A, 0xD4F}, {0xD54, 0xD63}, {0xD66, 0xD7F},
+ {0xD81, 0xD83}, {0xD85, 0xD96}, {0xD9A, 0xDB1}, {0xDB3, 0xDBB},
+ {0xDC0, 0xDC6}, {0xDCF, 0xDD4}, {0xDD8, 0xDDF}, {0xDE6, 0xDEF},
+ {0xDF2, 0xDF4}, {0xE01, 0xE3A}, {0xE3F, 0xE5B}, {0xE86, 0xE8A},
+ {0xE8C, 0xEA3}, {0xEA7, 0xEBD}, {0xEC0, 0xEC4}, {0xEC8, 0xECD},
+ {0xED0, 0xED9}, {0xEDC, 0xEDF}, {0xF00, 0xF47}, {0xF49, 0xF6C},
+ {0xF71, 0xF97}, {0xF99, 0xFBC}, {0xFBE, 0xFCC}, {0xFCE, 0xFDA},
+ {0x1000, 0x10C5}, {0x10D0, 0x1248}, {0x124A, 0x124D}, {0x1250, 0x1256},
+ {0x125A, 0x125D}, {0x1260, 0x1288}, {0x128A, 0x128D}, {0x1290, 0x12B0},
+ {0x12B2, 0x12B5}, {0x12B8, 0x12BE}, {0x12C2, 0x12C5}, {0x12C8, 0x12D6},
+ {0x12D8, 0x1310}, {0x1312, 0x1315}, {0x1318, 0x135A}, {0x135D, 0x137C},
+ {0x1380, 0x1399}, {0x13A0, 0x13F5}, {0x13F8, 0x13FD}, {0x1400, 0x167F},
+ {0x1681, 0x169C}, {0x16A0, 0x16F8}, {0x1700, 0x1715}, {0x171F, 0x1736},
+ {0x1740, 0x1753}, {0x1760, 0x176C}, {0x176E, 0x1770}, {0x1780, 0x17DD},
+ {0x17E0, 0x17E9}, {0x17F0, 0x17F9}, {0x1800, 0x180D}, {0x180F, 0x1819},
+ {0x1820, 0x1878}, {0x1880, 0x18AA}, {0x18B0, 0x18F5}, {0x1900, 0x191E},
+ {0x1920, 0x192B}, {0x1930, 0x193B}, {0x1944, 0x196D}, {0x1970, 0x1974},
+ {0x1980, 0x19AB}, {0x19B0, 0x19C9}, {0x19D0, 0x19DA}, {0x19DE, 0x1A1B},
+ {0x1A1E, 0x1A5E}, {0x1A60, 0x1A7C}, {0x1A7F, 0x1A89}, {0x1A90, 0x1A99},
+ {0x1AA0, 0x1AAD}, {0x1AB0, 0x1ACE}, {0x1B00, 0x1B4C}, {0x1B50, 0x1B7E},
+ {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37}, {0x1C3B, 0x1C49}, {0x1C4D, 0x1C88},
+ {0x1C90, 0x1CBA}, {0x1CBD, 0x1CC7}, {0x1CD0, 0x1CFA}, {0x1D00, 0x1F15},
+ {0x1F18, 0x1F1D}, {0x1F20, 0x1F45}, {0x1F48, 0x1F4D}, {0x1F50, 0x1F57},
+ {0x1F5F, 0x1F7D}, {0x1F80, 0x1FB4}, {0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3},
+ {0x1FD6, 0x1FDB}, {0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4}, {0x1FF6, 0x1FFE},
+ {0x2010, 0x2027}, {0x2030, 0x205E}, {0x2074, 0x208E}, {0x2090, 0x209C},
+ {0x20A0, 0x20C0}, {0x20D0, 0x20F0}, {0x2100, 0x218B}, {0x2190, 0x2426},
+ {0x2440, 0x244A}, {0x2460, 0x2B73}, {0x2B76, 0x2B95}, {0x2B97, 0x2CF3},
+ {0x2CF9, 0x2D25}, {0x2D30, 0x2D67}, {0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6},
+ {0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE}, {0x2DC0, 0x2DC6},
+ {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6}, {0x2DD8, 0x2DDE}, {0x2DE0, 0x2E5D},
+ {0x2E80, 0x2E99}, {0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x2FFB},
+ {0x3001, 0x303F}, {0x3041, 0x3096}, {0x3099, 0x30FF}, {0x3105, 0x312F},
+ {0x3131, 0x318E}, {0x3190, 0x31E3}, {0x31F0, 0x321E}, {0x3220, 0xA48C},
+ {0xA490, 0xA4C6}, {0xA4D0, 0xA62B}, {0xA640, 0xA6F7}, {0xA700, 0xA7CA},
+ {0xA7D5, 0xA7D9}, {0xA7F2, 0xA82C}, {0xA830, 0xA839}, {0xA840, 0xA877},
+ {0xA880, 0xA8C5}, {0xA8CE, 0xA8D9}, {0xA8E0, 0xA953}, {0xA95F, 0xA97C},
+ {0xA980, 0xA9CD}, {0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE}, {0xAA00, 0xAA36},
+ {0xAA40, 0xAA4D}, {0xAA50, 0xAA59}, {0xAA5C, 0xAAC2}, {0xAADB, 0xAAF6},
+ {0xAB01, 0xAB06}, {0xAB09, 0xAB0E}, {0xAB11, 0xAB16}, {0xAB20, 0xAB26},
+ {0xAB28, 0xAB2E}, {0xAB30, 0xAB6B}, {0xAB70, 0xABED}, {0xABF0, 0xABF9},
+ {0xAC00, 0xD7A3}, {0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB}, {0xF900, 0xFA6D},
+ {0xFA70, 0xFAD9}, {0xFB00, 0xFB06}, {0xFB13, 0xFB17}, {0xFB1D, 0xFB36},
+ {0xFB38, 0xFB3C}, {0xFB46, 0xFBC2}, {0xFBD3, 0xFD8F}, {0xFD92, 0xFDC7},
+ {0xFDF0, 0xFE19}, {0xFE20, 0xFE52}, {0xFE54, 0xFE66}, {0xFE68, 0xFE6B},
{0xFE70, 0xFE74}, {0xFE76, 0xFEFC}, {0xFF01, 0xFFBE}, {0xFFC2, 0xFFC7},
{0xFFCA, 0xFFCF}, {0xFFD2, 0xFFD7}, {0xFFDA, 0xFFDC}, {0xFFE0, 0xFFE6},
{0xFFE8, 0xFFEE}
@@ -708,68 +716,74 @@ static const crange graphRangeTable[] = {
{0x102A0, 0x102D0}, {0x102E0, 0x102FB}, {0x10300, 0x10323}, {0x1032D, 0x1034A},
{0x10350, 0x1037A}, {0x10380, 0x1039D}, {0x1039F, 0x103C3}, {0x103C8, 0x103D5},
{0x10400, 0x1049D}, {0x104A0, 0x104A9}, {0x104B0, 0x104D3}, {0x104D8, 0x104FB},
- {0x10500, 0x10527}, {0x10530, 0x10563}, {0x10600, 0x10736}, {0x10740, 0x10755},
- {0x10760, 0x10767}, {0x10800, 0x10805}, {0x1080A, 0x10835}, {0x1083F, 0x10855},
- {0x10857, 0x1089E}, {0x108A7, 0x108AF}, {0x108E0, 0x108F2}, {0x108FB, 0x1091B},
- {0x1091F, 0x10939}, {0x10980, 0x109B7}, {0x109BC, 0x109CF}, {0x109D2, 0x10A03},
- {0x10A0C, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35}, {0x10A38, 0x10A3A},
- {0x10A3F, 0x10A48}, {0x10A50, 0x10A58}, {0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6},
- {0x10AEB, 0x10AF6}, {0x10B00, 0x10B35}, {0x10B39, 0x10B55}, {0x10B58, 0x10B72},
- {0x10B78, 0x10B91}, {0x10B99, 0x10B9C}, {0x10BA9, 0x10BAF}, {0x10C00, 0x10C48},
- {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2}, {0x10CFA, 0x10D27}, {0x10D30, 0x10D39},
- {0x10E60, 0x10E7E}, {0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD}, {0x10F00, 0x10F27},
- {0x10F30, 0x10F59}, {0x10FB0, 0x10FCB}, {0x10FE0, 0x10FF6}, {0x11000, 0x1104D},
- {0x11052, 0x1106F}, {0x1107F, 0x110BC}, {0x110BE, 0x110C1}, {0x110D0, 0x110E8},
- {0x110F0, 0x110F9}, {0x11100, 0x11134}, {0x11136, 0x11147}, {0x11150, 0x11176},
- {0x11180, 0x111DF}, {0x111E1, 0x111F4}, {0x11200, 0x11211}, {0x11213, 0x1123E},
- {0x11280, 0x11286}, {0x1128A, 0x1128D}, {0x1128F, 0x1129D}, {0x1129F, 0x112A9},
- {0x112B0, 0x112EA}, {0x112F0, 0x112F9}, {0x11300, 0x11303}, {0x11305, 0x1130C},
- {0x11313, 0x11328}, {0x1132A, 0x11330}, {0x11335, 0x11339}, {0x1133B, 0x11344},
- {0x1134B, 0x1134D}, {0x1135D, 0x11363}, {0x11366, 0x1136C}, {0x11370, 0x11374},
- {0x11400, 0x1145B}, {0x1145D, 0x11461}, {0x11480, 0x114C7}, {0x114D0, 0x114D9},
- {0x11580, 0x115B5}, {0x115B8, 0x115DD}, {0x11600, 0x11644}, {0x11650, 0x11659},
- {0x11660, 0x1166C}, {0x11680, 0x116B8}, {0x116C0, 0x116C9}, {0x11700, 0x1171A},
- {0x1171D, 0x1172B}, {0x11730, 0x1173F}, {0x11800, 0x1183B}, {0x118A0, 0x118F2},
- {0x118FF, 0x11906}, {0x1190C, 0x11913}, {0x11918, 0x11935}, {0x1193B, 0x11946},
- {0x11950, 0x11959}, {0x119A0, 0x119A7}, {0x119AA, 0x119D7}, {0x119DA, 0x119E4},
- {0x11A00, 0x11A47}, {0x11A50, 0x11AA2}, {0x11AC0, 0x11AF8}, {0x11C00, 0x11C08},
- {0x11C0A, 0x11C36}, {0x11C38, 0x11C45}, {0x11C50, 0x11C6C}, {0x11C70, 0x11C8F},
- {0x11C92, 0x11CA7}, {0x11CA9, 0x11CB6}, {0x11D00, 0x11D06}, {0x11D0B, 0x11D36},
- {0x11D3F, 0x11D47}, {0x11D50, 0x11D59}, {0x11D60, 0x11D65}, {0x11D6A, 0x11D8E},
- {0x11D93, 0x11D98}, {0x11DA0, 0x11DA9}, {0x11EE0, 0x11EF8}, {0x11FC0, 0x11FF1},
- {0x11FFF, 0x12399}, {0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543},
- {0x13000, 0x1342E}, {0x14400, 0x14646}, {0x16800, 0x16A38}, {0x16A40, 0x16A5E},
- {0x16A60, 0x16A69}, {0x16AD0, 0x16AED}, {0x16AF0, 0x16AF5}, {0x16B00, 0x16B45},
- {0x16B50, 0x16B59}, {0x16B5B, 0x16B61}, {0x16B63, 0x16B77}, {0x16B7D, 0x16B8F},
- {0x16E40, 0x16E9A}, {0x16F00, 0x16F4A}, {0x16F4F, 0x16F87}, {0x16F8F, 0x16F9F},
- {0x16FE0, 0x16FE4}, {0x17000, 0x187F7}, {0x18800, 0x18CD5}, {0x18D00, 0x18D08},
- {0x1B000, 0x1B11E}, {0x1B150, 0x1B152}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB},
- {0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99},
- {0x1BC9C, 0x1BC9F}, {0x1D000, 0x1D0F5}, {0x1D100, 0x1D126}, {0x1D129, 0x1D172},
- {0x1D17B, 0x1D1E8}, {0x1D200, 0x1D245}, {0x1D2E0, 0x1D2F3}, {0x1D300, 0x1D356},
- {0x1D360, 0x1D378}, {0x1D400, 0x1D454}, {0x1D456, 0x1D49C}, {0x1D4A9, 0x1D4AC},
- {0x1D4AE, 0x1D4B9}, {0x1D4BD, 0x1D4C3}, {0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A},
- {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C}, {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E},
- {0x1D540, 0x1D544}, {0x1D54A, 0x1D550}, {0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D7CB},
- {0x1D7CE, 0x1DA8B}, {0x1DA9B, 0x1DA9F}, {0x1DAA1, 0x1DAAF}, {0x1E000, 0x1E006},
- {0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, {0x1E026, 0x1E02A}, {0x1E100, 0x1E12C},
- {0x1E130, 0x1E13D}, {0x1E140, 0x1E149}, {0x1E2C0, 0x1E2F9}, {0x1E800, 0x1E8C4},
- {0x1E8C7, 0x1E8D6}, {0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1EC71, 0x1ECB4},
- {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03}, {0x1EE05, 0x1EE1F}, {0x1EE29, 0x1EE32},
- {0x1EE34, 0x1EE37}, {0x1EE4D, 0x1EE4F}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72},
- {0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B},
- {0x1EEA1, 0x1EEA3}, {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1F000, 0x1F02B},
- {0x1F030, 0x1F093}, {0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CF},
- {0x1F0D1, 0x1F0F5}, {0x1F100, 0x1F1AD}, {0x1F1E6, 0x1F202}, {0x1F210, 0x1F23B},
- {0x1F240, 0x1F248}, {0x1F260, 0x1F265}, {0x1F300, 0x1F6D7}, {0x1F6E0, 0x1F6EC},
- {0x1F6F0, 0x1F6FC}, {0x1F700, 0x1F773}, {0x1F780, 0x1F7D8}, {0x1F7E0, 0x1F7EB},
- {0x1F800, 0x1F80B}, {0x1F810, 0x1F847}, {0x1F850, 0x1F859}, {0x1F860, 0x1F887},
- {0x1F890, 0x1F8AD}, {0x1F900, 0x1F978}, {0x1F97A, 0x1F9CB}, {0x1F9CD, 0x1FA53},
- {0x1FA60, 0x1FA6D}, {0x1FA70, 0x1FA74}, {0x1FA78, 0x1FA7A}, {0x1FA80, 0x1FA86},
- {0x1FA90, 0x1FAA8}, {0x1FAB0, 0x1FAB6}, {0x1FAC0, 0x1FAC2}, {0x1FAD0, 0x1FAD6},
- {0x1FB00, 0x1FB92}, {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9}, {0x20000, 0x2A6DD},
- {0x2A700, 0x2B734}, {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0},
- {0x2F800, 0x2FA1D}, {0x30000, 0x3134A}, {0xE0100, 0xE01EF}
+ {0x10500, 0x10527}, {0x10530, 0x10563}, {0x1056F, 0x1057A}, {0x1057C, 0x1058A},
+ {0x1058C, 0x10592}, {0x10597, 0x105A1}, {0x105A3, 0x105B1}, {0x105B3, 0x105B9},
+ {0x10600, 0x10736}, {0x10740, 0x10755}, {0x10760, 0x10767}, {0x10780, 0x10785},
+ {0x10787, 0x107B0}, {0x107B2, 0x107BA}, {0x10800, 0x10805}, {0x1080A, 0x10835},
+ {0x1083F, 0x10855}, {0x10857, 0x1089E}, {0x108A7, 0x108AF}, {0x108E0, 0x108F2},
+ {0x108FB, 0x1091B}, {0x1091F, 0x10939}, {0x10980, 0x109B7}, {0x109BC, 0x109CF},
+ {0x109D2, 0x10A03}, {0x10A0C, 0x10A13}, {0x10A15, 0x10A17}, {0x10A19, 0x10A35},
+ {0x10A38, 0x10A3A}, {0x10A3F, 0x10A48}, {0x10A50, 0x10A58}, {0x10A60, 0x10A9F},
+ {0x10AC0, 0x10AE6}, {0x10AEB, 0x10AF6}, {0x10B00, 0x10B35}, {0x10B39, 0x10B55},
+ {0x10B58, 0x10B72}, {0x10B78, 0x10B91}, {0x10B99, 0x10B9C}, {0x10BA9, 0x10BAF},
+ {0x10C00, 0x10C48}, {0x10C80, 0x10CB2}, {0x10CC0, 0x10CF2}, {0x10CFA, 0x10D27},
+ {0x10D30, 0x10D39}, {0x10E60, 0x10E7E}, {0x10E80, 0x10EA9}, {0x10EAB, 0x10EAD},
+ {0x10F00, 0x10F27}, {0x10F30, 0x10F59}, {0x10F70, 0x10F89}, {0x10FB0, 0x10FCB},
+ {0x10FE0, 0x10FF6}, {0x11000, 0x1104D}, {0x11052, 0x11075}, {0x1107F, 0x110BC},
+ {0x110BE, 0x110C2}, {0x110D0, 0x110E8}, {0x110F0, 0x110F9}, {0x11100, 0x11134},
+ {0x11136, 0x11147}, {0x11150, 0x11176}, {0x11180, 0x111DF}, {0x111E1, 0x111F4},
+ {0x11200, 0x11211}, {0x11213, 0x1123E}, {0x11280, 0x11286}, {0x1128A, 0x1128D},
+ {0x1128F, 0x1129D}, {0x1129F, 0x112A9}, {0x112B0, 0x112EA}, {0x112F0, 0x112F9},
+ {0x11300, 0x11303}, {0x11305, 0x1130C}, {0x11313, 0x11328}, {0x1132A, 0x11330},
+ {0x11335, 0x11339}, {0x1133B, 0x11344}, {0x1134B, 0x1134D}, {0x1135D, 0x11363},
+ {0x11366, 0x1136C}, {0x11370, 0x11374}, {0x11400, 0x1145B}, {0x1145D, 0x11461},
+ {0x11480, 0x114C7}, {0x114D0, 0x114D9}, {0x11580, 0x115B5}, {0x115B8, 0x115DD},
+ {0x11600, 0x11644}, {0x11650, 0x11659}, {0x11660, 0x1166C}, {0x11680, 0x116B9},
+ {0x116C0, 0x116C9}, {0x11700, 0x1171A}, {0x1171D, 0x1172B}, {0x11730, 0x11746},
+ {0x11800, 0x1183B}, {0x118A0, 0x118F2}, {0x118FF, 0x11906}, {0x1190C, 0x11913},
+ {0x11918, 0x11935}, {0x1193B, 0x11946}, {0x11950, 0x11959}, {0x119A0, 0x119A7},
+ {0x119AA, 0x119D7}, {0x119DA, 0x119E4}, {0x11A00, 0x11A47}, {0x11A50, 0x11AA2},
+ {0x11AB0, 0x11AF8}, {0x11C00, 0x11C08}, {0x11C0A, 0x11C36}, {0x11C38, 0x11C45},
+ {0x11C50, 0x11C6C}, {0x11C70, 0x11C8F}, {0x11C92, 0x11CA7}, {0x11CA9, 0x11CB6},
+ {0x11D00, 0x11D06}, {0x11D0B, 0x11D36}, {0x11D3F, 0x11D47}, {0x11D50, 0x11D59},
+ {0x11D60, 0x11D65}, {0x11D6A, 0x11D8E}, {0x11D93, 0x11D98}, {0x11DA0, 0x11DA9},
+ {0x11EE0, 0x11EF8}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399}, {0x12400, 0x1246E},
+ {0x12470, 0x12474}, {0x12480, 0x12543}, {0x12F90, 0x12FF2}, {0x13000, 0x1342E},
+ {0x14400, 0x14646}, {0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69},
+ {0x16A6E, 0x16ABE}, {0x16AC0, 0x16AC9}, {0x16AD0, 0x16AED}, {0x16AF0, 0x16AF5},
+ {0x16B00, 0x16B45}, {0x16B50, 0x16B59}, {0x16B5B, 0x16B61}, {0x16B63, 0x16B77},
+ {0x16B7D, 0x16B8F}, {0x16E40, 0x16E9A}, {0x16F00, 0x16F4A}, {0x16F4F, 0x16F87},
+ {0x16F8F, 0x16F9F}, {0x16FE0, 0x16FE4}, {0x17000, 0x187F7}, {0x18800, 0x18CD5},
+ {0x18D00, 0x18D08}, {0x1AFF0, 0x1AFF3}, {0x1AFF5, 0x1AFFB}, {0x1B000, 0x1B122},
+ {0x1B150, 0x1B152}, {0x1B164, 0x1B167}, {0x1B170, 0x1B2FB}, {0x1BC00, 0x1BC6A},
+ {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88}, {0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BC9F},
+ {0x1CF00, 0x1CF2D}, {0x1CF30, 0x1CF46}, {0x1CF50, 0x1CFC3}, {0x1D000, 0x1D0F5},
+ {0x1D100, 0x1D126}, {0x1D129, 0x1D172}, {0x1D17B, 0x1D1EA}, {0x1D200, 0x1D245},
+ {0x1D2E0, 0x1D2F3}, {0x1D300, 0x1D356}, {0x1D360, 0x1D378}, {0x1D400, 0x1D454},
+ {0x1D456, 0x1D49C}, {0x1D4A9, 0x1D4AC}, {0x1D4AE, 0x1D4B9}, {0x1D4BD, 0x1D4C3},
+ {0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514}, {0x1D516, 0x1D51C},
+ {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E}, {0x1D540, 0x1D544}, {0x1D54A, 0x1D550},
+ {0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B}, {0x1DA9B, 0x1DA9F},
+ {0x1DAA1, 0x1DAAF}, {0x1DF00, 0x1DF1E}, {0x1E000, 0x1E006}, {0x1E008, 0x1E018},
+ {0x1E01B, 0x1E021}, {0x1E026, 0x1E02A}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D},
+ {0x1E140, 0x1E149}, {0x1E290, 0x1E2AE}, {0x1E2C0, 0x1E2F9}, {0x1E7E0, 0x1E7E6},
+ {0x1E7E8, 0x1E7EB}, {0x1E7F0, 0x1E7FE}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6},
+ {0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D},
+ {0x1EE00, 0x1EE03}, {0x1EE05, 0x1EE1F}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37},
+ {0x1EE4D, 0x1EE4F}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72}, {0x1EE74, 0x1EE77},
+ {0x1EE79, 0x1EE7C}, {0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3},
+ {0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1F000, 0x1F02B}, {0x1F030, 0x1F093},
+ {0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CF}, {0x1F0D1, 0x1F0F5},
+ {0x1F100, 0x1F1AD}, {0x1F1E6, 0x1F202}, {0x1F210, 0x1F23B}, {0x1F240, 0x1F248},
+ {0x1F260, 0x1F265}, {0x1F300, 0x1F6D7}, {0x1F6DD, 0x1F6EC}, {0x1F6F0, 0x1F6FC},
+ {0x1F700, 0x1F773}, {0x1F780, 0x1F7D8}, {0x1F7E0, 0x1F7EB}, {0x1F800, 0x1F80B},
+ {0x1F810, 0x1F847}, {0x1F850, 0x1F859}, {0x1F860, 0x1F887}, {0x1F890, 0x1F8AD},
+ {0x1F900, 0x1FA53}, {0x1FA60, 0x1FA6D}, {0x1FA70, 0x1FA74}, {0x1FA78, 0x1FA7C},
+ {0x1FA80, 0x1FA86}, {0x1FA90, 0x1FAAC}, {0x1FAB0, 0x1FABA}, {0x1FAC0, 0x1FAC5},
+ {0x1FAD0, 0x1FAD9}, {0x1FAE0, 0x1FAE7}, {0x1FAF0, 0x1FAF6}, {0x1FB00, 0x1FB92},
+ {0x1FB94, 0x1FBCA}, {0x1FBF0, 0x1FBF9}, {0x20000, 0x2A6DF}, {0x2A700, 0x2B738},
+ {0x2B740, 0x2B81D}, {0x2B820, 0x2CEA1}, {0x2CEB0, 0x2EBE0}, {0x2F800, 0x2FA1D},
+ {0x30000, 0x3134A}, {0xE0100, 0xE01EF}
#endif
};
@@ -781,22 +795,23 @@ static const chr graphCharTable[] = {
0xA3C, 0xA47, 0xA48, 0xA51, 0xA5E, 0xAB2, 0xAB3, 0xAD0, 0xB0F,
0xB10, 0xB32, 0xB33, 0xB47, 0xB48, 0xB5C, 0xB5D, 0xB82, 0xB83,
0xB99, 0xB9A, 0xB9C, 0xB9E, 0xB9F, 0xBA3, 0xBA4, 0xBD0, 0xBD7,
- 0xC55, 0xC56, 0xCD5, 0xCD6, 0xCDE, 0xCF1, 0xCF2, 0xDBD, 0xDCA,
- 0xDD6, 0xE81, 0xE82, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258,
- 0x12C0, 0x1772, 0x1773, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2070, 0x2071,
- 0x2D27, 0x2D2D, 0x2D6F, 0x2D70, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44,
- 0xFFFC, 0xFFFD
+ 0xC55, 0xC56, 0xC5D, 0xCD5, 0xCD6, 0xCDD, 0xCDE, 0xCF1, 0xCF2,
+ 0xDBD, 0xDCA, 0xDD6, 0xE81, 0xE82, 0xE84, 0xEA5, 0xEC6, 0x10C7,
+ 0x10CD, 0x1258, 0x12C0, 0x1772, 0x1773, 0x1940, 0x1F59, 0x1F5B, 0x1F5D,
+ 0x2070, 0x2071, 0x2D27, 0x2D2D, 0x2D6F, 0x2D70, 0xA7D0, 0xA7D1, 0xA7D3,
+ 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, 0xFDCF, 0xFFFC, 0xFFFD
#if CHRBITS > 16
- ,0x1003C, 0x1003D, 0x101A0, 0x1056F, 0x10808, 0x10837, 0x10838, 0x1083C, 0x108F4,
- 0x108F5, 0x1093F, 0x10A05, 0x10A06, 0x10EB0, 0x10EB1, 0x11288, 0x1130F, 0x11310,
- 0x11332, 0x11333, 0x11347, 0x11348, 0x11350, 0x11357, 0x11909, 0x11915, 0x11916,
- 0x11937, 0x11938, 0x11D08, 0x11D09, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D67, 0x11D68,
- 0x11D90, 0x11D91, 0x11FB0, 0x16A6E, 0x16A6F, 0x16FF0, 0x16FF1, 0x1D49E, 0x1D49F,
- 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4BB, 0x1D546, 0x1E023, 0x1E024, 0x1E14E, 0x1E14F,
- 0x1E2FF, 0x1E95E, 0x1E95F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B,
- 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59,
- 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE7E, 0x1EEF0, 0x1EEF1,
- 0x1F250, 0x1F251, 0x1F8B0, 0x1F8B1
+ ,0x1003C, 0x1003D, 0x101A0, 0x10594, 0x10595, 0x105BB, 0x105BC, 0x10808, 0x10837,
+ 0x10838, 0x1083C, 0x108F4, 0x108F5, 0x1093F, 0x10A05, 0x10A06, 0x10EB0, 0x10EB1,
+ 0x11288, 0x1130F, 0x11310, 0x11332, 0x11333, 0x11347, 0x11348, 0x11350, 0x11357,
+ 0x11909, 0x11915, 0x11916, 0x11937, 0x11938, 0x11D08, 0x11D09, 0x11D3A, 0x11D3C,
+ 0x11D3D, 0x11D67, 0x11D68, 0x11D90, 0x11D91, 0x11FB0, 0x16FF0, 0x16FF1, 0x1AFFD,
+ 0x1AFFE, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4BB, 0x1D546, 0x1E023,
+ 0x1E024, 0x1E14E, 0x1E14F, 0x1E2FF, 0x1E7ED, 0x1E7EE, 0x1E95E, 0x1E95F, 0x1EE21,
+ 0x1EE22, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B,
+ 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE61,
+ 0x1EE62, 0x1EE64, 0x1EE7E, 0x1EEF0, 0x1EEF1, 0x1F250, 0x1F251, 0x1F7F0, 0x1F8B0,
+ 0x1F8B1
#endif
};
diff --git a/generic/tcl.decls b/generic/tcl.decls
index be3811e..7270116 100644
--- a/generic/tcl.decls
+++ b/generic/tcl.decls
@@ -2348,18 +2348,18 @@ declare 635 {
# TIP #445
declare 636 {
- void Tcl_FreeIntRep(Tcl_Obj *objPtr)
+ void Tcl_FreeInternalRep(Tcl_Obj *objPtr)
}
declare 637 {
char *Tcl_InitStringRep(Tcl_Obj *objPtr, const char *bytes,
unsigned int numBytes)
}
declare 638 {
- Tcl_ObjIntRep *Tcl_FetchIntRep(Tcl_Obj *objPtr, const Tcl_ObjType *typePtr)
+ Tcl_ObjInternalRep *Tcl_FetchInternalRep(Tcl_Obj *objPtr, const Tcl_ObjType *typePtr)
}
declare 639 {
- void Tcl_StoreIntRep(Tcl_Obj *objPtr, const Tcl_ObjType *typePtr,
- const Tcl_ObjIntRep *irPtr)
+ void Tcl_StoreInternalRep(Tcl_Obj *objPtr, const Tcl_ObjType *typePtr,
+ const Tcl_ObjInternalRep *irPtr)
}
declare 640 {
int Tcl_HasStringRep(Tcl_Obj *objPtr)
@@ -2435,6 +2435,11 @@ declare 659 {
const char *src, int srcLen, int flags, Tcl_DString *dsPtr)
}
+# TIP #511
+declare 660 {
+ int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async, int sigNumber)
+}
+
# ----- BASELINE -- FOR -- 8.7.0 ----- #
##############################################################################
diff --git a/generic/tcl.h b/generic/tcl.h
index 471eec5..3548d03 100644
--- a/generic/tcl.h
+++ b/generic/tcl.h
@@ -749,13 +749,13 @@ typedef struct Tcl_ObjType {
} Tcl_ObjType;
/*
- * The following structure stores an internal representation (intrep) for
- * a Tcl value. An intrep is associated with an Tcl_ObjType when both
+ * The following structure stores an internal representation (internalrep) for
+ * a Tcl value. An internalrep is associated with an Tcl_ObjType when both
* are stored in the same Tcl_Obj. The routines of the Tcl_ObjType govern
- * the handling of the intrep.
+ * the handling of the internalrep.
*/
-typedef union Tcl_ObjIntRep { /* The internal representation: */
+typedef union Tcl_ObjInternalRep { /* The internal representation: */
long longValue; /* - an long integer value. */
double doubleValue; /* - a double-precision floating value. */
void *otherValuePtr; /* - another, type-specific value, */
@@ -769,7 +769,7 @@ typedef union Tcl_ObjIntRep { /* The internal representation: */
void *ptr; /* not used internally any more. */
unsigned long value;
} ptrAndLongRep;
-} Tcl_ObjIntRep;
+} Tcl_ObjInternalRep;
/*
* One of the following structures exists for each object in the Tcl system.
@@ -796,7 +796,7 @@ typedef struct Tcl_Obj {
* corresponds to the type of the object's
* internal rep. NULL indicates the object has
* no internal rep (has no type). */
- Tcl_ObjIntRep internalRep; /* The internal representation: */
+ Tcl_ObjInternalRep internalRep; /* The internal representation: */
} Tcl_Obj;
diff --git a/generic/tclAssembly.c b/generic/tclAssembly.c
index a20cd1a..b429113 100644
--- a/generic/tclAssembly.c
+++ b/generic/tclAssembly.c
@@ -865,7 +865,7 @@ CompileAssembleObj(
* is valid in the current context.
*/
- ByteCodeGetIntRep(objPtr, &assembleCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &assembleCodeType, codePtr);
if (codePtr) {
namespacePtr = iPtr->varFramePtr->nsPtr;
@@ -882,7 +882,7 @@ CompileAssembleObj(
* Not valid, so free it and regenerate.
*/
- Tcl_StoreIntRep(objPtr, &assembleCodeType, NULL);
+ Tcl_StoreInternalRep(objPtr, &assembleCodeType, NULL);
}
/*
@@ -4289,7 +4289,7 @@ AddBasicBlockRangeToErrorInfo(
* DupAssembleCodeInternalRep --
*
* Part of the Tcl object type implementation for Tcl assembly language
- * bytecode. We do not copy the bytecode intrep. Instead, we return
+ * bytecode. We do not copy the bytecode internalrep. Instead, we return
* without setting copyPtr->typePtr, so the copy is a plain string copy
* of the assembly source, and if it is to be used as a compiled
* expression, it will need to be reprocessed.
@@ -4298,7 +4298,7 @@ AddBasicBlockRangeToErrorInfo(
* usual (only?) time Tcl_DuplicateObj() will be called is when the copy
* is about to be modified, which would invalidate any copied bytecode
* anyway. The only reason it might make sense to copy the bytecode is if
- * we had some modifying routines that operated directly on the intrep,
+ * we had some modifying routines that operated directly on the internalrep,
* as we do for lists and dicts.
*
* Results:
@@ -4342,7 +4342,7 @@ FreeAssembleCodeInternalRep(
{
ByteCode *codePtr;
- ByteCodeGetIntRep(objPtr, &assembleCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &assembleCodeType, codePtr);
assert(codePtr != NULL);
TclReleaseByteCode(codePtr);
diff --git a/generic/tclAsync.c b/generic/tclAsync.c
index 3a09304..9ce2c88 100644
--- a/generic/tclAsync.c
+++ b/generic/tclAsync.c
@@ -25,9 +25,9 @@ typedef struct AsyncHandler {
int ready; /* Non-zero means this handler should be
* invoked in the next call to
* Tcl_AsyncInvoke. */
- struct AsyncHandler *nextPtr;
- /* Next in list of all handlers for the
- * process. */
+ struct AsyncHandler *nextPtr, *prevPtr;
+ /* Next, previous in list of all handlers
+ * for the process. */
Tcl_AsyncProc *proc; /* Procedure to call when handler is
* invoked. */
ClientData clientData; /* Value to pass to handler when it is
@@ -38,16 +38,10 @@ typedef struct AsyncHandler {
* associated to. */
Tcl_ThreadId originThrdId; /* Origin thread where this token was created
* and where it will be yielded. */
+ ClientData notifierData; /* Platform notifier data or NULL. */
} AsyncHandler;
typedef struct ThreadSpecificData {
- /*
- * The variables below maintain a list of all existing handlers specific
- * to the calling thread.
- */
- AsyncHandler *firstHandler; /* First handler defined for process, or NULL
- * if none. */
- AsyncHandler *lastHandler; /* Last handler or NULL. */
int asyncReady; /* This is set to 1 whenever a handler becomes
* ready and it is cleared to zero whenever
* Tcl_AsyncInvoke is called. It can be
@@ -58,24 +52,29 @@ typedef struct ThreadSpecificData {
* currently working. If so then we won't set
* asyncReady again until Tcl_AsyncInvoke
* returns. */
- Tcl_Mutex asyncMutex; /* Thread-specific AsyncHandler linked-list
- * lock */
} ThreadSpecificData;
static Tcl_ThreadDataKey dataKey;
+
+/* Mutex to protect linked-list of AsyncHandlers in the process. */
+TCL_DECLARE_MUTEX(asyncMutex)
+
+/* List of all existing handlers of the process. */
+static AsyncHandler *firstHandler = NULL;
+static AsyncHandler *lastHandler = NULL;
/*
*----------------------------------------------------------------------
*
* TclFinalizeAsync --
*
- * Finalizes the mutex in the thread local data structure for the async
+ * Finalizes the thread local data structure for the async
* subsystem.
*
* Results:
* None.
*
* Side effects:
- * Forgets knowledge of the mutex should it have been created.
+ * Cleans up left-over async handlers for the calling thread.
*
*----------------------------------------------------------------------
*/
@@ -83,10 +82,40 @@ static Tcl_ThreadDataKey dataKey;
void
TclFinalizeAsync(void)
{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ AsyncHandler *token, *toDelete = NULL;
+ Tcl_ThreadId self = Tcl_GetCurrentThread();
+
+ Tcl_MutexLock(&asyncMutex);
+ for (token = firstHandler; token != NULL;) {
+ AsyncHandler *nextToken = token->nextPtr;
- if (tsdPtr->asyncMutex != NULL) {
- Tcl_MutexFinalize(&tsdPtr->asyncMutex);
+ if (token->originThrdId == self) {
+ if (token->prevPtr == NULL) {
+ firstHandler = token->nextPtr;
+ if (firstHandler == NULL) {
+ lastHandler = NULL;
+ break;
+ }
+ } else {
+ token->prevPtr->nextPtr = token->nextPtr;
+ if (token == lastHandler) {
+ lastHandler = token->prevPtr;
+ }
+ }
+ if (token->nextPtr != NULL) {
+ token->nextPtr->prevPtr = token->prevPtr;
+ }
+ token->nextPtr = toDelete;
+ token->prevPtr = NULL;
+ toDelete = token;
+ }
+ token = nextToken;
+ }
+ Tcl_MutexUnlock(&asyncMutex);
+ while (toDelete != NULL) {
+ token = toDelete;
+ toDelete = toDelete->nextPtr;
+ ckfree(token);
}
}
@@ -121,19 +150,22 @@ Tcl_AsyncCreate(
asyncPtr = (AsyncHandler*)ckalloc(sizeof(AsyncHandler));
asyncPtr->ready = 0;
asyncPtr->nextPtr = NULL;
+ asyncPtr->prevPtr = NULL;
asyncPtr->proc = proc;
asyncPtr->clientData = clientData;
asyncPtr->originTsd = tsdPtr;
asyncPtr->originThrdId = Tcl_GetCurrentThread();
+ asyncPtr->notifierData = TclpNotifierData();
- Tcl_MutexLock(&tsdPtr->asyncMutex);
- if (tsdPtr->firstHandler == NULL) {
- tsdPtr->firstHandler = asyncPtr;
+ Tcl_MutexLock(&asyncMutex);
+ if (firstHandler == NULL) {
+ firstHandler = asyncPtr;
} else {
- tsdPtr->lastHandler->nextPtr = asyncPtr;
+ asyncPtr->prevPtr = lastHandler;
+ lastHandler->nextPtr = asyncPtr;
}
- tsdPtr->lastHandler = asyncPtr;
- Tcl_MutexUnlock(&tsdPtr->asyncMutex);
+ lastHandler = asyncPtr;
+ Tcl_MutexUnlock(&asyncMutex);
return (Tcl_AsyncHandler) asyncPtr;
}
@@ -162,13 +194,86 @@ Tcl_AsyncMark(
{
AsyncHandler *token = (AsyncHandler *) async;
- Tcl_MutexLock(&token->originTsd->asyncMutex);
+ Tcl_MutexLock(&asyncMutex);
token->ready = 1;
if (!token->originTsd->asyncActive) {
token->originTsd->asyncReady = 1;
Tcl_ThreadAlert(token->originThrdId);
}
- Tcl_MutexUnlock(&token->originTsd->asyncMutex);
+ Tcl_MutexUnlock(&asyncMutex);
+
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * Tcl_AsyncMarkFromSignal --
+ *
+ * This procedure is similar to Tcl_AsyncMark but must be used
+ * in POSIX signal contexts. In addition to Tcl_AsyncMark the
+ * signal number is passed.
+ *
+ * Results:
+ * True, when the handler will be marked, false otherwise.
+ *
+ * Side effects:
+ * The handler gets marked for invocation later.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+Tcl_AsyncMarkFromSignal(
+ Tcl_AsyncHandler async, /* Token for handler. */
+ int sigNumber) /* Signal number. */
+{
+#if TCL_THREADS
+ AsyncHandler *token = (AsyncHandler *) async;
+
+ return TclAsyncNotifier(sigNumber, token->originThrdId,
+ token->notifierData, &token->ready, -1);
+#else
+ (void)sigNumber;
+
+ Tcl_AsyncMark(async);
+ return 1;
+#endif
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclAsyncMarkFromNotifier --
+ *
+ * This procedure is called from the notifier thread and
+ * invokes Tcl_AsyncMark for specifically marked handlers.
+ *
+ * Results:
+ * None.
+ *
+ * Side effects:
+ * Handlers get marked for invocation later.
+ *
+ *----------------------------------------------------------------------
+ */
+
+void
+TclAsyncMarkFromNotifier(void)
+{
+ AsyncHandler *token;
+
+ Tcl_MutexLock(&asyncMutex);
+ for (token = firstHandler; token != NULL;
+ token = token->nextPtr) {
+ if (token->ready == -1) {
+ token->ready = 1;
+ if (!token->originTsd->asyncActive) {
+ token->originTsd->asyncReady = 1;
+ Tcl_ThreadAlert(token->originThrdId);
+ }
+ }
+ }
+ Tcl_MutexUnlock(&asyncMutex);
}
/*
@@ -200,11 +305,12 @@ Tcl_AsyncInvoke(
{
AsyncHandler *asyncPtr;
ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+ Tcl_ThreadId self = Tcl_GetCurrentThread();
- Tcl_MutexLock(&tsdPtr->asyncMutex);
+ Tcl_MutexLock(&asyncMutex);
if (tsdPtr->asyncReady == 0) {
- Tcl_MutexUnlock(&tsdPtr->asyncMutex);
+ Tcl_MutexUnlock(&asyncMutex);
return code;
}
tsdPtr->asyncReady = 0;
@@ -224,8 +330,11 @@ Tcl_AsyncInvoke(
*/
while (1) {
- for (asyncPtr = tsdPtr->firstHandler; asyncPtr != NULL;
+ for (asyncPtr = firstHandler; asyncPtr != NULL;
asyncPtr = asyncPtr->nextPtr) {
+ if (asyncPtr->originThrdId != self) {
+ continue;
+ }
if (asyncPtr->ready) {
break;
}
@@ -234,12 +343,12 @@ Tcl_AsyncInvoke(
break;
}
asyncPtr->ready = 0;
- Tcl_MutexUnlock(&tsdPtr->asyncMutex);
+ Tcl_MutexUnlock(&asyncMutex);
code = asyncPtr->proc(asyncPtr->clientData, interp, code);
- Tcl_MutexLock(&tsdPtr->asyncMutex);
+ Tcl_MutexLock(&asyncMutex);
}
tsdPtr->asyncActive = 0;
- Tcl_MutexUnlock(&tsdPtr->asyncMutex);
+ Tcl_MutexUnlock(&asyncMutex);
return code;
}
@@ -271,9 +380,7 @@ void
Tcl_AsyncDelete(
Tcl_AsyncHandler async) /* Token for handler to delete. */
{
- ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
AsyncHandler *asyncPtr = (AsyncHandler *) async;
- AsyncHandler *prevPtr, *thisPtr;
/*
* Assure early handling of the constraint
@@ -283,33 +390,22 @@ Tcl_AsyncDelete(
Tcl_Panic("Tcl_AsyncDelete: async handler deleted by the wrong thread");
}
- /*
- * If we come to this point when TSD's for the current
- * thread have already been garbage-collected, we are
- * in the _serious_ trouble. OTOH, we tolerate calling
- * with already cleaned-up handler list (should we?).
- */
-
- Tcl_MutexLock(&tsdPtr->asyncMutex);
- if (tsdPtr->firstHandler != NULL) {
- prevPtr = thisPtr = tsdPtr->firstHandler;
- while (thisPtr != NULL && thisPtr != asyncPtr) {
- prevPtr = thisPtr;
- thisPtr = thisPtr->nextPtr;
- }
- if (thisPtr == NULL) {
- Tcl_Panic("Tcl_AsyncDelete: cannot find async handler");
+ Tcl_MutexLock(&asyncMutex);
+ if (asyncPtr->prevPtr == NULL) {
+ firstHandler = asyncPtr->nextPtr;
+ if (firstHandler == NULL) {
+ lastHandler = NULL;
}
- if (asyncPtr == tsdPtr->firstHandler) {
- tsdPtr->firstHandler = asyncPtr->nextPtr;
- } else {
- prevPtr->nextPtr = asyncPtr->nextPtr;
- }
- if (asyncPtr == tsdPtr->lastHandler) {
- tsdPtr->lastHandler = prevPtr;
+ } else {
+ asyncPtr->prevPtr->nextPtr = asyncPtr->nextPtr;
+ if (asyncPtr == lastHandler) {
+ lastHandler = asyncPtr->prevPtr;
}
}
- Tcl_MutexUnlock(&tsdPtr->asyncMutex);
+ if (asyncPtr->nextPtr != NULL) {
+ asyncPtr->nextPtr->prevPtr = asyncPtr->prevPtr;
+ }
+ Tcl_MutexUnlock(&asyncMutex);
ckfree(asyncPtr);
}
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 69194f8..599366b 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -3959,8 +3959,8 @@ OldMathFuncProc(
result = Tcl_GetDoubleFromObj(NULL, valuePtr, &d);
#ifdef ACCEPT_NAN
if (result != TCL_OK) {
- const Tcl_ObjIntRep *irPtr
- = TclFetchIntRep(valuePtr, &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr
+ = TclFetchInternalRep(valuePtr, &tclDoubleType);
if (irPtr) {
d = irPtr->doubleValue;
@@ -7537,7 +7537,7 @@ ExprCeilFunc(
code = Tcl_GetDoubleFromObj(interp, objv[1], &d);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
Tcl_SetObjResult(interp, objv[1]);
@@ -7577,7 +7577,7 @@ ExprFloorFunc(
code = Tcl_GetDoubleFromObj(interp, objv[1], &d);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
Tcl_SetObjResult(interp, objv[1]);
@@ -7723,7 +7723,7 @@ ExprSqrtFunc(
code = Tcl_GetDoubleFromObj(interp, objv[1], &d);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
Tcl_SetObjResult(interp, objv[1]);
@@ -7777,7 +7777,7 @@ ExprUnaryFunc(
code = Tcl_GetDoubleFromObj(interp, objv[1], &d);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
d = irPtr->doubleValue;
@@ -7841,7 +7841,7 @@ ExprBinaryFunc(
code = Tcl_GetDoubleFromObj(interp, objv[1], &d1);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
d1 = irPtr->doubleValue;
@@ -7856,7 +7856,7 @@ ExprBinaryFunc(
code = Tcl_GetDoubleFromObj(interp, objv[2], &d2);
#ifdef ACCEPT_NAN
if (code != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objv[1], &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objv[1], &tclDoubleType);
if (irPtr) {
d2 = irPtr->doubleValue;
@@ -8017,7 +8017,7 @@ ExprDoubleFunc(
}
if (Tcl_GetDoubleFromObj(interp, objv[1], &dResult) != TCL_OK) {
#ifdef ACCEPT_NAN
- if (TclHasIntRep(objv[1], &tclDoubleType)) {
+ if (TclHasInternalRep(objv[1], &tclDoubleType)) {
Tcl_SetObjResult(interp, objv[1]);
return TCL_OK;
}
diff --git a/generic/tclBinary.c b/generic/tclBinary.c
index 396beec..633bc1e 100644
--- a/generic/tclBinary.c
+++ b/generic/tclBinary.c
@@ -226,7 +226,7 @@ static const EnsembleImplMap decodeMap[] = {
* implies a side testing burden -- past mistakes will not let us avoid that
* immediately, but it is at least a conventional test of type, and can be
* implemented entirely by examining the objPtr fields, with no need to query
- * the intrep, as a canonical flag would require.
+ * the internalrep, as a canonical flag would require.
*
* Until Tcl_GetByteArrayFromObj() and Tcl_SetByteArrayLength() can be revised
* to admit the possibility of returning NULL when the true value is not a
@@ -289,7 +289,7 @@ int
TclIsPureByteArray(
Tcl_Obj * objPtr)
{
- return TclHasIntRep(objPtr, &properByteArrayType);
+ return TclHasInternalRep(objPtr, &properByteArrayType);
}
/*
@@ -414,7 +414,7 @@ Tcl_SetByteArrayObj(
* be >= 0. */
{
ByteArray *byteArrayPtr;
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
if (Tcl_IsShared(objPtr)) {
Tcl_Panic("%s called with shared object", "Tcl_SetByteArrayObj");
@@ -434,7 +434,7 @@ Tcl_SetByteArrayObj(
}
SET_BYTEARRAY(&ir, byteArrayPtr);
- Tcl_StoreIntRep(objPtr, &properByteArrayType, &ir);
+ Tcl_StoreInternalRep(objPtr, &properByteArrayType, &ir);
}
/*
@@ -462,17 +462,17 @@ TclGetBytesFromObj(
* array of bytes in the ByteArray object. */
{
ByteArray *baPtr;
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
SetByteArrayFromAny(NULL, objPtr);
- irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
if (interp) {
const char *nonbyte;
int ucs4;
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
baPtr = GET_BYTEARRAY(irPtr);
nonbyte = Tcl_UtfAtIndex(Tcl_GetString(objPtr), baPtr->bad);
TclUtfToUCS4(nonbyte, &ucs4);
@@ -519,14 +519,14 @@ Tcl_GetByteArrayFromObj(
* array of bytes in the ByteArray object. */
{
ByteArray *baPtr;
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
unsigned char *result = TclGetBytesFromObj(NULL, objPtr, lengthPtr);
if (result) {
return result;
}
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
assert(irPtr != NULL);
baPtr = GET_BYTEARRAY(irPtr);
@@ -544,14 +544,14 @@ TclGetByteArrayFromObj(
* array of bytes in the ByteArray object. */
{
ByteArray *baPtr;
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
unsigned char *result = TclGetBytesFromObj(NULL, objPtr, (int *)NULL);
if (result) {
return result;
}
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
assert(irPtr != NULL);
baPtr = GET_BYTEARRAY(irPtr);
@@ -595,7 +595,7 @@ Tcl_SetByteArrayLength(
{
ByteArray *byteArrayPtr;
unsigned newLength;
- Tcl_ObjIntRep *irPtr;
+ Tcl_ObjInternalRep *irPtr;
assert(length >= 0);
newLength = (unsigned int)length;
@@ -604,14 +604,14 @@ Tcl_SetByteArrayLength(
Tcl_Panic("%s called with shared object", "Tcl_SetByteArrayLength");
}
- irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
if (irPtr == NULL) {
SetByteArrayFromAny(NULL, objPtr);
- irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
}
}
}
@@ -655,12 +655,12 @@ SetByteArrayFromAny(
unsigned char *dst;
Tcl_UniChar ch = 0;
ByteArray *byteArrayPtr;
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
- if (TclHasIntRep(objPtr, &properByteArrayType)) {
+ if (TclHasInternalRep(objPtr, &properByteArrayType)) {
return TCL_OK;
}
- if (TclHasIntRep(objPtr, &tclByteArrayType)) {
+ if (TclHasInternalRep(objPtr, &tclByteArrayType)) {
return TCL_OK;
}
@@ -683,10 +683,10 @@ SetByteArrayFromAny(
if (bad == length) {
byteArrayPtr->bad = byteArrayPtr->used;
- Tcl_StoreIntRep(objPtr, &properByteArrayType, &ir);
+ Tcl_StoreInternalRep(objPtr, &properByteArrayType, &ir);
} else {
byteArrayPtr->bad = bad;
- Tcl_StoreIntRep(objPtr, &tclByteArrayType, &ir);
+ Tcl_StoreInternalRep(objPtr, &tclByteArrayType, &ir);
}
return TCL_OK;
@@ -713,14 +713,14 @@ static void
FreeByteArrayInternalRep(
Tcl_Obj *objPtr) /* Object with internal rep to free. */
{
- ckfree(GET_BYTEARRAY(TclFetchIntRep(objPtr, &tclByteArrayType)));
+ ckfree(GET_BYTEARRAY(TclFetchInternalRep(objPtr, &tclByteArrayType)));
}
static void
FreeProperByteArrayInternalRep(
Tcl_Obj *objPtr) /* Object with internal rep to free. */
{
- ckfree(GET_BYTEARRAY(TclFetchIntRep(objPtr, &properByteArrayType)));
+ ckfree(GET_BYTEARRAY(TclFetchInternalRep(objPtr, &properByteArrayType)));
}
/*
@@ -747,9 +747,9 @@ DupByteArrayInternalRep(
{
unsigned int length;
ByteArray *srcArrayPtr, *copyArrayPtr;
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
- srcArrayPtr = GET_BYTEARRAY(TclFetchIntRep(srcPtr, &tclByteArrayType));
+ srcArrayPtr = GET_BYTEARRAY(TclFetchInternalRep(srcPtr, &tclByteArrayType));
length = srcArrayPtr->used;
copyArrayPtr = (ByteArray *)ckalloc(BYTEARRAY_SIZE(length));
@@ -759,7 +759,7 @@ DupByteArrayInternalRep(
memcpy(copyArrayPtr->bytes, srcArrayPtr->bytes, length);
SET_BYTEARRAY(&ir, copyArrayPtr);
- Tcl_StoreIntRep(copyPtr, &tclByteArrayType, &ir);
+ Tcl_StoreInternalRep(copyPtr, &tclByteArrayType, &ir);
}
static void
@@ -769,9 +769,9 @@ DupProperByteArrayInternalRep(
{
unsigned int length;
ByteArray *srcArrayPtr, *copyArrayPtr;
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
- srcArrayPtr = GET_BYTEARRAY(TclFetchIntRep(srcPtr, &properByteArrayType));
+ srcArrayPtr = GET_BYTEARRAY(TclFetchInternalRep(srcPtr, &properByteArrayType));
length = srcArrayPtr->used;
copyArrayPtr = (ByteArray *)ckalloc(BYTEARRAY_SIZE(length));
@@ -781,7 +781,7 @@ DupProperByteArrayInternalRep(
memcpy(copyArrayPtr->bytes, srcArrayPtr->bytes, length);
SET_BYTEARRAY(&ir, copyArrayPtr);
- Tcl_StoreIntRep(copyPtr, &properByteArrayType, &ir);
+ Tcl_StoreInternalRep(copyPtr, &properByteArrayType, &ir);
}
/*
@@ -806,7 +806,7 @@ UpdateStringOfByteArray(
Tcl_Obj *objPtr) /* ByteArray object whose string rep to
* update. */
{
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
ByteArray *byteArrayPtr = GET_BYTEARRAY(irPtr);
unsigned char *src = byteArrayPtr->bytes;
unsigned int i, length = byteArrayPtr->used;
@@ -867,7 +867,7 @@ TclAppendBytesToByteArray(
{
ByteArray *byteArrayPtr;
unsigned int length, needed;
- Tcl_ObjIntRep *irPtr;
+ Tcl_ObjInternalRep *irPtr;
if (Tcl_IsShared(objPtr)) {
Tcl_Panic("%s called with shared object","TclAppendBytesToByteArray");
@@ -886,14 +886,14 @@ TclAppendBytesToByteArray(
length = (unsigned int) len;
- irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
if (irPtr == NULL) {
SetByteArrayFromAny(NULL, objPtr);
- irPtr = TclFetchIntRep(objPtr, &properByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &properByteArrayType);
if (irPtr == NULL) {
- irPtr = TclFetchIntRep(objPtr, &tclByteArrayType);
+ irPtr = TclFetchInternalRep(objPtr, &tclByteArrayType);
}
}
}
@@ -2158,7 +2158,7 @@ FormatNumber(
*/
if (Tcl_GetDoubleFromObj(interp, src, &dvalue) != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(src, &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(src, &tclDoubleType);
if (irPtr == NULL) {
return TCL_ERROR;
}
@@ -2178,7 +2178,7 @@ FormatNumber(
*/
if (Tcl_GetDoubleFromObj(interp, src, &dvalue) != TCL_OK) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(src, &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(src, &tclDoubleType);
if (irPtr == NULL) {
return TCL_ERROR;
diff --git a/generic/tclCkalloc.c b/generic/tclCkalloc.c
index 6cf3c4c..f2394b1 100644
--- a/generic/tclCkalloc.c
+++ b/generic/tclCkalloc.c
@@ -381,7 +381,7 @@ Tcl_DumpActiveMemory(
* Tcl_DbCkalloc - debugging ckalloc
*
* Allocate the requested amount of space plus some extra for guard bands
- * at both ends of the request, plus a size, panicing if there isn't
+ * at both ends of the request, plus a size, panicking if there isn't
* enough space, then write in the guard bands and return the address of
* the space in the middle that the user asked for.
*
diff --git a/generic/tclClock.c b/generic/tclClock.c
index 90a998d..4473f74 100644
--- a/generic/tclClock.c
+++ b/generic/tclClock.c
@@ -452,7 +452,7 @@ ClockGetdatefieldsObjCmd(
* that it isn't.
*/
- if (TclHasIntRep(objv[1], &tclBignumType)) {
+ if (TclHasInternalRep(objv[1], &tclBignumType)) {
Tcl_SetObjResult(interp, lit[LIT_INTEGER_VALUE_TOO_LARGE]);
return TCL_ERROR;
}
diff --git a/generic/tclCmdAH.c b/generic/tclCmdAH.c
index 6549648..80f0d3c 100644
--- a/generic/tclCmdAH.c
+++ b/generic/tclCmdAH.c
@@ -584,7 +584,7 @@ EncodingConvertfromObjCmd(
}
} else {
encConvFromError:
- Tcl_WrongNumArgs(interp, 1, objv, "?-nothrow|-stoponerror? ?encoding? data");
+ Tcl_WrongNumArgs(interp, 1, objv, "?-nothrow? ?encoding? data");
return TCL_ERROR;
}
@@ -690,7 +690,7 @@ EncodingConverttoObjCmd(
}
} else {
encConvToError:
- Tcl_WrongNumArgs(interp, 1, objv, "?-nothrow|-stoponerror? ?encoding? data");
+ Tcl_WrongNumArgs(interp, 1, objv, "?-nothrow? ?encoding? data");
return TCL_ERROR;
}
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index 6f71198..f8f0004 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -1611,7 +1611,7 @@ StringIsCmd(
case STR_IS_BOOL:
case STR_IS_TRUE:
case STR_IS_FALSE:
- if (!TclHasIntRep(objPtr, &tclBooleanType)
+ if (!TclHasInternalRep(objPtr, &tclBooleanType)
&& (TCL_OK != TclSetBooleanFromAny(NULL, objPtr))) {
if (strict) {
result = 0;
@@ -1681,9 +1681,9 @@ StringIsCmd(
chcomp = Tcl_UniCharIsDigit;
break;
case STR_IS_DOUBLE: {
- if (TclHasIntRep(objPtr, &tclDoubleType) ||
- TclHasIntRep(objPtr, &tclIntType) ||
- TclHasIntRep(objPtr, &tclBignumType)) {
+ if (TclHasInternalRep(objPtr, &tclDoubleType) ||
+ TclHasInternalRep(objPtr, &tclIntType) ||
+ TclHasInternalRep(objPtr, &tclBignumType)) {
break;
}
string1 = TclGetStringFromObj(objPtr, &length1);
@@ -1702,7 +1702,7 @@ StringIsCmd(
failat = stop - string1;
if (stop < end) {
result = 0;
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
}
}
break;
@@ -1712,8 +1712,8 @@ StringIsCmd(
break;
case STR_IS_INT:
case STR_IS_ENTIER:
- if (TclHasIntRep(objPtr, &tclIntType) ||
- TclHasIntRep(objPtr, &tclBignumType)) {
+ if (TclHasInternalRep(objPtr, &tclIntType) ||
+ TclHasInternalRep(objPtr, &tclBignumType)) {
break;
}
string1 = TclGetStringFromObj(objPtr, &length1);
@@ -1742,7 +1742,7 @@ StringIsCmd(
result = 0;
failat = stop - string1;
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
}
} else {
/*
@@ -1795,7 +1795,7 @@ StringIsCmd(
*/
failat = stop - string1;
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
}
} else {
/*
@@ -1990,7 +1990,7 @@ StringMapCmd(
*/
if (!TclHasStringRep(objv[objc-2])
- && TclHasIntRep(objv[objc-2], &tclDictType)) {
+ && TclHasInternalRep(objv[objc-2], &tclDictType)) {
int i, done;
Tcl_DictSearch search;
@@ -5120,15 +5120,15 @@ TryPostHandler(
{
Tcl_Obj *resultObj, *cmdObj, *options, *handlerKindObj, **objv;
Tcl_Obj *finallyObj;
- int finally;
+ int finallyIndex;
objv = (Tcl_Obj **)data[0];
options = (Tcl_Obj *)data[1];
handlerKindObj = (Tcl_Obj *)data[2];
- finally = PTR2INT(data[3]);
+ finallyIndex = PTR2INT(data[3]);
cmdObj = objv[0];
- finallyObj = finally ? objv[finally] : 0;
+ finallyObj = finallyIndex ? objv[finallyIndex] : 0;
/*
* Check for limits/rewinding, which override normal trapping behaviour.
@@ -5172,7 +5172,7 @@ TryPostHandler(
/* The 'finally' script is always the last argument word. */
return TclNREvalObjEx(interp, finallyObj, 0, iPtr->cmdFramePtr,
- finally);
+ finallyIndex);
}
/*
diff --git a/generic/tclCompCmds.c b/generic/tclCompCmds.c
index 13589b2..a2e11c0 100644
--- a/generic/tclCompCmds.c
+++ b/generic/tclCompCmds.c
@@ -2641,8 +2641,8 @@ TclCompileLmapCmd(
Tcl_Interp *interp, /* Used for error reporting. */
Tcl_Parse *parsePtr, /* Points to a parse structure for the command
* created by Tcl_ParseCommand. */
- Command *cmdPtr, /* Points to defintion of command being
- * compiled. */
+ Command *cmdPtr, /* Points to the definition of the command
+ * being compiled. */
CompileEnv *envPtr) /* Holds resulting instructions. */
{
return CompileEachloopCmd(interp, parsePtr, cmdPtr, envPtr,
@@ -2703,7 +2703,7 @@ CompileEachloopCmd(
}
/*
- * Bail out if the body requires substitutions in order to insure correct
+ * Bail out if the body requires substitutions in order to ensure correct
* behaviour. [Bug 219166]
*/
diff --git a/generic/tclCompExpr.c b/generic/tclCompExpr.c
index 03aebe3..23d8711 100644
--- a/generic/tclCompExpr.c
+++ b/generic/tclCompExpr.c
@@ -2109,7 +2109,7 @@ ParseLexeme(
* Example: Inf + luence + () becomes a valid function call.
* [Bug 3401704]
*/
- if (TclHasIntRep(literal, &tclDoubleType)) {
+ if (TclHasInternalRep(literal, &tclDoubleType)) {
const char *p = start;
while (p < end) {
@@ -2520,7 +2520,7 @@ CompileExprTree(
* However, the design of the "global" and "local"
* LiteralTable does not permit the value of lePtr->objPtr
* to change. So rather than replace lePtr->objPtr, we do
- * surgery to transfer our desired intrep into it.
+ * surgery to transfer our desired internalrep into it.
*/
objPtr->typePtr = literal->typePtr;
@@ -2533,9 +2533,9 @@ CompileExprTree(
* When optimize==0, we know the expression is a one-off and
* there's nothing to be gained from sharing literals when
* they won't live long, and the copies we have already have
- * an appropriate intrep. In this case, skip literal
+ * an appropriate internalrep. In this case, skip literal
* registration that would enable sharing, and use the routine
- * that preserves intreps.
+ * that preserves internalreps.
*/
TclEmitPush(TclAddLiteralObj(envPtr, literal, NULL), envPtr);
@@ -2572,7 +2572,7 @@ CompileExprTree(
if ((tableValue->typePtr == NULL) &&
(objPtr->typePtr != NULL)) {
/*
- * Same intrep surgery as for OT_LITERAL.
+ * Same internalrep surgery as for OT_LITERAL.
*/
tableValue->typePtr = objPtr->typePtr;
diff --git a/generic/tclCompile.c b/generic/tclCompile.c
index 6ffb3dd..c89fedb 100644
--- a/generic/tclCompile.c
+++ b/generic/tclCompile.c
@@ -717,8 +717,8 @@ static void EnterCmdWordData(ExtCmdLoc *eclPtr, int srcOffset,
static void ReleaseCmdWordData(ExtCmdLoc *eclPtr);
/*
- * The structure below defines the bytecode Tcl object type by means of
- * procedures that can be invoked by generic object code.
+ * tclByteCodeType provides the standard type management procedures for the
+ * bytecode type.
*/
const Tcl_ObjType tclByteCodeType = {
@@ -730,8 +730,8 @@ const Tcl_ObjType tclByteCodeType = {
};
/*
- * The structure below defines a bytecode Tcl object type to hold the
- * compiled bytecode for the [subst]itution of Tcl values.
+ * subtCodeType provides the standard type managemnt procedures for the
+ * substcode type, which represents substiution within a Tcl value.
*/
static const Tcl_ObjType substCodeType = {
@@ -756,16 +756,14 @@ static const Tcl_ObjType substCodeType = {
* TclSetByteCodeFromAny --
*
* Part of the bytecode Tcl object type implementation. Attempts to
- * generate an byte code internal form for the Tcl object "objPtr" by
- * compiling its string representation. This function also takes a hook
- * procedure that will be invoked to perform any needed post processing
- * on the compilation results before generating byte codes. interp is
+ * compile the string representation of the objPtr into bytecode. Accepts
+ * a hook routine that is invoked to perform any needed post-processing on
+ * the compilation results before generating byte codes. interp is the
* compilation context and may not be NULL.
*
* Results:
- * The return value is a standard Tcl object result. If an error occurs
- * during compilation, an error message is left in the interpreter's
- * result.
+ * A standard Tcl object result. If an error occurs during compilation, an
+ * error message is left in the interpreter's result.
*
* Side effects:
* Frees the old internal representation. If no error occurs, then the
@@ -807,7 +805,7 @@ TclSetByteCodeFromAny(
length = objPtr->length;
/*
- * TIP #280: Pick up the CmdFrame in which the BC compiler was invoked and
+ * TIP #280: Pick up the CmdFrame in which the BC compiler was invoked, and
* use to initialize the tracking in the compiler. This information was
* stored by TclCompEvalObj and ProcCompileProc.
*/
@@ -816,15 +814,14 @@ TclSetByteCodeFromAny(
iPtr->invokeCmdFramePtr, iPtr->invokeWord);
/*
- * Now we check if we have data about invisible continuation lines for the
- * script, and make it available to the compile environment, if so.
+ * Make available to the compilation environment any data about invisible
+ * continuation lines for the script.
*
* It is not clear if the script Tcl_Obj* can be free'd while the compiler
* is using it, leading to the release of the associated ContLineLoc
- * structure as well. To ensure that the latter doesn't happen we set a
- * lock on it. We release this lock in the function TclFreeCompileEnv(),
- * found in this file. The "lineCLPtr" hashtable is managed in the file
- * "tclObj.c".
+ * structure as well. To ensure that the latter doesn't happen set a lock
+ * on it, which is released in TclFreeCompileEnv(). The "lineCLPtr"
+ * hashtable tclObj.c.
*/
clLocPtr = TclContinuationsGet(objPtr);
@@ -835,7 +832,7 @@ TclSetByteCodeFromAny(
TclCompileScript(interp, stringPtr, length, &compEnv);
/*
- * Successful compilation. Add a "done" instruction at the end.
+ * Compilation succeeded. Add a "done" instruction at the end.
*/
TclEmitOpcode(INST_DONE, &compEnv);
@@ -843,9 +840,9 @@ TclSetByteCodeFromAny(
/*
* Check for optimizations!
*
- * Test if the generated code is free of most hazards; if so, recompile
- * but with generation of INST_START_CMD disabled. This produces somewhat
- * faster code in some cases, and more compact code in more.
+ * If the generated code is free of most hazards, recompile with generation
+ * of INST_START_CMD disabled to produce code that more compact in many
+ * cases, and also sometimes more performant.
*/
if (Tcl_GetParent(interp) == NULL &&
@@ -875,7 +872,7 @@ TclSetByteCodeFromAny(
}
/*
- * Invoke the compilation hook procedure if one exists.
+ * Invoke the compilation hook procedure if there is one.
*/
if (hookProc) {
@@ -884,7 +881,7 @@ TclSetByteCodeFromAny(
/*
* Change the object into a ByteCode object. Ownership of the literal
- * objects and aux data items is given to the ByteCode object.
+ * objects and aux data items passes to the ByteCode object.
*/
#ifdef TCL_COMPILE_DEBUG
@@ -915,12 +912,12 @@ TclSetByteCodeFromAny(
* compiling its string representation.
*
* Results:
- * The return value is a standard Tcl object result. If an error occurs
- * during compilation, an error message is left in the interpreter's
- * result unless "interp" is NULL.
+ * A standard Tcl object result. If an error occurs during compilation and
+ * "interp" is not null, an error message is left in the interpreter's
+ * result.
*
* Side effects:
- * Frees the old internal representation. If no error occurs, then the
+ * Frees the old internal representation. If no error occurs then the
* compiled code is stored as "objPtr"s bytecode representation. Also, if
* debugging, initializes the "tcl_traceCompile" Tcl variable used to
* trace compilations.
@@ -932,7 +929,7 @@ static int
SetByteCodeFromAny(
Tcl_Interp *interp, /* The interpreter for which the code is being
* compiled. Must not be NULL. */
- Tcl_Obj *objPtr) /* The object to make a ByteCode object. */
+ Tcl_Obj *objPtr) /* The object to compile to bytecode */
{
if (interp == NULL) {
return TCL_ERROR;
@@ -946,9 +943,9 @@ SetByteCodeFromAny(
* DupByteCodeInternalRep --
*
* Part of the bytecode Tcl object type implementation. However, it does
- * not copy the internal representation of a bytecode Tcl_Obj, but
- * instead leaves the new object untyped (with a NULL type pointer).
- * Code will be compiled for the new object only if necessary.
+ * not copy the internal representation of a bytecode Tcl_Obj, instead
+ * assigning NULL to the type pointer of the new object. Code is compiled
+ * for the new object only if necessary.
*
* Results:
* None.
@@ -980,9 +977,9 @@ DupByteCodeInternalRep(
* None.
*
* Side effects:
- * The bytecode object's internal rep is marked invalid and its code gets
- * freed unless the code is actively being executed. In that case the
- * cleanup is delayed until the last execution of the code completes.
+ * The bytecode object's internal rep is invalidated and its code is freed
+ * unless the code is actively being executed, in which case cleanup is
+ * delayed until the last execution of the code completes.
*
*----------------------------------------------------------------------
*/
@@ -993,7 +990,7 @@ FreeByteCodeInternalRep(
{
ByteCode *codePtr;
- ByteCodeGetIntRep(objPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &tclByteCodeType, codePtr);
assert(codePtr != NULL);
TclReleaseByteCode(codePtr);
@@ -1004,16 +1001,16 @@ FreeByteCodeInternalRep(
*
* TclReleaseByteCode --
*
- * This procedure does all the real work of freeing up a bytecode
- * object's ByteCode structure. It's called only when the structure's
- * reference count becomes zero.
+ * Does all the real work of freeing up a bytecode object's ByteCode
+ * structure. Called only when the structure's reference count
+ * is zero.
*
* Results:
* None.
*
* Side effects:
- * Frees objPtr's bytecode internal representation and sets its type NULL
- * Also releases its literals and frees its auxiliary data items.
+ * Frees objPtr's bytecode internal representation and sets its type to
+ * NULL. Also releases its literals and frees its auxiliary data items.
*
*----------------------------------------------------------------------
*/
@@ -1089,8 +1086,8 @@ CleanupByteCode(
/*
* A single heap object holds the ByteCode structure and its code, object,
* command location, and auxiliary data arrays. This means we only need to
- * 1) decrement the ref counts of the LiteralEntry's in its literal array,
- * 2) call the free procs for the auxiliary data items, 3) free the
+ * 1) decrement the ref counts of each LiteralEntry in the literal array,
+ * 2) call the free procedures for the auxiliary data items, 3) free the
* localCache if it is unused, and finally 4) free the ByteCode
* structure's heap object.
*
@@ -1099,11 +1096,11 @@ CleanupByteCode(
* the global literal table. They instead maintain private references to
* their literals which must be decremented.
*
- * In order to insure a proper and efficient cleanup of the literal array
- * when it contains non-shared literals [Bug 983660], we also distinguish
- * the case of an interpreter being deleted (signaled by interp == NULL).
+ * In order to ensure proper and efficient cleanup of the literal array
+ * when it contains non-shared literals [Bug 983660], distinguish the case
+ * of an interpreter being deleted, which is signaled by interp == NULL.
* Also, as the interp deletion will remove the global literal table
- * anyway, we avoid the extra cost of updating it for each literal being
+ * anyway, avoid the extra cost of updating it for each literal being
* released.
*/
@@ -1135,9 +1132,9 @@ CleanupByteCode(
}
/*
- * TIP #280. Release the location data associated with this byte code
- * structure, if any. NOTE: The interp we belong to may be gone already,
- * and the data with it.
+ * TIP #280. Release the location data associated with this bytecode
+ * structure, if any. The associated interp may be gone already, and the
+ * data with it.
*
* See also tclBasic.c, DeleteInterpProc
*/
@@ -1165,8 +1162,8 @@ CleanupByteCode(
*
* IsCompactibleCompileEnv --
*
- * Checks to see if we may apply some basic compaction optimizations to a
- * piece of bytecode. Idempotent.
+ * Determines whether some basic compaction optimizations may be applied
+ * to a piece of bytecode. Idempotent.
*
* ---------------------------------------------------------------------
*/
@@ -1180,7 +1177,7 @@ IsCompactibleCompileEnv(
/*
* Special: procedures in the '::tcl' namespace (or its children) are
- * considered to be well-behaved and so can have compaction applied even
+ * considered to be well-behaved, so compaction can be applied to them even
* if it would otherwise be invalid.
*/
@@ -1196,10 +1193,10 @@ IsCompactibleCompileEnv(
/*
* Go through and ensure that no operation involved can cause a desired
- * change of bytecode sequence during running. This comes down to ensuring
- * that there are no mapped variables (due to traces) or calls to external
- * commands (traces, [uplevel] trickery). This is actually a very
- * conservative check; it turns down a lot of code that is OK in practice.
+ * change of bytecode sequence during its execution. This comes down to
+ * ensuring that there are no mapped variables (due to traces) or calls to
+ * external commands (traces, [uplevel] trickery). This is actually a very
+ * conservative check. It turns down a lot of code that is OK in practice.
*/
for (pc = envPtr->codeStart ; pc < envPtr->codeNext ; pc += size) {
@@ -1235,8 +1232,8 @@ IsCompactibleCompileEnv(
*
* Tcl_SubstObj --
*
- * This function performs the substitutions specified on the given string
- * as described in the user documentation for the "subst" Tcl command.
+ * Performs substitutions on the given string as described in the user
+ * documentation for "subst".
*
* Results:
* A Tcl_Obj* containing the substituted string, or NULL to indicate that
@@ -1268,14 +1265,14 @@ Tcl_SubstObj(
*
* Tcl_NRSubstObj --
*
- * Request substitution of a Tcl value by the NR stack.
+ * Adds substitution within the value of objPtr to the NR execution stack.
*
* Results:
- * Returns TCL_OK.
+ * TCL_OK.
*
* Side effects:
* Compiles objPtr into bytecode that performs the substitutions as
- * governed by flags and places callbacks on the NR stack to execute
+ * governed by flags, adds a callback to the NR execution stack to execute
* the bytecode and store the result in the interp.
*
*----------------------------------------------------------------------
@@ -1299,11 +1296,11 @@ Tcl_NRSubstObj(
*
* CompileSubstObj --
*
- * Compile a Tcl value into ByteCode implementing its substitution, as
- * governed by flags.
+ * Compiles a value into bytecode that performs substitution within the
+ * value, as governed by flags.
*
* Results:
- * A (ByteCode *) is returned pointing to the resulting ByteCode.
+ * A (ByteCode *) is pointing to the resulting ByteCode.
*
* Side effects:
* The Tcl_ObjType of objPtr is changed to the "substcode" type, and the
@@ -1323,7 +1320,7 @@ CompileSubstObj(
Interp *iPtr = (Interp *) interp;
ByteCode *codePtr = NULL;
- ByteCodeGetIntRep(objPtr, &substCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &substCodeType, codePtr);
if (codePtr != NULL) {
Namespace *nsPtr = iPtr->varFramePtr->nsPtr;
@@ -1335,7 +1332,7 @@ CompileSubstObj(
|| (codePtr->nsEpoch != nsPtr->resolverEpoch)
|| (codePtr->localCachePtr !=
iPtr->varFramePtr->localCachePtr)) {
- Tcl_StoreIntRep(objPtr, &substCodeType, NULL);
+ Tcl_StoreInternalRep(objPtr, &substCodeType, NULL);
codePtr = NULL;
}
}
@@ -1373,9 +1370,9 @@ CompileSubstObj(
*
* FreeSubstCodeInternalRep --
*
- * Part of the substcode Tcl object type implementation. Frees the
- * storage associated with a substcode object's internal representation
- * unless its code is actively being executed.
+ * Part of the "substcode" Tcl object type implementation. Frees the
+ * storage associated with the substcode internal representation of a
+ * Tcl_Obj unless its code is actively being executed.
*
* Results:
* None.
@@ -1394,7 +1391,7 @@ FreeSubstCodeInternalRep(
{
ByteCode *codePtr;
- ByteCodeGetIntRep(objPtr, &substCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &substCodeType, codePtr);
assert(codePtr != NULL);
TclReleaseByteCode(codePtr);
@@ -1629,14 +1626,14 @@ TclInitCompileEnv(
*
* TclFreeCompileEnv --
*
- * Free the storage allocated in a CompileEnv compilation environment
+ * Frees the storage allocated in a CompileEnv compilation environment
* structure.
*
* Results:
* None.
*
* Side effects:
- * Allocated storage in the CompileEnv structure is freed. Note that its
+ * Allocated storage in the CompileEnv structure is freed, although its
* local literal table is not deleted and its literal objects are not
* released. In addition, storage referenced by its auxiliary data items
* is not freed. This is done so that, when compilation is successful,
@@ -1707,10 +1704,11 @@ TclFreeCompileEnv(
*
* TclWordKnownAtCompileTime --
*
- * Test whether the value of a token is completely known at compile time.
+ * Determines whether the value of a token is completely known at compile
+ * time.
*
* Results:
- * Returns true if the tokenPtr argument points to a word value that is
+ * True if the tokenPtr argument points to a word value that is
* completely known at compile time. Generally, values that are known at
* compile time can be compiled to their values, while values that cannot
* be known until substitution at runtime must be compiled to bytecode
@@ -1787,12 +1785,12 @@ TclWordKnownAtCompileTime(
*
* TclCompileScript --
*
- * Compile a Tcl script in a string.
+ * Compiles a Tcl script in a string.
*
* Results:
- * The return value is TCL_OK on a successful compilation and TCL_ERROR
- * on failure. If TCL_ERROR is returned, then the interpreter's result
- * contains an error message.
+ *
+ * A standard Tcl result. If an error occurs, an
+ * error message is left in the interpreter's result.
*
* Side effects:
* Adds instructions to envPtr to evaluate the script at runtime.
@@ -1929,14 +1927,14 @@ CompileExpanded(
/*
* The stack depth during argument expansion can only be managed at
* runtime, as the number of elements in the expanded lists is not known
- * at compile time. We adjust here the stack depth estimate so that it is
+ * at compile time. Adjust the stack depth estimate here so that it is
* correct after the command with expanded arguments returns.
*
* The end effect of this command's invocation is that all the words of
- * the command are popped from the stack, and the result is pushed: the
+ * the command are popped from the stack and the result is pushed: The
* stack top changes by (1-wordIdx).
*
- * Note that the estimates are not correct while the command is being
+ * The estimates are not correct while the command is being
* prepared and run, INST_EXPAND_STKTOP is not stack-neutral in general.
*/
@@ -1956,16 +1954,16 @@ CompileCmdCompileProc(
int depth = TclGetStackDepth(envPtr);
/*
- * Emit of the INST_START_CMD instruction is controlled by the value of
+ * Emission of the INST_START_CMD instruction is controlled by the value of
* envPtr->atCmdStart:
*
- * atCmdStart == 2 : We are not using the INST_START_CMD instruction.
- * atCmdStart == 1 : INST_START_CMD was the last instruction emitted.
- * : We do not need to emit another. Instead we
- * : increment the number of cmds started at it (except
- * : for the special case at the start of a script.)
- * atCmdStart == 0 : The last instruction was something else. We need
- * : to emit INST_START_CMD here.
+ * atCmdStart == 2 : Don't use the INST_START_CMD instruction.
+ * atCmdStart == 1 : INST_START_CMD was the last instruction emitted,
+ * : so no need to emit another. Instead
+ * : increment the number of cmds started at it, except
+ * : for the special case at the start of a script.
+ * atCmdStart == 0 : The last instruction was something else.
+ * : Emit INST_START_CMD here.
*/
switch (envPtr->atCmdStart) {
@@ -1988,7 +1986,7 @@ CompileCmdCompileProc(
if (TCL_OK == TclAttemptCompileProc(interp, parsePtr, 1, cmdPtr, envPtr)) {
if (incrOffset >= 0) {
/*
- * We successfully compiled a command. Increment the number of
+ * Command compiled succesfully. Increment the number of
* commands that start at the currently active INST_START_CMD.
*/
@@ -2057,7 +2055,7 @@ CompileCommandTokens(
/*
* TIP #280. Scan the words and compute the extended location information.
- * The map first contain full per-word line information for use by the
+ * At first the map first contains full per-word line information for use by the
* compiler. This is later replaced by a reduced form which signals
* non-literal words, stored in 'wlines'.
*/
@@ -2099,7 +2097,7 @@ CompileCommandTokens(
}
}
- /* If cmdPtr != NULL, we will try to call cmdPtr->compileProc */
+ /* If cmdPtr != NULL, try to call cmdPtr->compileProc */
if (cmdPtr) {
code = CompileCmdCompileProc(interp, parsePtr, cmdPtr, envPtr);
}
@@ -2126,8 +2124,8 @@ CompileCommandTokens(
(envPtr->codeNext-envPtr->codeStart) - startCodeOffset);
/*
- * TIP #280: Free full form of per-word line data and insert the reduced
- * form now
+ * TIP #280: Free the full form of per-word line data and insert the
+ * reduced form now.
*/
envPtr->line = cmdLine;
@@ -2165,10 +2163,10 @@ TclCompileScript(
}
/*
* Check depth to avoid overflow of the C execution stack by too many
- * nested calls of TclCompileScript (considering interp recursionlimit).
- * Factor 5/4 (1.25) is used to avoid too mistaken limit recognition
- * during "mixed" evaluation and compilation process (nested eval+compile)
- * and is good enough for default recursionlimit (1000).
+ * nested calls of TclCompileScript, considering interp recursionlimit.
+ * Use factor 5/4 (1.25) to avoid being too mistaken when recognizing the
+ * limit during "mixed" evaluation and compilation process (nested
+ * eval+compile) and is good enough for default recursionlimit (1000).
*/
if (iPtr->numLevels / 5 > iPtr->maxNestingDepth / 4) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
@@ -2311,8 +2309,8 @@ TclCompileScript(
*
* TclCompileTokens --
*
- * Given an array of tokens parsed from a Tcl command (e.g., the tokens
- * that make up a word) this procedure emits instructions to evaluate the
+ * Given an array of tokens parsed from a Tcl command, e.g. the tokens
+ * that make up a word, emits instructions to evaluate the
* tokens and concatenate their values to form a single result value on
* the interpreter's runtime evaluation stack.
*
@@ -2417,18 +2415,16 @@ TclCompileTokens(
int depth = TclGetStackDepth(envPtr);
/*
- * For the handling of continuation lines in literals we first check if
- * this is actually a literal. For if not we can forego the additional
- * processing. Otherwise we pre-allocate a small table to store the
- * locations of all continuation lines we find in this literal, if any.
- * The table is extended if needed.
+ * if this is actually a literal, handle continuation lines by
+ * preallocating a small table to store the locations of any continuation
+ * lines we find in this literal. The table is extended if needed.
*
- * Note: Different to the equivalent code in function 'TclSubstTokens()'
- * (see file "tclParse.c") we do not seem to need the 'adjust' variable.
- * We also do not seem to need code which merges continuation line
- * information of multiple words which concat'd at runtime. Either that or
- * I have not managed to find a test case for these two possibilities yet.
- * It might be a difference between compile- versus run-time processing.
+ * Note: In contrast with the analagous code in 'TclSubstTokens()' the
+ * 'adjust' variable seems unneeded here. The code which merges
+ * continuation line information of multiple words which concat'd at
+ * runtime also seems unneeded. Either that or I have not managed to find a
+ * test case for these two possibilities yet. It might be a difference
+ * between compile- versus run-time processing.
*/
numCL = 0;
@@ -2464,18 +2460,17 @@ TclCompileTokens(
Tcl_DStringAppend(&textBuffer, buffer, length);
/*
- * If the backslash sequence we found is in a literal, and
- * represented a continuation line, we compute and store its
+ * If the identified backslash sequence is in a literal and
+ * represented a continuation line, compute and store its
* location (as char offset to the beginning of the _result_
* script). We may have to extend the table of locations.
*
- * Note that the continuation line information is relevant even if
- * the word we are processing is not a literal, as it can affect
- * nested commands. See the branch for TCL_TOKEN_COMMAND below,
- * where the adjustment we are tracking here is taken into
- * account. The good thing is that we do not need a table of
- * everything, just the number of lines we have to add as
- * correction.
+ * The continuation line information is relevant even if the word
+ * being processed is not a literal, as it can affect nested
+ * commands. See the branch below for TCL_TOKEN_COMMAND, where the
+ * adjustment being tracked here is taken into account. The good
+ * thing is a table of everything is not needed, just the number of
+ * lines to to add as correction.
*/
if ((length == 1) && (buffer[0] == ' ') &&
@@ -2601,13 +2596,13 @@ TclCompileTokens(
* TclCompileCmdWord --
*
* Given an array of parse tokens for a word containing one or more Tcl
- * commands, emit inline instructions to execute them. This procedure
- * differs from TclCompileTokens in that a simple word such as a loop
- * body enclosed in braces is not just pushed as a string, but is itself
- * parsed into tokens and compiled.
+ * commands, emits inline instructions to execute them. In contrast with
+ * TclCompileTokens, a simple word such as a loop body enclosed in braces
+ * is not just pushed as a string, but is itself parsed into tokens and
+ * compiled.
*
* Results:
- * The return value is a standard Tcl result. If an error occurs, an
+ * A standard Tcl result. If an error occurs, an
* error message is left in the interpreter's result.
*
* Side effects:
@@ -2627,16 +2622,16 @@ TclCompileCmdWord(
{
if ((count == 1) && (tokenPtr->type == TCL_TOKEN_TEXT)) {
/*
- * Handle the common case: if there is a single text token, compile it
+ * The common case that there is a single text token. Compile it
* into an inline sequence of instructions.
*/
TclCompileScript(interp, tokenPtr->start, tokenPtr->size, envPtr);
} else {
/*
- * Multiple tokens or the single token involves substitutions. Emit
- * instructions to invoke the eval command procedure at runtime on the
- * result of evaluating the tokens.
+ * Either there are multiple tokens, or the single token involves
+ * substitutions. Emit instructions to invoke the eval command
+ * procedure at runtime on the result of evaluating the tokens.
*/
TclCompileTokens(interp, tokenPtr, count, envPtr);
@@ -2650,13 +2645,12 @@ TclCompileCmdWord(
* TclCompileExprWords --
*
* Given an array of parse tokens representing one or more words that
- * contain a Tcl expression, emit inline instructions to execute the
- * expression. This procedure differs from TclCompileExpr in that it
- * supports Tcl's two-level substitution semantics for expressions that
- * appear as command words.
+ * contain a Tcl expression, emits inline instructions to execute the
+ * expression. In contrast with TclCompileExpr, supports Tcl's two-level
+ * substitution semantics for an expression that appears as command words.
*
* Results:
- * The return value is a standard Tcl result. If an error occurs, an
+ * A standard Tcl result. If an error occurs, an
* error message is left in the interpreter's result.
*
* Side effects:
@@ -2718,10 +2712,10 @@ TclCompileExprWords(
*
* TclCompileNoOp --
*
- * Function called to compile no-op's
+ * Compiles no-op's
*
* Results:
- * The return value is TCL_OK, indicating successful compilation.
+ * TCL_OK if completion was successful.
*
* Side effects:
* Instructions are added to envPtr to execute a no-op at runtime. No
@@ -2760,14 +2754,14 @@ TclCompileNoOp(
*
* TclInitByteCodeObj --
*
- * Create a ByteCode structure and initialize it from a CompileEnv
+ * Creates a ByteCode structure and initializes it from a CompileEnv
* compilation environment structure. The ByteCode structure is smaller
* and contains just that information needed to execute the bytecode
* instructions resulting from compiling a Tcl script. The resulting
* structure is placed in the specified object.
*
* Results:
- * A newly constructed ByteCode object is stored in the internal
+ * A newly-constructed ByteCode object is stored in the internal
* representation of the objPtr.
*
* Side effects:
@@ -2790,7 +2784,7 @@ PreventCycle(
for (i = 0; i < envPtr->literalArrayNext; i++) {
if (objPtr == TclFetchLiteral(envPtr, i)) {
/*
- * Prevent circular reference where the bytecode intrep of
+ * Prevent circular reference where the bytecode internalrep of
* a value contains a literal which is that same value.
* If this is allowed to happen, refcount decrements may not
* reach zero, and memory may leak. Bugs 467523, 3357771
@@ -2798,7 +2792,7 @@ PreventCycle(
* NOTE: [Bugs 3392070, 3389764] We make a copy based completely
* on the string value, and do not call Tcl_DuplicateObj() so we
* can be sure we do not have any lingering cycles hiding in
- * the intrep.
+ * the internalrep.
*/
int numBytes;
const char *bytes = TclGetStringFromObj(objPtr, &numBytes);
@@ -2969,7 +2963,7 @@ TclInitByteCodeObj(
* by making its internal rep point to the just compiled ByteCode.
*/
- ByteCodeSetIntRep(objPtr, typePtr, codePtr);
+ ByteCodeSetInternalRep(objPtr, typePtr, codePtr);
return codePtr;
}
@@ -3102,16 +3096,15 @@ TclFindCompiledLocal(
*
* TclExpandCodeArray --
*
- * Procedure that uses malloc to allocate more storage for a CompileEnv's
- * code array.
+ * Uses malloc to allocate more storage for a CompileEnv's code array.
*
* Results:
* None.
*
* Side effects:
- * The byte code array in *envPtr is reallocated to a new array of double
- * the size, and if envPtr->mallocedCodeArray is non-zero the old array
- * is freed. Byte codes are copied from the old array to the new one.
+ * The size of the bytecode array is doubled. If envPtr->mallocedCodeArray
+ * is non-zero the old array is freed. Byte codes are copied from the old
+ * array to the new one.
*
*----------------------------------------------------------------------
*/
@@ -3138,8 +3131,8 @@ TclExpandCodeArray(
envPtr->codeStart = (unsigned char *)ckrealloc(envPtr->codeStart, newBytes);
} else {
/*
- * envPtr->codeStart isn't a ckalloc'd pointer, so we must code a
- * ckrealloc equivalent for ourselves.
+ * envPtr->exceptArrayPtr isn't a Tcl_Alloc'd pointer, so
+ * perform the equivalent of Tcl_Realloc directly.
*/
unsigned char *newPtr = (unsigned char *)ckalloc(newBytes);
@@ -3455,7 +3448,7 @@ TclCreateExceptRange(
* TclGetInnermostExceptionRange --
*
* Returns the innermost exception range that covers the current code
- * creation point, and (optionally) the stack depth that is expected at
+ * creation point, and optionally the stack depth that is expected at
* that point. Relies on the fact that the range has a numCodeBytes = -1
* when it is being populated and that inner ranges come after outer
* ranges.
@@ -3497,7 +3490,7 @@ TclGetInnermostExceptionRange(
*
* Adds a place that wants to break/continue to the loop exception range
* tracking that will be fixed up once the loop can be finalized. These
- * functions will generate an INST_JUMP4 that will be fixed up during the
+ * functions generate an INST_JUMP4 that is fixed up during the
* loop finalization.
*
* ---------------------------------------------------------------------
@@ -3561,8 +3554,8 @@ TclAddLoopContinueFixup(
*
* TclCleanupStackForBreakContinue --
*
- * Ditch the extra elements from the auxiliary stack and the main stack.
- * How to do this exactly depends on whether there are any elements on
+ * Removes the extra elements from the auxiliary stack and the main stack.
+ * How this is done depends on whether there are any elements on
* the auxiliary stack to pop.
*
* ---------------------------------------------------------------------
@@ -3632,7 +3625,7 @@ StartExpanding(
}
/*
- * Adequate condition: further out loops and further in exceptions
+ * Adequate condition: loops further out and exceptions further in
* don't actually need this information.
*/
@@ -3642,7 +3635,7 @@ StartExpanding(
}
/*
- * There's now one more expansion being processed on the auxiliary stack.
+ * One more expansion is now being processed on the auxiliary stack.
*/
envPtr->expandCount++;
@@ -3655,7 +3648,7 @@ StartExpanding(
*
* Finalizes a loop exception range, binding the registered [break] and
* [continue] implementations so that they jump to the correct place.
- * Note that this must only be called after *all* the exception range
+ * This must be called only after *all* the exception range
* target offsets have been set.
*
* ---------------------------------------------------------------------
@@ -3726,21 +3719,17 @@ TclFinalizeLoopExceptionRange(
*
* TclCreateAuxData --
*
- * Procedure that allocates and initializes a new AuxData structure in a
+ * Allocates and initializes a new AuxData structure in a
* CompileEnv's array of compilation auxiliary data records. These
* AuxData records hold information created during compilation by
* CompileProcs and used by instructions during execution.
*
* Results:
- * Returns the index for the newly created AuxData structure.
+ * The index of the newly-created AuxData structure in the array.
*
* Side effects:
- * If there is not enough room in the CompileEnv's AuxData array, the
- * AuxData array in expanded: a new array of double the size is
- * allocated, if envPtr->mallocedAuxDataArray is non-zero the old array
- * is freed, and AuxData entries are copied from the old array to the new
- * one.
- *
+ * If there is not enough room in the CompileEnv's AuxData array, its size
+ * is doubled.
*----------------------------------------------------------------------
*/
@@ -3828,8 +3817,7 @@ TclInitJumpFixupArray(
*
* TclExpandJumpFixupArray --
*
- * Procedure that uses malloc to allocate more storage for a jump fixup
- * array.
+ * Uses malloc to allocate more storage for a jump fixup array.
*
* Results:
* None.
@@ -3908,10 +3896,11 @@ TclFreeJumpFixupArray(
*
* TclEmitForwardJump --
*
- * Procedure to emit a two-byte forward jump of kind "jumpType". Since
- * the jump may later have to be grown to five bytes if the jump target
- * is more than, say, 127 bytes away, this procedure also initializes a
- * JumpFixup record with information about the jump.
+ * Emits a two-byte forward jump of kind "jumpType". Also initializes a
+ * JumpFixup record with information about the jump. Since may later be
+ * necessary to increase the size of the jump instruction to five bytes if
+ * the jump target is more than, say, 127 bytes away.
+ *
*
* Results:
* None.
@@ -3966,16 +3955,17 @@ TclEmitForwardJump(
*
* TclFixupForwardJump --
*
- * Procedure that updates a previously-emitted forward jump to jump a
- * specified number of bytes, "jumpDist". If necessary, the jump is grown
- * from two to five bytes; this is done if the jump distance is greater
- * than "distThreshold" (normally 127 bytes). The jump is described by a
- * JumpFixup record previously initialized by TclEmitForwardJump.
+ * Modifies a previously-emitted forward jump to jump a specified number
+ * of bytes, "jumpDist". If necessary, the size of the jump instruction is
+ * increased from two to five bytes. This is done if the jump distance is
+ * greater than "distThreshold" (normally 127 bytes). The jump is
+ * described by a JumpFixup record previously initialized by
+ * TclEmitForwardJump.
*
* Results:
- * 1 if the jump was grown and subsequent instructions had to be moved;
- * otherwise 0. This result is returned to allow callers to update any
- * additional code offsets they may hold.
+ * 1 if the jump was grown and subsequent instructions had to be moved, or
+ * 0 otherwsie. This allows callers to update any additional code offsets
+ * they may hold.
*
* Side effects:
* The jump may be grown and subsequent instructions moved. If this
@@ -4018,10 +4008,10 @@ TclFixupForwardJump(
}
/*
- * We must grow the jump then move subsequent instructions down. Note that
- * if we expand the space for generated instructions, code addresses might
- * change; be careful about updating any of these addresses held in
- * variables.
+ * Increase the size of the jump instruction, and then move subsequent
+ * instructions down. Expanding the space for generated instructions means
+ * that code addresses might change. Be careful about updating any of
+ * these addresses held in variables.
*/
if ((envPtr->codeNext + 3) > envPtr->codeEnd) {
@@ -4105,7 +4095,7 @@ TclFixupForwardJump(
*
* TclEmitInvoke --
*
- * Emit one of the invoke-related instructions, wrapping it if necessary
+ * Emits one of the invoke-related instructions, wrapping it if necessary
* in code that ensures that any break or continue operation passing
* through it gets the stack unwinding correct, converting it into an
* internal jump if in an appropriate context.
@@ -4115,7 +4105,7 @@ TclFixupForwardJump(
*
* Side effects:
* Issues the jump with all correct stack management. May create another
- * loop exception range; pointers to ExceptionRange and ExceptionAux
+ * loop exception range. Pointers to ExceptionRange and ExceptionAux
* structures should not be held across this call.
*
*----------------------------------------------------------------------
@@ -4173,12 +4163,11 @@ TclEmitInvoke(
va_end(argList);
/*
- * Determine if we need to handle break and continue exceptions with a
- * special handling exception range (so that we can correctly unwind the
- * stack).
+ * If the exceptions is for break or continue handle it with special
+ * handling exception range so the stack may be correctly unwound.
*
- * These must be done separately; they can be different (especially for
- * calls from inside a [for] increment clause).
+ * These must be done separately since they can be different, especially
+ * for calls from inside a [for] increment clause.
*/
rangePtr = TclGetInnermostExceptionRange(envPtr, TCL_CONTINUE,
@@ -4398,16 +4387,16 @@ GetCmdLocEncodingSize(
*
* EncodeCmdLocMap --
*
- * Encode the command location information for some compiled code into a
+ * Encodes the command location information for some compiled code into a
* ByteCode structure. The encoded command location map is stored as
- * three adjacent byte sequences.
+ * three-adjacent-byte sequences.
*
* Results:
- * Pointer to the first byte after the encoded command location
+ * A pointer to the first byte after the encoded command location
* information.
*
* Side effects:
- * The encoded information is stored into the block of memory headed by
+ * Stores encoded information into the block of memory headed by
* codePtr. Also records pointers to the start of the four byte sequences
* in fields in codePtr's ByteCode header structure.
*
@@ -4522,9 +4511,9 @@ EncodeCmdLocMap(
*
* RecordByteCodeStats --
*
- * Accumulates various compilation-related statistics for each newly
- * compiled ByteCode. Called by the TclInitByteCodeObj when Tcl is
- * compiled with the -DTCL_COMPILE_STATS flag
+ * Accumulates compilation-related statistics for each newly-compiled
+ * ByteCode. Called by the TclInitByteCodeObj when Tcl is compiled with
+ * the -DTCL_COMPILE_STATS flag
*
* Results:
* None.
diff --git a/generic/tclCompile.h b/generic/tclCompile.h
index 6a5faaf..96a3541 100644
--- a/generic/tclCompile.h
+++ b/generic/tclCompile.h
@@ -217,9 +217,9 @@ typedef struct ExtCmdLoc {
* the AuxData structure.
*/
-typedef ClientData (AuxDataDupProc) (ClientData clientData);
-typedef void (AuxDataFreeProc) (ClientData clientData);
-typedef void (AuxDataPrintProc)(ClientData clientData,
+typedef void *(AuxDataDupProc) (void *clientData);
+typedef void (AuxDataFreeProc) (void *clientData);
+typedef void (AuxDataPrintProc)(void *clientData,
Tcl_Obj *appendObj, struct ByteCode *codePtr,
unsigned int pcOffset);
@@ -515,20 +515,20 @@ typedef struct ByteCode {
#endif /* TCL_COMPILE_STATS */
} ByteCode;
-#define ByteCodeSetIntRep(objPtr, typePtr, codePtr) \
+#define ByteCodeSetInternalRep(objPtr, typePtr, codePtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (codePtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), (typePtr), &ir); \
+ Tcl_StoreInternalRep((objPtr), (typePtr), &ir); \
} while (0)
-#define ByteCodeGetIntRep(objPtr, typePtr, codePtr) \
+#define ByteCodeGetInternalRep(objPtr, typePtr, codePtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), (typePtr)); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), (typePtr)); \
(codePtr) = irPtr ? (ByteCode*)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -1118,7 +1118,7 @@ MODULE_SCOPE void TclCompileTokens(Tcl_Interp *interp,
CompileEnv *envPtr);
MODULE_SCOPE void TclCompileVarSubst(Tcl_Interp *interp,
Tcl_Token *tokenPtr, CompileEnv *envPtr);
-MODULE_SCOPE int TclCreateAuxData(ClientData clientData,
+MODULE_SCOPE int TclCreateAuxData(void *clientData,
const AuxDataType *typePtr, CompileEnv *envPtr);
MODULE_SCOPE int TclCreateExceptRange(ExceptionRangeType type,
CompileEnv *envPtr);
@@ -1192,16 +1192,16 @@ MODULE_SCOPE void TclReleaseByteCode(ByteCode *codePtr);
MODULE_SCOPE void TclReleaseLiteral(Tcl_Interp *interp, Tcl_Obj *objPtr);
MODULE_SCOPE void TclInvalidateCmdLiteral(Tcl_Interp *interp,
const char *name, Namespace *nsPtr);
-MODULE_SCOPE int TclSingleOpCmd(ClientData clientData,
+MODULE_SCOPE int TclSingleOpCmd(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-MODULE_SCOPE int TclSortingOpCmd(ClientData clientData,
+MODULE_SCOPE int TclSortingOpCmd(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-MODULE_SCOPE int TclVariadicOpCmd(ClientData clientData,
+MODULE_SCOPE int TclVariadicOpCmd(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-MODULE_SCOPE int TclNoIdentOpCmd(ClientData clientData,
+MODULE_SCOPE int TclNoIdentOpCmd(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
#ifdef TCL_COMPILE_DEBUG
@@ -1217,7 +1217,7 @@ MODULE_SCOPE void TclLogCommandInfo(Tcl_Interp *interp,
MODULE_SCOPE Tcl_Obj *TclGetInnerContext(Tcl_Interp *interp,
const unsigned char *pc, Tcl_Obj **tosPtr);
MODULE_SCOPE Tcl_Obj *TclNewInstNameObj(unsigned char inst);
-MODULE_SCOPE int TclPushProcCallFrame(ClientData clientData,
+MODULE_SCOPE int TclPushProcCallFrame(void *clientData,
Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[], int isLambda);
@@ -1232,7 +1232,7 @@ MODULE_SCOPE int TclPushProcCallFrame(ClientData clientData,
/*
* Simplified form to access AuxData.
*
- * ClientData TclFetchAuxData(CompileEng *envPtr, int index);
+ * void *TclFetchAuxData(CompileEng *envPtr, int index);
*/
#define TclFetchAuxData(envPtr, index) \
@@ -1557,9 +1557,9 @@ MODULE_SCOPE int TclPushProcCallFrame(ClientData clientData,
*/
#define PushLiteral(envPtr, string, length) \
- TclEmitPush(TclRegisterLiteral(envPtr, string, length, 0), (envPtr))
+ TclEmitPush(TclRegisterLiteral((envPtr), (string), (length), 0), (envPtr))
#define PushStringLiteral(envPtr, string) \
- PushLiteral(envPtr, string, (int) (sizeof(string "") - 1))
+ PushLiteral((envPtr), (string), (int) (sizeof(string "") - 1))
/*
* Macro to advance to the next token; it is more mnemonic than the address
diff --git a/generic/tclDecls.h b/generic/tclDecls.h
index 3f62175..6cbce44 100644
--- a/generic/tclDecls.h
+++ b/generic/tclDecls.h
@@ -1886,17 +1886,17 @@ EXTERN int TclZipfs_MountBuffer(Tcl_Interp *interp,
const char *mountPoint, unsigned char *data,
size_t datalen, int copy);
/* 636 */
-EXTERN void Tcl_FreeIntRep(Tcl_Obj *objPtr);
+EXTERN void Tcl_FreeInternalRep(Tcl_Obj *objPtr);
/* 637 */
EXTERN char * Tcl_InitStringRep(Tcl_Obj *objPtr, const char *bytes,
unsigned int numBytes);
/* 638 */
-EXTERN Tcl_ObjIntRep * Tcl_FetchIntRep(Tcl_Obj *objPtr,
+EXTERN Tcl_ObjInternalRep * Tcl_FetchInternalRep(Tcl_Obj *objPtr,
const Tcl_ObjType *typePtr);
/* 639 */
-EXTERN void Tcl_StoreIntRep(Tcl_Obj *objPtr,
+EXTERN void Tcl_StoreInternalRep(Tcl_Obj *objPtr,
const Tcl_ObjType *typePtr,
- const Tcl_ObjIntRep *irPtr);
+ const Tcl_ObjInternalRep *irPtr);
/* 640 */
EXTERN int Tcl_HasStringRep(Tcl_Obj *objPtr);
/* 641 */
@@ -1947,6 +1947,9 @@ EXTERN size_t Tcl_ExternalToUtfDStringEx(Tcl_Encoding encoding,
EXTERN size_t Tcl_UtfToExternalDStringEx(Tcl_Encoding encoding,
const char *src, int srcLen, int flags,
Tcl_DString *dsPtr);
+/* 660 */
+EXTERN int Tcl_AsyncMarkFromSignal(Tcl_AsyncHandler async,
+ int sigNumber);
typedef struct {
const struct TclPlatStubs *tclPlatStubs;
@@ -2618,10 +2621,10 @@ typedef struct TclStubs {
int (*tclZipfs_Unmount) (Tcl_Interp *interp, const char *mountPoint); /* 633 */
Tcl_Obj * (*tclZipfs_TclLibrary) (void); /* 634 */
int (*tclZipfs_MountBuffer) (Tcl_Interp *interp, const char *mountPoint, unsigned char *data, size_t datalen, int copy); /* 635 */
- void (*tcl_FreeIntRep) (Tcl_Obj *objPtr); /* 636 */
+ void (*tcl_FreeInternalRep) (Tcl_Obj *objPtr); /* 636 */
char * (*tcl_InitStringRep) (Tcl_Obj *objPtr, const char *bytes, unsigned int numBytes); /* 637 */
- Tcl_ObjIntRep * (*tcl_FetchIntRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 638 */
- void (*tcl_StoreIntRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr, const Tcl_ObjIntRep *irPtr); /* 639 */
+ Tcl_ObjInternalRep * (*tcl_FetchInternalRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr); /* 638 */
+ void (*tcl_StoreInternalRep) (Tcl_Obj *objPtr, const Tcl_ObjType *typePtr, const Tcl_ObjInternalRep *irPtr); /* 639 */
int (*tcl_HasStringRep) (Tcl_Obj *objPtr); /* 640 */
void (*tcl_IncrRefCount) (Tcl_Obj *objPtr); /* 641 */
void (*tcl_DecrRefCount) (Tcl_Obj *objPtr); /* 642 */
@@ -2642,6 +2645,7 @@ typedef struct TclStubs {
int (*tcl_UniCharIsUnicode) (int ch); /* 657 */
size_t (*tcl_ExternalToUtfDStringEx) (Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_DString *dsPtr); /* 658 */
size_t (*tcl_UtfToExternalDStringEx) (Tcl_Encoding encoding, const char *src, int srcLen, int flags, Tcl_DString *dsPtr); /* 659 */
+ int (*tcl_AsyncMarkFromSignal) (Tcl_AsyncHandler async, int sigNumber); /* 660 */
} TclStubs;
extern const TclStubs *tclStubsPtr;
@@ -3944,14 +3948,14 @@ extern const TclStubs *tclStubsPtr;
(tclStubsPtr->tclZipfs_TclLibrary) /* 634 */
#define TclZipfs_MountBuffer \
(tclStubsPtr->tclZipfs_MountBuffer) /* 635 */
-#define Tcl_FreeIntRep \
- (tclStubsPtr->tcl_FreeIntRep) /* 636 */
+#define Tcl_FreeInternalRep \
+ (tclStubsPtr->tcl_FreeInternalRep) /* 636 */
#define Tcl_InitStringRep \
(tclStubsPtr->tcl_InitStringRep) /* 637 */
-#define Tcl_FetchIntRep \
- (tclStubsPtr->tcl_FetchIntRep) /* 638 */
-#define Tcl_StoreIntRep \
- (tclStubsPtr->tcl_StoreIntRep) /* 639 */
+#define Tcl_FetchInternalRep \
+ (tclStubsPtr->tcl_FetchInternalRep) /* 638 */
+#define Tcl_StoreInternalRep \
+ (tclStubsPtr->tcl_StoreInternalRep) /* 639 */
#define Tcl_HasStringRep \
(tclStubsPtr->tcl_HasStringRep) /* 640 */
#define Tcl_IncrRefCount \
@@ -3990,6 +3994,8 @@ extern const TclStubs *tclStubsPtr;
(tclStubsPtr->tcl_ExternalToUtfDStringEx) /* 658 */
#define Tcl_UtfToExternalDStringEx \
(tclStubsPtr->tcl_UtfToExternalDStringEx) /* 659 */
+#define Tcl_AsyncMarkFromSignal \
+ (tclStubsPtr->tcl_AsyncMarkFromSignal) /* 660 */
#endif /* defined(USE_TCL_STUBS) */
@@ -4131,7 +4137,24 @@ extern const TclStubs *tclStubsPtr;
} while(0)
#endif /* TCL_NO_DEPRECATED */
-#if defined(USE_TCL_STUBS) && !defined(USE_TCL_STUB_PROCS)
+#if defined(USE_TCL_STUBS)
+# if defined(_WIN32) && defined(_WIN64)
+# undef Tcl_GetTime
+/* Handle Win64 tk.dll being loaded in Cygwin64. */
+# define Tcl_GetTime(t) \
+ do { \
+ union { \
+ Tcl_Time now; \
+ long long reserved; \
+ } _t; \
+ _t.reserved = -1; \
+ tclStubsPtr->tcl_GetTime((&_t.now)); \
+ if (_t.reserved != -1) { \
+ _t.now.usec = _t.reserved; \
+ } \
+ *(t) = _t.now; \
+ } while (0)
+# endif
# if defined(__CYGWIN__) && defined(TCL_WIDE_INT_IS_LONG)
/* On Cygwin64, long is 64-bit while on Win64 long is 32-bit. Therefore
* we have to make sure that all stub entries on Cygwin64 follow the
diff --git a/generic/tclDictObj.c b/generic/tclDictObj.c
index a0ce8a4..900974f 100644
--- a/generic/tclDictObj.c
+++ b/generic/tclDictObj.c
@@ -149,18 +149,18 @@ const Tcl_ObjType tclDictType = {
SetDictFromAny /* setFromAnyProc */
};
-#define DictSetIntRep(objPtr, dictRepPtr) \
+#define DictSetInternalRep(objPtr, dictRepPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (dictRepPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &tclDictType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &tclDictType, &ir); \
} while (0)
-#define DictGetIntRep(objPtr, dictRepPtr) \
+#define DictGetInternalRep(objPtr, dictRepPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &tclDictType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &tclDictType); \
(dictRepPtr) = irPtr ? (Dict *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -362,7 +362,7 @@ DupDictInternalRep(
Dict *oldDict, *newDict = (Dict *)ckalloc(sizeof(Dict));
ChainEntry *cPtr;
- DictGetIntRep(srcPtr, oldDict);
+ DictGetInternalRep(srcPtr, oldDict);
/*
* Copy values across from the old hash table.
@@ -395,7 +395,7 @@ DupDictInternalRep(
* Store in the object.
*/
- DictSetIntRep(copyPtr, newDict);
+ DictSetInternalRep(copyPtr, newDict);
}
/*
@@ -422,7 +422,7 @@ FreeDictInternalRep(
{
Dict *dict;
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
if (dict->refCount-- <= 1) {
DeleteDict(dict);
@@ -499,7 +499,7 @@ UpdateStringOfDict(
int numElems;
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
assert (dict != NULL);
@@ -610,7 +610,7 @@ SetDictFromAny(
* the conversion from lists to dictionaries.
*/
- if (TclHasIntRep(objPtr, &tclListType)) {
+ if (TclHasInternalRep(objPtr, &tclListType)) {
int objc, i;
Tcl_Obj **objv;
@@ -717,7 +717,7 @@ SetDictFromAny(
dict->epoch = 1;
dict->chain = NULL;
dict->refCount = 1;
- DictSetIntRep(objPtr, dict);
+ DictSetInternalRep(objPtr, dict);
return TCL_OK;
missingValue:
@@ -739,12 +739,12 @@ GetDictFromObj(
{
Dict *dict;
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
if (dict == NULL) {
if (SetDictFromAny(interp, dictPtr) != TCL_OK) {
return NULL;
}
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
}
return dict;
}
@@ -792,12 +792,12 @@ TclTraceDictPath(
Dict *dict, *newDict;
int i;
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
if (dict == NULL) {
if (SetDictFromAny(interp, dictPtr) != TCL_OK) {
return NULL;
}
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
}
if (flags & DICT_PATH_UPDATE) {
dict->chain = NULL;
@@ -835,7 +835,7 @@ TclTraceDictPath(
} else {
tmpObj = (Tcl_Obj *)Tcl_GetHashValue(hPtr);
- DictGetIntRep(tmpObj, newDict);
+ DictGetInternalRep(tmpObj, newDict);
if (newDict == NULL) {
if (SetDictFromAny(interp, tmpObj) != TCL_OK) {
@@ -844,7 +844,7 @@ TclTraceDictPath(
}
}
- DictGetIntRep(tmpObj, newDict);
+ DictGetInternalRep(tmpObj, newDict);
if (flags & DICT_PATH_UPDATE) {
if (Tcl_IsShared(tmpObj)) {
TclDecrRefCount(tmpObj);
@@ -852,7 +852,7 @@ TclTraceDictPath(
Tcl_IncrRefCount(tmpObj);
Tcl_SetHashValue(hPtr, tmpObj);
dict->epoch++;
- DictGetIntRep(tmpObj, newDict);
+ DictGetInternalRep(tmpObj, newDict);
}
newDict->chain = dictPtr;
@@ -889,14 +889,14 @@ InvalidateDictChain(
{
Dict *dict;
- DictGetIntRep(dictObj, dict);
+ DictGetInternalRep(dictObj, dict);
assert( dict != NULL);
do {
dict->refCount++;
TclInvalidateStringRep(dictObj);
- TclFreeIntRep(dictObj);
- DictSetIntRep(dictObj, dict);
+ TclFreeInternalRep(dictObj);
+ DictSetInternalRep(dictObj, dict);
dict->epoch++;
dictObj = dict->chain;
@@ -904,7 +904,7 @@ InvalidateDictChain(
break;
}
dict->chain = NULL;
- DictGetIntRep(dictObj, dict);
+ DictGetInternalRep(dictObj, dict);
} while (dict != NULL);
}
@@ -950,8 +950,8 @@ Tcl_DictObjPut(
TclInvalidateStringRep(dictPtr);
hPtr = CreateChainEntry(dict, keyPtr, &isNew);
dict->refCount++;
- TclFreeIntRep(dictPtr)
- DictSetIntRep(dictPtr, dict);
+ TclFreeInternalRep(dictPtr)
+ DictSetInternalRep(dictPtr, dict);
Tcl_IncrRefCount(valuePtr);
if (!isNew) {
Tcl_Obj *oldValuePtr = (Tcl_Obj *)Tcl_GetHashValue(hPtr);
@@ -1306,7 +1306,7 @@ Tcl_DictObjPutKeyList(
return TCL_ERROR;
}
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
assert(dict != NULL);
hPtr = CreateChainEntry(dict, keyv[keyc-1], &isNew);
Tcl_IncrRefCount(valuePtr);
@@ -1364,7 +1364,7 @@ Tcl_DictObjRemoveKeyList(
return TCL_ERROR;
}
- DictGetIntRep(dictPtr, dict);
+ DictGetInternalRep(dictPtr, dict);
assert(dict != NULL);
DeleteChainEntry(dict, keyv[keyc-1]);
InvalidateDictChain(dictPtr);
@@ -1411,7 +1411,7 @@ Tcl_NewDictObj(void)
dict->epoch = 1;
dict->chain = NULL;
dict->refCount = 1;
- DictSetIntRep(dictPtr, dict);
+ DictSetInternalRep(dictPtr, dict);
return dictPtr;
#endif
}
@@ -1459,7 +1459,7 @@ Tcl_DbNewDictObj(
dict->epoch = 1;
dict->chain = NULL;
dict->refCount = 1;
- DictSetIntRep(dictPtr, dict);
+ DictSetInternalRep(dictPtr, dict);
return dictPtr;
}
#else /* !TCL_MEM_DEBUG */
diff --git a/generic/tclDisassemble.c b/generic/tclDisassemble.c
index f5cc8b7..7bc1c97 100644
--- a/generic/tclDisassemble.c
+++ b/generic/tclDisassemble.c
@@ -44,17 +44,17 @@ static const Tcl_ObjType instNameType = {
NULL, /* setFromAnyProc */
};
-#define InstNameSetIntRep(objPtr, inst) \
+#define InstNameSetInternalRep(objPtr, inst) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.wideValue = (inst); \
- Tcl_StoreIntRep((objPtr), &instNameType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &instNameType, &ir); \
} while (0)
-#define InstNameGetIntRep(objPtr, inst) \
+#define InstNameGetInternalRep(objPtr, inst) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &instNameType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &instNameType); \
assert(irPtr != NULL); \
(inst) = (size_t)irPtr->wideValue; \
} while (0)
@@ -259,7 +259,7 @@ DisassembleByteCodeObj(
Interp *iPtr;
Tcl_Obj *bufferObj, *fileObj;
- ByteCodeGetIntRep(objPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &tclByteCodeType, codePtr);
iPtr = (Interp *) *codePtr->interpHandle;
@@ -761,7 +761,7 @@ TclGetInnerContext(
int len;
/*
- * Reset while keeping the list intrep as much as possible.
+ * Reset while keeping the list internalrep as much as possible.
*/
Tcl_ListObjLength(interp, result, &len);
@@ -808,7 +808,7 @@ TclNewInstNameObj(
TclNewObj(objPtr);
TclInvalidateStringRep(objPtr);
- InstNameSetIntRep(objPtr, (long) inst);
+ InstNameSetInternalRep(objPtr, (long) inst);
return objPtr;
}
@@ -830,7 +830,7 @@ UpdateStringOfInstName(
size_t inst; /* NOTE: We know this is really an unsigned char */
char *dst;
- InstNameGetIntRep(objPtr, inst);
+ InstNameGetInternalRep(objPtr, inst);
if (inst > LAST_INST_OPCODE) {
dst = Tcl_InitStringRep(objPtr, NULL, TCL_INTEGER_SPACE + 5);
@@ -945,7 +945,7 @@ DisassembleByteCodeAsDicts(
int codeOffset, codeLength, sourceOffset, sourceLength;
int i, val, line;
- ByteCodeGetIntRep(objPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &tclByteCodeType, codePtr);
/*
* Get the literals from the bytecode.
@@ -1368,7 +1368,7 @@ Tcl_DisassembleObjCmd(
return TCL_ERROR;
}
- if (!TclHasIntRep(objv[2], &tclByteCodeType) && (TCL_OK
+ if (!TclHasInternalRep(objv[2], &tclByteCodeType) && (TCL_OK
!= TclSetByteCodeFromAny(interp, objv[2], NULL, NULL))) {
return TCL_ERROR;
}
@@ -1419,7 +1419,7 @@ Tcl_DisassembleObjCmd(
* Compile if necessary.
*/
- if (!TclHasIntRep(procPtr->bodyPtr, &tclByteCodeType)) {
+ if (!TclHasInternalRep(procPtr->bodyPtr, &tclByteCodeType)) {
Command cmd;
/*
@@ -1484,7 +1484,7 @@ Tcl_DisassembleObjCmd(
* Compile if necessary.
*/
- if (!TclHasIntRep(procPtr->bodyPtr, &tclByteCodeType)) {
+ if (!TclHasInternalRep(procPtr->bodyPtr, &tclByteCodeType)) {
Command cmd;
/*
@@ -1569,7 +1569,7 @@ Tcl_DisassembleObjCmd(
"METHODTYPE", NULL);
return TCL_ERROR;
}
- if (!TclHasIntRep(procPtr->bodyPtr, &tclByteCodeType)) {
+ if (!TclHasInternalRep(procPtr->bodyPtr, &tclByteCodeType)) {
Command cmd;
/*
@@ -1597,7 +1597,7 @@ Tcl_DisassembleObjCmd(
* Do the actual disassembly.
*/
- ByteCodeGetIntRep(codeObjPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(codeObjPtr, &tclByteCodeType, codePtr);
if (codePtr->flags & TCL_BYTECODE_PRECOMPILED) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c
index cff3ee4..4d3c442 100644
--- a/generic/tclEncoding.c
+++ b/generic/tclEncoding.c
@@ -37,7 +37,7 @@ typedef struct {
* end-of-string in this encoding. This number
* is used to determine the source string
* length when the srcLen argument is
- * negative. This number can be 1 or 2. */
+ * negative. This number can be 1, 2, or 4. */
ClientData clientData; /* Arbitrary value associated with encoding
* type. Passed to conversion functions. */
LengthProc *lengthProc; /* Function to compute length of
@@ -45,7 +45,9 @@ typedef struct {
* If nullSize is 1, this is strlen; if
* nullSize is 2, this is a function that
* returns the number of bytes in a 0x0000
- * terminated string. */
+ * terminated string; if nullSize is 4, this
+ * is a function that returns the number of
+ * bytes in a 0x00000000 terminated string. */
size_t refCount; /* Number of uses of this structure. */
Tcl_HashEntry *hPtr; /* Hash table entry that owns this encoding. */
} Encoding;
@@ -196,13 +198,13 @@ static unsigned short emptyPage[256];
*/
static Tcl_EncodingConvertProc BinaryProc;
-static Tcl_DupInternalRepProc DupEncodingIntRep;
+static Tcl_DupInternalRepProc DupEncodingInternalRep;
static Tcl_EncodingFreeProc EscapeFreeProc;
static Tcl_EncodingConvertProc EscapeFromUtfProc;
static Tcl_EncodingConvertProc EscapeToUtfProc;
static void FillEncodingFileMap(void);
static void FreeEncoding(Tcl_Encoding encoding);
-static Tcl_FreeInternalRepProc FreeEncodingIntRep;
+static Tcl_FreeInternalRepProc FreeEncodingInternalRep;
static Encoding * GetTableEncoding(EscapeEncodingData *dataPtr,
int state);
static Tcl_Encoding LoadEncodingFile(Tcl_Interp *interp,
@@ -216,7 +218,10 @@ static Tcl_Channel OpenEncodingFileChannel(Tcl_Interp *interp,
static Tcl_EncodingFreeProc TableFreeProc;
static Tcl_EncodingConvertProc TableFromUtfProc;
static Tcl_EncodingConvertProc TableToUtfProc;
-static size_t unilen(const char *src);
+static size_t unilen(const char *src);
+static size_t unilen4(const char *src);
+static Tcl_EncodingConvertProc Utf32ToUtfProc;
+static Tcl_EncodingConvertProc UtfToUtf32Proc;
static Tcl_EncodingConvertProc Utf16ToUtfProc;
static Tcl_EncodingConvertProc UtfToUtf16Proc;
static Tcl_EncodingConvertProc UtfToUcs2Proc;
@@ -226,25 +231,25 @@ static Tcl_EncodingConvertProc Iso88591ToUtfProc;
/*
* A Tcl_ObjType for holding a cached Tcl_Encoding in the twoPtrValue.ptr1 field
- * of the intrep. This should help the lifetime of encodings be more useful.
+ * of the internalrep. This should help the lifetime of encodings be more useful.
* See concerns raised in [Bug 1077262].
*/
static const Tcl_ObjType encodingType = {
- "encoding", FreeEncodingIntRep, DupEncodingIntRep, NULL, NULL
+ "encoding", FreeEncodingInternalRep, DupEncodingInternalRep, NULL, NULL
};
-#define EncodingSetIntRep(objPtr, encoding) \
+#define EncodingSetInternalRep(objPtr, encoding) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (encoding); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &encodingType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &encodingType, &ir); \
} while (0)
-#define EncodingGetIntRep(objPtr, encoding) \
+#define EncodingGetInternalRep(objPtr, encoding) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep ((objPtr), &encodingType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep ((objPtr), &encodingType); \
(encoding) = irPtr ? (Tcl_Encoding)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -277,13 +282,13 @@ Tcl_GetEncodingFromObj(
Tcl_Encoding encoding;
const char *name = TclGetString(objPtr);
- EncodingGetIntRep(objPtr, encoding);
+ EncodingGetInternalRep(objPtr, encoding);
if (encoding == NULL) {
encoding = Tcl_GetEncoding(interp, name);
if (encoding == NULL) {
return TCL_ERROR;
}
- EncodingSetIntRep(objPtr, encoding);
+ EncodingSetInternalRep(objPtr, encoding);
}
*encodingPtr = Tcl_GetEncoding(NULL, name);
return TCL_OK;
@@ -292,7 +297,7 @@ Tcl_GetEncodingFromObj(
/*
*----------------------------------------------------------------------
*
- * FreeEncodingIntRep --
+ * FreeEncodingInternalRep --
*
* The Tcl_FreeInternalRepProc for the "encoding" Tcl_ObjType.
*
@@ -300,19 +305,19 @@ Tcl_GetEncodingFromObj(
*/
static void
-FreeEncodingIntRep(
+FreeEncodingInternalRep(
Tcl_Obj *objPtr)
{
Tcl_Encoding encoding;
- EncodingGetIntRep(objPtr, encoding);
+ EncodingGetInternalRep(objPtr, encoding);
Tcl_FreeEncoding(encoding);
}
/*
*----------------------------------------------------------------------
*
- * DupEncodingIntRep --
+ * DupEncodingInternalRep --
*
* The Tcl_DupInternalRepProc for the "encoding" Tcl_ObjType.
*
@@ -320,12 +325,12 @@ FreeEncodingIntRep(
*/
static void
-DupEncodingIntRep(
+DupEncodingInternalRep(
Tcl_Obj *srcPtr,
Tcl_Obj *dupPtr)
{
Tcl_Encoding encoding = Tcl_GetEncoding(NULL, TclGetString(srcPtr));
- EncodingSetIntRep(dupPtr, encoding);
+ EncodingSetInternalRep(dupPtr, encoding);
}
/*
@@ -575,6 +580,20 @@ TclInitEncodingSubsystem(void)
type.clientData = INT2PTR(isLe.c);
Tcl_CreateEncoding(&type);
+ type.toUtfProc = Utf32ToUtfProc;
+ type.fromUtfProc = UtfToUtf32Proc;
+ type.freeProc = NULL;
+ type.nullSize = 4;
+ type.encodingName = "utf-32le";
+ type.clientData = INT2PTR(TCL_ENCODING_LE);
+ Tcl_CreateEncoding(&type);
+ type.encodingName = "utf-32be";
+ type.clientData = INT2PTR(0);
+ Tcl_CreateEncoding(&type);
+ type.encodingName = "utf-32";
+ type.clientData = INT2PTR(isLe.c);
+ Tcl_CreateEncoding(&type);
+
type.toUtfProc = Utf16ToUtfProc;
type.fromUtfProc = UtfToUtf16Proc;
type.freeProc = NULL;
@@ -1055,10 +1074,12 @@ Tcl_CreateEncoding(
encodingPtr->freeProc = typePtr->freeProc;
encodingPtr->nullSize = typePtr->nullSize;
encodingPtr->clientData = typePtr->clientData;
- if (typePtr->nullSize == 1) {
- encodingPtr->lengthProc = (LengthProc *) strlen;
- } else {
+ if (typePtr->nullSize == 2) {
encodingPtr->lengthProc = (LengthProc *) unilen;
+ } else if (typePtr->nullSize == 4) {
+ encodingPtr->lengthProc = (LengthProc *) unilen4;
+ } else {
+ encodingPtr->lengthProc = (LengthProc *) strlen;
}
encodingPtr->refCount = 1;
encodingPtr->hPtr = NULL;
@@ -1434,10 +1455,10 @@ Tcl_UtfToExternalDStringEx(
src += srcRead;
if (result != TCL_CONVERT_NOSPACE) {
- if (encodingPtr->nullSize == 2) {
- Tcl_DStringSetLength(dstPtr, soFar + 1);
+ int i = soFar + encodingPtr->nullSize - 1;
+ while (i >= soFar) {
+ Tcl_DStringSetLength(dstPtr, i--);
}
- Tcl_DStringSetLength(dstPtr, soFar);
return (result == TCL_OK) ? (size_t)-1 : (size_t)(src - srcStart);
}
@@ -1532,10 +1553,7 @@ Tcl_UtfToExternal(
result = encodingPtr->fromUtfProc(encodingPtr->clientData, src, srcLen,
flags, statePtr, dst, dstLen, srcReadPtr,
dstWrotePtr, dstCharsPtr);
- if (encodingPtr->nullSize == 2) {
- dst[*dstWrotePtr + 1] = '\0';
- }
- dst[*dstWrotePtr] = '\0';
+ memset(&dst[*dstWrotePtr], '\0', encodingPtr->nullSize);
return result;
}
@@ -2433,6 +2451,199 @@ UtfToUtfProc(
*dstCharsPtr = numChars;
return result;
}
+
+/*
+ *-------------------------------------------------------------------------
+ *
+ * Utf32ToUtfProc --
+ *
+ * Convert from UTF-32 to UTF-8.
+ *
+ * Results:
+ * Returns TCL_OK if conversion was successful.
+ *
+ * Side effects:
+ * None.
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static int
+Utf32ToUtfProc(
+ ClientData clientData, /* additional flags, e.g. TCL_ENCODING_LE */
+ const char *src, /* Source string in Unicode. */
+ int srcLen, /* Source string length in bytes. */
+ int flags, /* Conversion control flags. */
+ TCL_UNUSED(Tcl_EncodingState *),
+ char *dst, /* Output buffer in which converted string is
+ * stored. */
+ int dstLen, /* The maximum length of output buffer in
+ * bytes. */
+ int *srcReadPtr, /* Filled with the number of bytes from the
+ * source string that were converted. This may
+ * be less than the original source length if
+ * there was a problem converting some source
+ * characters. */
+ int *dstWrotePtr, /* Filled with the number of bytes that were
+ * stored in the output buffer as a result of
+ * the conversion. */
+ int *dstCharsPtr) /* Filled with the number of characters that
+ * correspond to the bytes stored in the
+ * output buffer. */
+{
+ const char *srcStart, *srcEnd;
+ const char *dstEnd, *dstStart;
+ int result, numChars, charLimit = INT_MAX;
+ int ch;
+
+ flags |= PTR2INT(clientData);
+ if (flags & TCL_ENCODING_CHAR_LIMIT) {
+ charLimit = *dstCharsPtr;
+ }
+ result = TCL_OK;
+
+ /*
+ * Check alignment with utf-32 (4 == sizeof(UTF-32))
+ */
+
+ if ((srcLen % 4) != 0) {
+ result = TCL_CONVERT_MULTIBYTE;
+ srcLen &= -4;
+ }
+
+ srcStart = src;
+ srcEnd = src + srcLen;
+
+ dstStart = dst;
+ dstEnd = dst + dstLen - TCL_UTF_MAX;
+
+ for (numChars = 0; src < srcEnd && numChars <= charLimit; numChars++) {
+ if (dst > dstEnd) {
+ result = TCL_CONVERT_NOSPACE;
+ break;
+ }
+
+ if (flags & TCL_ENCODING_LE) {
+ ch = (src[3] & 0xFF) << 24 | (src[2] & 0xFF) << 16 | (src[1] & 0xFF) << 8 | (src[0] & 0xFF);
+ } else {
+ ch = (src[0] & 0xFF) << 24 | (src[1] & 0xFF) << 16 | (src[2] & 0xFF) << 8 | (src[3] & 0xFF);
+ }
+
+ /*
+ * Special case for 1-byte utf chars for speed. Make sure we work with
+ * unsigned short-size data.
+ */
+
+ if ((ch > 0) && (ch < 0x80)) {
+ *dst++ = (ch & 0xFF);
+ } else {
+ dst += Tcl_UniCharToUtf(ch, dst);
+ }
+ src += sizeof(unsigned int);
+ }
+
+ *srcReadPtr = src - srcStart;
+ *dstWrotePtr = dst - dstStart;
+ *dstCharsPtr = numChars;
+ return result;
+}
+
+/*
+ *-------------------------------------------------------------------------
+ *
+ * UtfToUtf32Proc --
+ *
+ * Convert from UTF-8 to UTF-32.
+ *
+ * Results:
+ * Returns TCL_OK if conversion was successful.
+ *
+ * Side effects:
+ * None.
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static int
+UtfToUtf32Proc(
+ ClientData clientData, /* additional flags, e.g. TCL_ENCODING_LE */
+ const char *src, /* Source string in UTF-8. */
+ int srcLen, /* Source string length in bytes. */
+ int flags, /* Conversion control flags. */
+ TCL_UNUSED(Tcl_EncodingState *),
+ char *dst, /* Output buffer in which converted string is
+ * stored. */
+ int dstLen, /* The maximum length of output buffer in
+ * bytes. */
+ int *srcReadPtr, /* Filled with the number of bytes from the
+ * source string that were converted. This may
+ * be less than the original source length if
+ * there was a problem converting some source
+ * characters. */
+ int *dstWrotePtr, /* Filled with the number of bytes that were
+ * stored in the output buffer as a result of
+ * the conversion. */
+ int *dstCharsPtr) /* Filled with the number of characters that
+ * correspond to the bytes stored in the
+ * output buffer. */
+{
+ const char *srcStart, *srcEnd, *srcClose, *dstStart, *dstEnd;
+ int result, numChars;
+ int ch, len;
+
+ srcStart = src;
+ srcEnd = src + srcLen;
+ srcClose = srcEnd;
+ if ((flags & TCL_ENCODING_END) == 0) {
+ srcClose -= TCL_UTF_MAX;
+ }
+
+ dstStart = dst;
+ dstEnd = dst + dstLen - sizeof(Tcl_UniChar);
+ flags |= PTR2INT(clientData);
+
+ result = TCL_OK;
+ for (numChars = 0; src < srcEnd; numChars++) {
+ if ((src > srcClose) && (!Tcl_UtfCharComplete(src, srcEnd - src))) {
+ /*
+ * If there is more string to follow, this will ensure that the
+ * last UTF-8 character in the source buffer hasn't been cut off.
+ */
+
+ result = TCL_CONVERT_MULTIBYTE;
+ break;
+ }
+ if (dst > dstEnd) {
+ result = TCL_CONVERT_NOSPACE;
+ break;
+ }
+ len = TclUtfToUCS4(src, &ch);
+ if (!Tcl_UniCharIsUnicode(ch)) {
+ if (STOPONERROR) {
+ result = TCL_CONVERT_UNKNOWN;
+ break;
+ }
+ ch = 0xFFFD;
+ }
+ src += len;
+ if (flags & TCL_ENCODING_LE) {
+ *dst++ = (ch & 0xFF);
+ *dst++ = ((ch >> 8) & 0xff);
+ *dst++ = ((ch >> 16) & 0xff);
+ *dst++ = ((ch >> 24) & 0xff);
+ } else {
+ *dst++ = ((ch >> 24) & 0xff);
+ *dst++ = ((ch >> 16) & 0xff);
+ *dst++ = ((ch >> 8) & 0xff);
+ *dst++ = (ch & 0xFF);
+ }
+ }
+
+ *srcReadPtr = src - srcStart;
+ *dstWrotePtr = dst - dstStart;
+ *dstCharsPtr = numChars;
+ return result;
+}
/*
*-------------------------------------------------------------------------
@@ -2749,7 +2960,7 @@ UtfToUcs2Proc(
*dstCharsPtr = numChars;
return result;
}
-
+
/*
*-------------------------------------------------------------------------
*
@@ -3191,7 +3402,7 @@ TableFreeProc(
ClientData clientData) /* TableEncodingData that specifies
* encoding. */
{
- TableEncodingData *dataPtr = (TableEncodingData *) clientData;
+ TableEncodingData *dataPtr = (TableEncodingData *)clientData;
/*
* Make sure we aren't freeing twice on shutdown. [Bug 219314]
@@ -3249,7 +3460,7 @@ EscapeToUtfProc(
* correspond to the bytes stored in the
* output buffer. */
{
- EscapeEncodingData *dataPtr = (EscapeEncodingData *) clientData;
+ EscapeEncodingData *dataPtr = (EscapeEncodingData *)clientData;
const char *prefixBytes, *tablePrefixBytes, *srcStart, *srcEnd;
const unsigned short *const *tableToUnicode;
const Encoding *encodingPtr;
@@ -3726,7 +3937,7 @@ GetTableEncoding(
/*
*---------------------------------------------------------------------------
*
- * unilen --
+ * unilen, unilen4 --
*
* A helper function for the Tcl_ExternalToUtf functions. This function
* is similar to strlen for double-byte characters: it returns the number
@@ -3753,6 +3964,19 @@ unilen(
}
return (char *) p - src;
}
+
+static size_t
+unilen4(
+ const char *src)
+{
+ unsigned int *p;
+
+ p = (unsigned int *) src;
+ while (*p != 0x00000000) {
+ p++;
+ }
+ return (char *) p - src;
+}
/*
*-------------------------------------------------------------------------
@@ -3784,7 +4008,7 @@ InitializeEncodingSearchPath(
Tcl_Encoding *encodingPtr)
{
const char *bytes;
- int i, numDirs;
+ int i, numDirs, numBytes;
Tcl_Obj *libPathObj, *encodingObj, *searchPathObj;
TclNewLiteralStringObj(encodingObj, "encoding");
@@ -3814,11 +4038,11 @@ InitializeEncodingSearchPath(
if (*encodingPtr) {
((Encoding *)(*encodingPtr))->refCount++;
}
- bytes = TclGetString(searchPathObj);
+ bytes = Tcl_GetStringFromObj(searchPathObj, &numBytes);
- *lengthPtr = searchPathObj->length;
- *valuePtr = (char *)ckalloc(*lengthPtr + 1);
- memcpy(*valuePtr, bytes, *lengthPtr + 1);
+ *lengthPtr = numBytes;
+ *valuePtr = (char *)ckalloc(numBytes + 1);
+ memcpy(*valuePtr, bytes, numBytes + 1);
Tcl_DecrRefCount(searchPathObj);
}
diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c
index ccd43b9..850d5d0 100644
--- a/generic/tclEnsemble.c
+++ b/generic/tclEnsemble.c
@@ -84,18 +84,18 @@ static const Tcl_ObjType ensembleCmdType = {
NULL /* setFromAnyProc */
};
-#define ECRSetIntRep(objPtr, ecRepPtr) \
+#define ECRSetInternalRep(objPtr, ecRepPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (ecRepPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &ensembleCmdType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &ensembleCmdType, &ir); \
} while (0)
-#define ECRGetIntRep(objPtr, ecRepPtr) \
+#define ECRGetInternalRep(objPtr, ecRepPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &ensembleCmdType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &ensembleCmdType); \
(ecRepPtr) = irPtr ? (EnsembleCmdRep *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -1759,7 +1759,7 @@ NsEnsembleImplementationCmdNR(
*/
EnsembleCmdRep *ensembleCmd;
- ECRGetIntRep(subObj, ensembleCmd);
+ ECRGetInternalRep(subObj, ensembleCmd);
if (ensembleCmd) {
if (ensembleCmd->epoch == ensemblePtr->epoch &&
ensembleCmd->token == (Command *)ensemblePtr->token) {
@@ -2201,6 +2201,18 @@ TclSpellFix(
TclNRAddCallback(interp, TclNRReleaseValues, fix, NULL, NULL, NULL);
}
+Tcl_Obj *const *TclEnsembleGetRewriteValues(
+ Tcl_Interp *interp /* Current interpreter. */
+)
+{
+ Interp *iPtr = (Interp *) interp;
+ Tcl_Obj *const *origObjv = iPtr->ensembleRewrite.sourceObjs;
+ if (origObjv[0] == NULL) {
+ origObjv = (Tcl_Obj *const *)origObjv[2];
+ }
+ return origObjv;
+}
+
/*
*----------------------------------------------------------------------
*
@@ -2225,12 +2237,18 @@ TclFetchEnsembleRoot(
int objc,
int *objcPtr)
{
+ Tcl_Obj *const *sourceObjs;
Interp *iPtr = (Interp *) interp;
if (iPtr->ensembleRewrite.sourceObjs) {
*objcPtr = objc + iPtr->ensembleRewrite.numRemovedObjs
- iPtr->ensembleRewrite.numInsertedObjs;
- return iPtr->ensembleRewrite.sourceObjs;
+ if (iPtr->ensembleRewrite.sourceObjs[0] == NULL) {
+ sourceObjs = (Tcl_Obj *const *)iPtr->ensembleRewrite.sourceObjs[1];
+ } else {
+ sourceObjs = iPtr->ensembleRewrite.sourceObjs;
+ }
+ return sourceObjs;
}
*objcPtr = objc;
return objv;
@@ -2406,7 +2424,7 @@ MakeCachedEnsembleCommand(
{
EnsembleCmdRep *ensembleCmd;
- ECRGetIntRep(objPtr, ensembleCmd);
+ ECRGetInternalRep(objPtr, ensembleCmd);
if (ensembleCmd) {
TclCleanupCommandMacro(ensembleCmd->token);
if (ensembleCmd->fix) {
@@ -2419,7 +2437,7 @@ MakeCachedEnsembleCommand(
*/
ensembleCmd = (EnsembleCmdRep *)ckalloc(sizeof(EnsembleCmdRep));
- ECRSetIntRep(objPtr, ensembleCmd);
+ ECRSetInternalRep(objPtr, ensembleCmd);
}
/*
@@ -2829,7 +2847,7 @@ FreeEnsembleCmdRep(
{
EnsembleCmdRep *ensembleCmd;
- ECRGetIntRep(objPtr, ensembleCmd);
+ ECRGetInternalRep(objPtr, ensembleCmd);
TclCleanupCommandMacro(ensembleCmd->token);
if (ensembleCmd->fix) {
Tcl_DecrRefCount(ensembleCmd->fix);
@@ -2863,8 +2881,8 @@ DupEnsembleCmdRep(
EnsembleCmdRep *ensembleCmd;
EnsembleCmdRep *ensembleCopy = (EnsembleCmdRep *)ckalloc(sizeof(EnsembleCmdRep));
- ECRGetIntRep(objPtr, ensembleCmd);
- ECRSetIntRep(copyPtr, ensembleCopy);
+ ECRGetInternalRep(objPtr, ensembleCmd);
+ ECRSetInternalRep(copyPtr, ensembleCopy);
ensembleCopy->epoch = ensembleCmd->epoch;
ensembleCopy->token = ensembleCmd->token;
diff --git a/generic/tclEnv.c b/generic/tclEnv.c
index 64d0309..1378708 100644
--- a/generic/tclEnv.c
+++ b/generic/tclEnv.c
@@ -420,6 +420,16 @@ Tcl_PutEnv(
if ((value != NULL) && (value != name)) {
value[0] = '\0';
+#if defined(_WIN32)
+ if (tenviron == NULL) {
+ /*
+ * When we are started from main(), the _wenviron array could
+ * be NULL and will be initialized by the first _wgetenv() call.
+ */
+
+ (void) _wgetenv(L"WINDIR");
+ }
+#endif
TclSetEnv(name, value+1);
}
TclEnvEpoch++;
diff --git a/generic/tclEvent.c b/generic/tclEvent.c
index 52cd351..cb2e529 100644
--- a/generic/tclEvent.c
+++ b/generic/tclEvent.c
@@ -1618,6 +1618,12 @@ Tcl_CreateThread(
}
return result;
#else
+ (void)idPtr;
+ (void)proc;
+ (void)clientData;
+ (void)stackSize;
+ (void)flags;
+
return TCL_ERROR;
#endif /* TCL_THREADS */
}
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 7e51c0d..73bd0e9 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -509,11 +509,11 @@ VarHashCreateVar(
*/
#define GetNumberFromObj(interp, objPtr, ptrPtr, tPtr) \
- ((TclHasIntRep((objPtr), &tclIntType)) \
+ ((TclHasInternalRep((objPtr), &tclIntType)) \
? (*(tPtr) = TCL_NUMBER_INT, \
*(ptrPtr) = (ClientData) \
(&((objPtr)->internalRep.wideValue)), TCL_OK) : \
- TclHasIntRep((objPtr), &tclDoubleType) \
+ TclHasInternalRep((objPtr), &tclDoubleType) \
? (((TclIsNaN((objPtr)->internalRep.doubleValue)) \
? (*(tPtr) = TCL_NUMBER_NAN) \
: (*(tPtr) = TCL_NUMBER_DOUBLE)), \
@@ -759,9 +759,9 @@ ReleaseDictIterator(
{
Tcl_DictSearch *searchPtr;
Tcl_Obj *dictPtr;
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
- irPtr = TclFetchIntRep(objPtr, &dictIteratorType);
+ irPtr = TclFetchInternalRep(objPtr, &dictIteratorType);
assert(irPtr != NULL);
/*
@@ -1474,7 +1474,7 @@ CompileExprObj(
* is valid in the current context.
*/
- ByteCodeGetIntRep(objPtr, &exprCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &exprCodeType, codePtr);
if (codePtr != NULL) {
Namespace *namespacePtr = iPtr->varFramePtr->nsPtr;
@@ -1484,7 +1484,7 @@ CompileExprObj(
|| (codePtr->nsPtr != namespacePtr)
|| (codePtr->nsEpoch != namespacePtr->resolverEpoch)
|| (codePtr->localCachePtr != iPtr->varFramePtr->localCachePtr)) {
- Tcl_StoreIntRep(objPtr, &exprCodeType, NULL);
+ Tcl_StoreInternalRep(objPtr, &exprCodeType, NULL);
codePtr = NULL;
}
}
@@ -1538,7 +1538,7 @@ CompileExprObj(
* DupExprCodeInternalRep --
*
* Part of the Tcl object type implementation for Tcl expression
- * bytecode. We do not copy the bytecode intrep. Instead, we return
+ * bytecode. We do not copy the bytecode internalrep. Instead, we return
* without setting copyPtr->typePtr, so the copy is a plain string copy
* of the expression value, and if it is to be used as a compiled
* expression, it will just need a recompile.
@@ -1547,7 +1547,7 @@ CompileExprObj(
* usual (only?) time Tcl_DuplicateObj() will be called is when the copy
* is about to be modified, which would invalidate any copied bytecode
* anyway. The only reason it might make sense to copy the bytecode is if
- * we had some modifying routines that operated directly on the intrep,
+ * we had some modifying routines that operated directly on the internalrep,
* like we do for lists and dicts.
*
* Results:
@@ -1590,7 +1590,7 @@ FreeExprCodeInternalRep(
Tcl_Obj *objPtr)
{
ByteCode *codePtr;
- ByteCodeGetIntRep(objPtr, &exprCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &exprCodeType, codePtr);
assert(codePtr != NULL);
TclReleaseByteCode(codePtr);
@@ -1629,7 +1629,7 @@ TclCompileObj(
* compilation). Otherwise, check that it is "fresh" enough.
*/
- ByteCodeGetIntRep(objPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &tclByteCodeType, codePtr);
if (codePtr != NULL) {
/*
* Make sure the Bytecode hasn't been invalidated by, e.g., someone
@@ -1775,7 +1775,7 @@ TclCompileObj(
iPtr->invokeWord = word;
TclSetByteCodeFromAny(interp, objPtr, NULL, NULL);
iPtr->invokeCmdFramePtr = NULL;
- ByteCodeGetIntRep(objPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(objPtr, &tclByteCodeType, codePtr);
if (iPtr->varFramePtr->localCachePtr) {
codePtr->localCachePtr = iPtr->varFramePtr->localCachePtr;
codePtr->localCachePtr->refCount++;
@@ -4864,7 +4864,7 @@ TEBCresume(
*/
if ((TclListObjGetElements(interp, valuePtr, &objc, &objv) == TCL_OK)
- && !TclHasIntRep(value2Ptr, &tclListType)) {
+ && !TclHasInternalRep(value2Ptr, &tclListType)) {
int code;
DECACHE_STACK_INFO();
@@ -5262,7 +5262,7 @@ TEBCresume(
} else {
length = Tcl_UtfToUpper(TclGetString(valuePtr));
Tcl_SetObjLength(valuePtr, length);
- TclFreeIntRep(valuePtr);
+ TclFreeInternalRep(valuePtr);
TRACE_APPEND(("\"%.20s\"\n", O2S(valuePtr)));
NEXT_INST_F(1, 0, 0);
}
@@ -5279,7 +5279,7 @@ TEBCresume(
} else {
length = Tcl_UtfToLower(TclGetString(valuePtr));
Tcl_SetObjLength(valuePtr, length);
- TclFreeIntRep(valuePtr);
+ TclFreeInternalRep(valuePtr);
TRACE_APPEND(("\"%.20s\"\n", O2S(valuePtr)));
NEXT_INST_F(1, 0, 0);
}
@@ -5296,7 +5296,7 @@ TEBCresume(
} else {
length = Tcl_UtfToTitle(TclGetString(valuePtr));
Tcl_SetObjLength(valuePtr, length);
- TclFreeIntRep(valuePtr);
+ TclFreeInternalRep(valuePtr);
TRACE_APPEND(("\"%.20s\"\n", O2S(valuePtr)));
NEXT_INST_F(1, 0, 0);
}
@@ -5610,8 +5610,8 @@ TEBCresume(
* both.
*/
- if (TclHasIntRep(valuePtr, &tclStringType)
- || TclHasIntRep(value2Ptr, &tclStringType)) {
+ if (TclHasInternalRep(valuePtr, &tclStringType)
+ || TclHasInternalRep(value2Ptr, &tclStringType)) {
Tcl_UniChar *ustring1, *ustring2;
ustring1 = Tcl_GetUnicodeFromObj(valuePtr, &length);
@@ -6400,7 +6400,7 @@ TEBCresume(
if (Tcl_IsShared(valuePtr)) {
/*
* Here we do some surgery within the Tcl_Obj internals. We want
- * to copy the intrep, but not the string, so we temporarily hide
+ * to copy the internalrep, but not the string, so we temporarily hide
* the string so we do not copy it.
*/
@@ -6425,7 +6425,7 @@ TEBCresume(
case INST_TRY_CVT_TO_BOOLEAN:
valuePtr = OBJ_AT_TOS;
- if (TclHasIntRep(valuePtr, &tclBooleanType)) {
+ if (TclHasInternalRep(valuePtr, &tclBooleanType)) {
objResultPtr = TCONST(1);
} else {
int res = (TclSetBooleanFromAny(NULL, valuePtr) == TCL_OK);
@@ -7260,7 +7260,7 @@ TEBCresume(
/*
* dictPtr is no longer on the stack, and we're not
- * moving it into the intrep of an iterator. We need
+ * moving it into the internalrep of an iterator. We need
* to drop the refcount [Tcl Bug 9b352768e6].
*/
@@ -7270,15 +7270,15 @@ TEBCresume(
goto gotError;
}
{
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
TclNewObj(statePtr);
ir.twoPtrValue.ptr1 = searchPtr;
ir.twoPtrValue.ptr2 = dictPtr;
- Tcl_StoreIntRep(statePtr, &dictIteratorType, &ir);
+ Tcl_StoreInternalRep(statePtr, &dictIteratorType, &ir);
}
varPtr = LOCAL(opnd);
if (varPtr->value.objPtr) {
- if (TclHasIntRep(varPtr->value.objPtr, &dictIteratorType)) {
+ if (TclHasInternalRep(varPtr->value.objPtr, &dictIteratorType)) {
Tcl_Panic("mis-issued dictFirst!");
}
TclDecrRefCount(varPtr->value.objPtr);
@@ -7292,10 +7292,10 @@ TEBCresume(
TRACE(("%u => ", opnd));
statePtr = (*LOCAL(opnd)).value.objPtr;
{
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
if (statePtr &&
- (irPtr = TclFetchIntRep(statePtr, &dictIteratorType))) {
+ (irPtr = TclFetchInternalRep(statePtr, &dictIteratorType))) {
searchPtr = (Tcl_DictSearch *)irPtr->twoPtrValue.ptr1;
Tcl_DictObjNext(searchPtr, &keyPtr, &valuePtr, &done);
} else {
@@ -9852,7 +9852,7 @@ EvalStatsCmd(
for (i = 0; i < globalTablePtr->numBuckets; i++) {
for (entryPtr = globalTablePtr->buckets[i]; entryPtr != NULL;
entryPtr = entryPtr->nextPtr) {
- if (TclHasIntRep(entryPtr->objPtr, &tclByteCodeType)) {
+ if (TclHasInternalRep(entryPtr->objPtr, &tclByteCodeType)) {
numByteCodeLits++;
}
(void) TclGetStringFromObj(entryPtr->objPtr, &length);
diff --git a/generic/tclGet.c b/generic/tclGet.c
index 3dbc545..970e093 100644
--- a/generic/tclGet.c
+++ b/generic/tclGet.c
@@ -53,7 +53,7 @@ Tcl_GetInt(
if (obj.refCount > 1) {
Tcl_Panic("invalid sharing of Tcl_Obj on C stack");
}
- TclFreeIntRep(&obj);
+ TclFreeInternalRep(&obj);
return code;
}
@@ -97,7 +97,7 @@ Tcl_GetDouble(
if (obj.refCount > 1) {
Tcl_Panic("invalid sharing of Tcl_Obj on C stack");
}
- TclFreeIntRep(&obj);
+ TclFreeInternalRep(&obj);
return code;
}
diff --git a/generic/tclIO.c b/generic/tclIO.c
index d704d29..2d2f2fc 100644
--- a/generic/tclIO.c
+++ b/generic/tclIO.c
@@ -324,30 +324,30 @@ typedef struct ResolvedChanName {
size_t refCount; /* Share this struct among many Tcl_Obj. */
} ResolvedChanName;
-static void DupChannelIntRep(Tcl_Obj *objPtr, Tcl_Obj *copyPtr);
-static void FreeChannelIntRep(Tcl_Obj *objPtr);
+static void DupChannelInternalRep(Tcl_Obj *objPtr, Tcl_Obj *copyPtr);
+static void FreeChannelInternalRep(Tcl_Obj *objPtr);
static const Tcl_ObjType chanObjType = {
"channel", /* name for this type */
- FreeChannelIntRep, /* freeIntRepProc */
- DupChannelIntRep, /* dupIntRepProc */
+ FreeChannelInternalRep, /* freeIntRepProc */
+ DupChannelInternalRep, /* dupIntRepProc */
NULL, /* updateStringProc */
NULL /* setFromAnyProc */
};
-#define ChanSetIntRep(objPtr, resPtr) \
+#define ChanSetInternalRep(objPtr, resPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
(resPtr)->refCount++; \
ir.twoPtrValue.ptr1 = (resPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &chanObjType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &chanObjType, &ir); \
} while (0)
-#define ChanGetIntRep(objPtr, resPtr) \
+#define ChanGetInternalRep(objPtr, resPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &chanObjType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &chanObjType); \
(resPtr) = irPtr ? (ResolvedChanName *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -1524,7 +1524,7 @@ TclGetChannelFromObj(
return TCL_ERROR;
}
- ChanGetIntRep(objPtr, resPtr);
+ ChanGetInternalRep(objPtr, resPtr);
if (resPtr) {
/*
* Confirm validity of saved lookup results.
@@ -1546,7 +1546,7 @@ TclGetChannelFromObj(
if (chan == NULL) {
if (resPtr) {
- Tcl_StoreIntRep(objPtr, &chanObjType, NULL);
+ Tcl_StoreInternalRep(objPtr, &chanObjType, NULL);
}
return TCL_ERROR;
}
@@ -1560,7 +1560,7 @@ TclGetChannelFromObj(
} else {
resPtr = (ResolvedChanName *) ckalloc(sizeof(ResolvedChanName));
resPtr->refCount = 0;
- ChanSetIntRep(objPtr, resPtr); /* Overwrites, if needed */
+ ChanSetInternalRep(objPtr, resPtr); /* Overwrites, if needed */
}
statePtr = ((Channel *)chan)->state;
resPtr->statePtr = statePtr;
@@ -9436,13 +9436,13 @@ MBWrite(
if (bufPtr) {
/* Split the overflowing buffer in two */
int extra = (int) (inBytes - csPtr->toRead);
- /* Note that going with int for extra assumes that inBytes is not too
- * much over toRead to require a wide itself. If that gets violated
- * then the calculations involving extra must be made wide too.
- *
- * Noted with Win32/MSVC debug build treating the warning (possible of
- * data in __int64 to int conversion) as error.
- */
+ /* Note that going with int for extra assumes that inBytes is not too
+ * much over toRead to require a wide itself. If that gets violated
+ * then the calculations involving extra must be made wide too.
+ *
+ * Noted with Win32/MSVC debug build treating the warning (possible of
+ * data in long long to int conversion) as error.
+ */
bufPtr = AllocChannelBuffer(extra);
@@ -11274,7 +11274,7 @@ Tcl_ChannelTruncateProc(
/*
*----------------------------------------------------------------------
*
- * DupChannelIntRep --
+ * DupChannelInternalRep --
*
* Initialize the internal representation of a new Tcl_Obj to a copy of
* the internal representation of an existing string object.
@@ -11290,7 +11290,7 @@ Tcl_ChannelTruncateProc(
*/
static void
-DupChannelIntRep(
+DupChannelInternalRep(
Tcl_Obj *srcPtr, /* Object with internal rep to copy. Must have
* an internal rep of type "Channel". */
Tcl_Obj *copyPtr) /* Object with internal rep to set. Must not
@@ -11298,15 +11298,15 @@ DupChannelIntRep(
{
ResolvedChanName *resPtr;
- ChanGetIntRep(srcPtr, resPtr);
+ ChanGetInternalRep(srcPtr, resPtr);
assert(resPtr);
- ChanSetIntRep(copyPtr, resPtr);
+ ChanSetInternalRep(copyPtr, resPtr);
}
/*
*----------------------------------------------------------------------
*
- * FreeChannelIntRep --
+ * FreeChannelInternalRep --
*
* Release statePtr storage.
*
@@ -11320,12 +11320,12 @@ DupChannelIntRep(
*/
static void
-FreeChannelIntRep(
+FreeChannelInternalRep(
Tcl_Obj *objPtr) /* Object with internal rep to free. */
{
ResolvedChanName *resPtr;
- ChanGetIntRep(objPtr, resPtr);
+ ChanGetInternalRep(objPtr, resPtr);
assert(resPtr);
if (resPtr->refCount-- > 1) {
return;
diff --git a/generic/tclIORChan.c b/generic/tclIORChan.c
index 9097bf4..fe383be 100644
--- a/generic/tclIORChan.c
+++ b/generic/tclIORChan.c
@@ -2090,7 +2090,7 @@ ReflectTruncate(
* Are we in the correct thread?
*/
-#ifdef TCL_THREADS
+#if TCL_THREADS
if (rcPtr->thread != Tcl_GetCurrentThread()) {
ForwardParam p;
@@ -2766,6 +2766,8 @@ DeleteReflectedChannelMap(
MarkDead(rcPtr);
Tcl_DeleteHashEntry(hPtr);
}
+#else
+ (void)interp;
#endif
}
diff --git a/generic/tclIORTrans.c b/generic/tclIORTrans.c
index b06bd45..7dba42d 100644
--- a/generic/tclIORTrans.c
+++ b/generic/tclIORTrans.c
@@ -2158,6 +2158,8 @@ DeleteReflectedTransformMap(
ForwardingResult *resultPtr;
ForwardingEvent *evPtr;
ForwardParam *paramPtr;
+#else
+ (void)interp;
#endif /* TCL_THREADS */
/*
diff --git a/generic/tclIndexObj.c b/generic/tclIndexObj.c
index 48ebb69..c2812ea 100644
--- a/generic/tclIndexObj.c
+++ b/generic/tclIndexObj.c
@@ -122,7 +122,7 @@ Tcl_GetIndexFromObj(
* the common case where the result is cached).
*/
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objPtr, &indexType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objPtr, &indexType);
if (irPtr) {
IndexRep *indexRep = (IndexRep *)irPtr->twoPtrValue.ptr1;
@@ -270,7 +270,7 @@ Tcl_GetIndexFromObjStruct(
const char *const *entryPtr;
Tcl_Obj *resultPtr;
IndexRep *indexRep;
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
/* Protect against invalid values, like -1 or 0. */
if (offset < (int)sizeof(char *)) {
@@ -281,7 +281,7 @@ Tcl_GetIndexFromObjStruct(
*/
if (!(flags & TCL_INDEX_TEMP_TABLE)) {
- irPtr = TclFetchIntRep(objPtr, &indexType);
+ irPtr = TclFetchInternalRep(objPtr, &indexType);
if (irPtr) {
indexRep = (IndexRep *)irPtr->twoPtrValue.ptr1;
if (indexRep->tablePtr==tablePtr && indexRep->offset==offset) {
@@ -345,15 +345,15 @@ Tcl_GetIndexFromObjStruct(
*/
if (!(flags & TCL_INDEX_TEMP_TABLE)) {
- irPtr = TclFetchIntRep(objPtr, &indexType);
+ irPtr = TclFetchInternalRep(objPtr, &indexType);
if (irPtr) {
indexRep = (IndexRep *)irPtr->twoPtrValue.ptr1;
} else {
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
indexRep = (IndexRep*)ckalloc(sizeof(IndexRep));
ir.twoPtrValue.ptr1 = indexRep;
- Tcl_StoreIntRep(objPtr, &indexType, &ir);
+ Tcl_StoreInternalRep(objPtr, &indexType, &ir);
}
indexRep->tablePtr = (void *) tablePtr;
indexRep->offset = offset;
@@ -423,7 +423,7 @@ static void
UpdateStringOfIndex(
Tcl_Obj *objPtr)
{
- IndexRep *indexRep = (IndexRep *)TclFetchIntRep(objPtr, &indexType)->twoPtrValue.ptr1;
+ IndexRep *indexRep = (IndexRep *)TclFetchInternalRep(objPtr, &indexType)->twoPtrValue.ptr1;
const char *indexStr = EXPAND_OF(indexRep);
Tcl_InitStringRep(objPtr, indexStr, strlen(indexStr));
@@ -452,14 +452,14 @@ DupIndex(
Tcl_Obj *srcPtr,
Tcl_Obj *dupPtr)
{
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
IndexRep *dupIndexRep = (IndexRep *)ckalloc(sizeof(IndexRep));
- memcpy(dupIndexRep, TclFetchIntRep(srcPtr, &indexType)->twoPtrValue.ptr1,
+ memcpy(dupIndexRep, TclFetchInternalRep(srcPtr, &indexType)->twoPtrValue.ptr1,
sizeof(IndexRep));
ir.twoPtrValue.ptr1 = dupIndexRep;
- Tcl_StoreIntRep(dupPtr, &indexType, &ir);
+ Tcl_StoreInternalRep(dupPtr, &indexType, &ir);
}
/*
@@ -483,7 +483,7 @@ static void
FreeIndex(
Tcl_Obj *objPtr)
{
- ckfree(TclFetchIntRep(objPtr, &indexType)->twoPtrValue.ptr1);
+ ckfree(TclFetchInternalRep(objPtr, &indexType)->twoPtrValue.ptr1);
objPtr->typePtr = NULL;
}
@@ -887,27 +887,19 @@ Tcl_WrongNumArgs(
}
/*
- * Check to see if we are processing an ensemble implementation, and if so
- * rewrite the results in terms of how the ensemble was invoked.
+ * If processing an an ensemble implementation, rewrite the results in
+ * terms of how the ensemble was invoked.
*/
if (iPtr->ensembleRewrite.sourceObjs != NULL) {
int toSkip = iPtr->ensembleRewrite.numInsertedObjs;
int toPrint = iPtr->ensembleRewrite.numRemovedObjs;
- Tcl_Obj *const *origObjv = iPtr->ensembleRewrite.sourceObjs;
+ Tcl_Obj *const *origObjv = TclEnsembleGetRewriteValues(interp);
/*
- * Check for spelling fixes, and substitute the fixed values.
- */
-
- if (origObjv[0] == NULL) {
- origObjv = (Tcl_Obj *const *)origObjv[2];
- }
-
- /*
- * We only know how to do rewriting if all the replaced objects are
+ * Only do rewrite the command if all the replaced objects are
* actually arguments (in objv) to this function. Otherwise it just
- * gets too complicated and we'd be better off just giving a slightly
+ * gets too complicated and it's to just give a slightly
* confusing error message...
*/
@@ -930,9 +922,9 @@ Tcl_WrongNumArgs(
/*
* Add the element, quoting it if necessary.
*/
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
- if ((irPtr = TclFetchIntRep(origObjv[i], &indexType))) {
+ if ((irPtr = TclFetchInternalRep(origObjv[i], &indexType))) {
IndexRep *indexRep = (IndexRep *)irPtr->twoPtrValue.ptr1;
elementStr = EXPAND_OF(indexRep);
@@ -979,9 +971,9 @@ Tcl_WrongNumArgs(
* the correct error message even if the subcommand was abbreviated.
* Otherwise, just use the string rep.
*/
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
- if ((irPtr = TclFetchIntRep(objv[i], &indexType))) {
+ if ((irPtr = TclFetchInternalRep(objv[i], &indexType))) {
IndexRep *indexRep = (IndexRep *)irPtr->twoPtrValue.ptr1;
Tcl_AppendStringsToObj(objPtr, EXPAND_OF(indexRep), NULL);
@@ -1426,7 +1418,7 @@ TclGetCompletionCodeFromObj(
"ok", "error", "return", "break", "continue", NULL
};
- if (!TclHasIntRep(value, &indexType)
+ if (!TclHasInternalRep(value, &indexType)
&& TclGetIntFromObj(NULL, value, codePtr) == TCL_OK) {
return TCL_OK;
}
diff --git a/generic/tclInt.h b/generic/tclInt.h
index 05167b7..08445a5 100644
--- a/generic/tclInt.h
+++ b/generic/tclInt.h
@@ -2926,6 +2926,9 @@ MODULE_SCOPE void TclArgumentBCRelease(Tcl_Interp *interp,
CmdFrame *cfPtr);
MODULE_SCOPE void TclArgumentGet(Tcl_Interp *interp, Tcl_Obj *obj,
CmdFrame **cfPtrPtr, int *wordPtr);
+MODULE_SCOPE int TclAsyncNotifier(int sigNumber, Tcl_ThreadId threadId,
+ ClientData clientData, int *flagPtr, int value);
+MODULE_SCOPE void TclAsyncMarkFromNotifier(void);
MODULE_SCOPE double TclBignumToDouble(const void *bignum);
MODULE_SCOPE int TclByteArrayMatch(const unsigned char *string,
int strLen, const unsigned char *pattern,
@@ -2990,6 +2993,7 @@ MODULE_SCOPE char * TclDStringAppendDString(Tcl_DString *dsPtr,
MODULE_SCOPE Tcl_Obj * TclDStringToObj(Tcl_DString *dsPtr);
MODULE_SCOPE Tcl_Obj *const *TclFetchEnsembleRoot(Tcl_Interp *interp,
Tcl_Obj *const *objv, int objc, int *objcPtr);
+MODULE_SCOPE Tcl_Obj *const *TclEnsembleGetRewriteValues(Tcl_Interp *interp);
MODULE_SCOPE Tcl_Namespace *TclEnsureNamespace(Tcl_Interp *interp,
Tcl_Namespace *namespacePtr);
MODULE_SCOPE void TclFinalizeAllocSubsystem(void);
@@ -3141,6 +3145,7 @@ MODULE_SCOPE Tcl_Obj * TclpTempFileNameForLibrary(Tcl_Interp *interp,
MODULE_SCOPE Tcl_Obj * TclNewFSPathObj(Tcl_Obj *dirPtr, const char *addStrRep,
int len);
MODULE_SCOPE void TclpAlertNotifier(ClientData clientData);
+MODULE_SCOPE ClientData TclpNotifierData(void);
MODULE_SCOPE void TclpServiceModeHook(int mode);
MODULE_SCOPE void TclpSetTimer(const Tcl_Time *timePtr);
MODULE_SCOPE int TclpWaitForEvent(const Tcl_Time *timePtr);
@@ -3214,7 +3219,7 @@ MODULE_SCOPE int TclScanElement(const char *string, int length,
char *flagPtr);
MODULE_SCOPE void TclSetBgErrorHandler(Tcl_Interp *interp,
Tcl_Obj *cmdPrefix);
-MODULE_SCOPE void TclSetBignumIntRep(Tcl_Obj *objPtr,
+MODULE_SCOPE void TclSetBignumInternalRep(Tcl_Obj *objPtr,
void *bignumValue);
MODULE_SCOPE int TclSetBooleanFromAny(Tcl_Interp *interp,
Tcl_Obj *objPtr);
@@ -4531,11 +4536,11 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
* representation. Does not actually reset the rep's bytes. The ANSI C
* "prototype" for this macro is:
*
- * MODULE_SCOPE void TclFreeIntRep(Tcl_Obj *objPtr);
+ * MODULE_SCOPE void TclFreeInternalRep(Tcl_Obj *objPtr);
*----------------------------------------------------------------
*/
-#define TclFreeIntRep(objPtr) \
+#define TclFreeInternalRep(objPtr) \
if ((objPtr)->typePtr != NULL) { \
if ((objPtr)->typePtr->freeIntRepProc != NULL) { \
(objPtr)->typePtr->freeIntRepProc(objPtr); \
@@ -4543,6 +4548,10 @@ MODULE_SCOPE void TclDbInitNewObj(Tcl_Obj *objPtr, const char *file,
(objPtr)->typePtr = NULL; \
}
+#if !defined(TCL_NO_DEPRECATED) && TCL_MAJOR_VERSION < 8
+# define TclFreeIntRep(objPtr) TclFreeInternalRep(objPtr)
+#endif
+
/*
*----------------------------------------------------------------
* Macro used by the Tcl core to clean out an object's string representation.
@@ -4753,10 +4762,10 @@ MODULE_SCOPE const TclFileAttrProcs tclpFileAttrProcs[];
MODULE_SCOPE int TclIsPureByteArray(Tcl_Obj *objPtr);
#define TclIsPureDict(objPtr) \
(((objPtr)->bytes==NULL) && ((objPtr)->typePtr==&tclDictType))
-#define TclHasIntRep(objPtr, type) \
+#define TclHasInternalRep(objPtr, type) \
((objPtr)->typePtr == (type))
-#define TclFetchIntRep(objPtr, type) \
- (TclHasIntRep((objPtr), (type)) ? &((objPtr)->internalRep) : NULL)
+#define TclFetchInternalRep(objPtr, type) \
+ (TclHasInternalRep((objPtr), (type)) ? &((objPtr)->internalRep) : NULL)
/*
@@ -4846,18 +4855,18 @@ MODULE_SCOPE Tcl_LibraryInitProc Procbodytest_SafeInit;
#define TclSetIntObj(objPtr, i) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.wideValue = (Tcl_WideInt) i; \
TclInvalidateStringRep(objPtr); \
- Tcl_StoreIntRep(objPtr, &tclIntType, &ir); \
+ Tcl_StoreInternalRep(objPtr, &tclIntType, &ir); \
} while (0)
#define TclSetDoubleObj(objPtr, d) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.doubleValue = (double) d; \
TclInvalidateStringRep(objPtr); \
- Tcl_StoreIntRep(objPtr, &tclDoubleType, &ir); \
+ Tcl_StoreInternalRep(objPtr, &tclDoubleType, &ir); \
} while (0)
/*
@@ -5205,8 +5214,7 @@ typedef struct NRE_callback {
#ifdef MAC_OSX_TCL
#define TCL_MAC_EMPTY_FILE(name) \
- static __attribute__((used)) const void *const TclUnusedFile_ ## name; \
- static const void *const TclUnusedFile_ ## name = NULL;
+ static __attribute__((used)) const void *const TclUnusedFile_ ## name = NULL;
#else
#define TCL_MAC_EMPTY_FILE(name)
#endif /* MAC_OSX_TCL */
diff --git a/generic/tclLink.c b/generic/tclLink.c
index 02b19aa..34ad67b 100644
--- a/generic/tclLink.c
+++ b/generic/tclLink.c
@@ -588,7 +588,7 @@ GetDouble(
return 0;
} else {
#ifdef ACCEPT_NAN
- Tcl_ObjIntRep *irPtr = TclFetchIntRep(objPtr, &tclDoubleType);
+ Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objPtr, &tclDoubleType);
if (irPtr != NULL) {
*dblPtr = irPtr->doubleValue;
@@ -656,7 +656,7 @@ SetInvalidRealFromAny(
double doubleValue = 0.0;
Tcl_GetDoubleFromObj(NULL, objPtr, &doubleValue);
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objPtr->typePtr = &invalidRealType;
objPtr->internalRep.doubleValue = doubleValue;
return TCL_OK;
@@ -705,7 +705,7 @@ GetInvalidDoubleFromObj(
{
int intValue;
- if (TclHasIntRep(objPtr, &invalidRealType)) {
+ if (TclHasInternalRep(objPtr, &invalidRealType)) {
goto gotdouble;
}
if (GetInvalidIntFromObj(objPtr, &intValue) == TCL_OK) {
diff --git a/generic/tclListObj.c b/generic/tclListObj.c
index 0cc1c11..c66fd1e 100644
--- a/generic/tclListObj.c
+++ b/generic/tclListObj.c
@@ -20,7 +20,7 @@
static List * AttemptNewList(Tcl_Interp *interp, int objc,
Tcl_Obj *const objv[]);
-static List * NewListIntRep(int objc, Tcl_Obj *const objv[], int p);
+static List * NewListInternalRep(int objc, Tcl_Obj *const objv[], int p);
static void DupListInternalRep(Tcl_Obj *srcPtr, Tcl_Obj *copyPtr);
static void FreeListInternalRep(Tcl_Obj *listPtr);
static int SetListFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr);
@@ -49,24 +49,24 @@ const Tcl_ObjType tclListType = {
/* Macros to manipulate the List internal rep */
-#define ListSetIntRep(objPtr, listRepPtr) \
+#define ListSetInternalRep(objPtr, listRepPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (listRepPtr); \
ir.twoPtrValue.ptr2 = NULL; \
(listRepPtr)->refCount++; \
- Tcl_StoreIntRep((objPtr), &tclListType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &tclListType, &ir); \
} while (0)
-#define ListGetIntRep(objPtr, listRepPtr) \
+#define ListGetInternalRep(objPtr, listRepPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &tclListType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &tclListType); \
(listRepPtr) = irPtr ? (List *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
-#define ListResetIntRep(objPtr, listRepPtr) \
- TclFetchIntRep((objPtr), &tclListType)->twoPtrValue.ptr1 = (listRepPtr)
+#define ListResetInternalRep(objPtr, listRepPtr) \
+ TclFetchInternalRep((objPtr), &tclListType)->twoPtrValue.ptr1 = (listRepPtr)
#ifndef TCL_MIN_ELEMENT_GROWTH
#define TCL_MIN_ELEMENT_GROWTH TCL_MIN_GROWTH/sizeof(Tcl_Obj *)
@@ -75,7 +75,7 @@ const Tcl_ObjType tclListType = {
/*
*----------------------------------------------------------------------
*
- * NewListIntRep --
+ * NewListInternalRep --
*
* Creates a list internal rep with space for objc elements. objc
* must be > 0. If objv!=NULL, initializes with the first objc values
@@ -96,7 +96,7 @@ const Tcl_ObjType tclListType = {
*/
static List *
-NewListIntRep(
+NewListInternalRep(
int objc,
Tcl_Obj *const objv[],
int p)
@@ -104,7 +104,7 @@ NewListIntRep(
List *listRepPtr;
if (objc <= 0) {
- Tcl_Panic("NewListIntRep: expects postive element count");
+ Tcl_Panic("NewListInternalRep: expects postive element count");
}
/*
@@ -179,7 +179,7 @@ AttemptNewList(
int objc,
Tcl_Obj *const objv[])
{
- List *listRepPtr = NewListIntRep(objc, objv, 0);
+ List *listRepPtr = NewListInternalRep(objc, objv, 0);
if (interp != NULL && listRepPtr == NULL) {
if (objc > LIST_MAX) {
@@ -253,14 +253,14 @@ Tcl_NewListObj(
* Create the internal rep.
*/
- listRepPtr = NewListIntRep(objc, objv, 1);
+ listRepPtr = NewListInternalRep(objc, objv, 1);
/*
* Now create the object.
*/
TclInvalidateStringRep(listPtr);
- ListSetIntRep(listPtr, listRepPtr);
+ ListSetInternalRep(listPtr, listRepPtr);
return listPtr;
}
#endif /* if TCL_MEM_DEBUG */
@@ -318,14 +318,14 @@ Tcl_DbNewListObj(
* Create the internal rep.
*/
- listRepPtr = NewListIntRep(objc, objv, 1);
+ listRepPtr = NewListInternalRep(objc, objv, 1);
/*
* Now create the object.
*/
TclInvalidateStringRep(listPtr);
- ListSetIntRep(listPtr, listRepPtr);
+ ListSetInternalRep(listPtr, listRepPtr);
return listPtr;
}
@@ -381,7 +381,7 @@ Tcl_SetListObj(
* Free any old string rep and any internal rep for the old type.
*/
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
TclInvalidateStringRep(objPtr);
/*
@@ -391,8 +391,8 @@ Tcl_SetListObj(
*/
if (objc > 0) {
- listRepPtr = NewListIntRep(objc, objv, 1);
- ListSetIntRep(objPtr, listRepPtr);
+ listRepPtr = NewListInternalRep(objc, objv, 1);
+ ListSetInternalRep(objPtr, listRepPtr);
} else {
Tcl_InitStringRep(objPtr, NULL, 0);
}
@@ -428,7 +428,7 @@ TclListObjCopy(
Tcl_Obj *copyPtr;
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (NULL == listRepPtr) {
if (SetListFromAny(interp, listPtr) != TCL_OK) {
return NULL;
@@ -566,7 +566,7 @@ Tcl_ListObjGetElements(
{
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int result, length;
@@ -581,7 +581,7 @@ Tcl_ListObjGetElements(
if (result != TCL_OK) {
return result;
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
*objcPtr = listRepPtr->elemCount;
*objvPtr = &listRepPtr->elements;
@@ -680,7 +680,7 @@ Tcl_ListObjAppendElement(
Tcl_Panic("%s called with shared object", "Tcl_ListObjAppendElement");
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int result, length;
@@ -693,7 +693,7 @@ Tcl_ListObjAppendElement(
if (result != TCL_OK) {
return result;
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
numElems = listRepPtr->elemCount;
@@ -713,7 +713,7 @@ Tcl_ListObjAppendElement(
if (needGrow && !isShared) {
/*
- * Need to grow + unshared intrep => try to realloc
+ * Need to grow + unshared internalrep => try to realloc
*/
attempt = 2 * numRequired;
@@ -741,8 +741,8 @@ Tcl_ListObjAppendElement(
Tcl_Obj **dst, **src = &listRepPtr->elements;
/*
- * Either we have a shared intrep and we must copy to write, or we
- * need to grow and realloc attempts failed. Attempt intrep copy.
+ * Either we have a shared internalrep and we must copy to write, or we
+ * need to grow and realloc attempts failed. Attempt internalrep copy.
*/
attempt = 2 * numRequired;
@@ -773,7 +773,7 @@ Tcl_ListObjAppendElement(
if (isShared) {
/*
- * The original intrep must remain undisturbed. Copy into the new
+ * The original internalrep must remain undisturbed. Copy into the new
* one and bump refcounts
*/
while (numElems--) {
@@ -783,7 +783,7 @@ Tcl_ListObjAppendElement(
listRepPtr->refCount--;
} else {
/*
- * Old intrep to be freed, re-use refCounts.
+ * Old internalrep to be freed, re-use refCounts.
*/
memcpy(dst, src, numElems * sizeof(Tcl_Obj *));
@@ -791,10 +791,10 @@ Tcl_ListObjAppendElement(
}
listRepPtr = newPtr;
}
- ListResetIntRep(listPtr, listRepPtr);
+ ListResetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount++;
- TclFreeIntRep(listPtr);
- ListSetIntRep(listPtr, listRepPtr);
+ TclFreeInternalRep(listPtr);
+ ListSetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount--;
/*
@@ -850,7 +850,7 @@ Tcl_ListObjIndex(
{
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int result, length;
@@ -863,7 +863,7 @@ Tcl_ListObjIndex(
if (result != TCL_OK) {
return result;
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
if ((index < 0) || (index >= listRepPtr->elemCount)) {
@@ -905,7 +905,7 @@ Tcl_ListObjLength(
{
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int result, length;
@@ -918,7 +918,7 @@ Tcl_ListObjLength(
if (result != TCL_OK) {
return result;
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
*intPtr = listRepPtr->elemCount;
@@ -981,7 +981,7 @@ Tcl_ListObjReplace(
Tcl_Panic("%s called with shared object", "Tcl_ListObjReplace");
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int length;
@@ -998,7 +998,7 @@ Tcl_ListObjReplace(
return result;
}
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
/*
@@ -1062,7 +1062,7 @@ Tcl_ListObjReplace(
}
if (newPtr) {
listRepPtr = newPtr;
- ListResetIntRep(listPtr, listRepPtr);
+ ListResetInternalRep(listPtr, listRepPtr);
elemPtrs = &listRepPtr->elements;
listRepPtr->maxElemCount = attempt;
needGrow = numRequired > listRepPtr->maxElemCount;
@@ -1135,7 +1135,7 @@ Tcl_ListObjReplace(
}
}
- ListResetIntRep(listPtr, listRepPtr);
+ ListResetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount++;
elemPtrs = &listRepPtr->elements;
@@ -1213,8 +1213,8 @@ Tcl_ListObjReplace(
*/
listRepPtr->refCount++;
- TclFreeIntRep(listPtr);
- ListSetIntRep(listPtr, listRepPtr);
+ TclFreeInternalRep(listPtr);
+ ListSetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount--;
TclInvalidateStringRep(listPtr);
@@ -1240,7 +1240,7 @@ Tcl_ListObjReplace(
* This procedure is implemented entirely as a wrapper around
* TclLindexFlat. All it does is reconfigure the argument format into the
* form required by TclLindexFlat, while taking care to manage shimmering
- * in such a way that we tend to keep the most useful intreps and/or
+ * in such a way that we tend to keep the most useful internalreps and/or
* avoid the most expensive conversions.
*
*----------------------------------------------------------------------
@@ -1263,7 +1263,7 @@ TclLindexList(
* shimmering; see TIP#22 and TIP#33 for the details.
*/
- ListGetIntRep(argPtr, listRepPtr);
+ ListGetInternalRep(argPtr, listRepPtr);
if ((listRepPtr == NULL)
&& TclGetIntForIndexM(NULL , argPtr, INT_MAX - 1, &index) == TCL_OK) {
/*
@@ -1295,7 +1295,7 @@ TclLindexList(
return TclLindexFlat(interp, listPtr, 1, &argPtr);
}
- ListGetIntRep(indexListCopy, listRepPtr);
+ ListGetInternalRep(indexListCopy, listRepPtr);
assert(listRepPtr != NULL);
@@ -1418,7 +1418,7 @@ TclLindexFlat(
* This procedure is implemented entirely as a wrapper around
* TclLsetFlat. All it does is reconfigure the argument format into the
* form required by TclLsetFlat, while taking care to manage shimmering
- * in such a way that we tend to keep the most useful intreps and/or
+ * in such a way that we tend to keep the most useful internalreps and/or
* avoid the most expensive conversions.
*
*----------------------------------------------------------------------
@@ -1444,7 +1444,7 @@ TclLsetList(
* shimmering; see TIP #22 and #23 for details.
*/
- ListGetIntRep(indexArgPtr, listRepPtr);
+ ListGetInternalRep(indexArgPtr, listRepPtr);
if (listRepPtr == NULL
&& TclGetIntForIndexM(NULL, indexArgPtr, INT_MAX - 1, &index) == TCL_OK) {
/*
@@ -1531,7 +1531,7 @@ TclLsetFlat(
{
int index, result, len;
Tcl_Obj *subListPtr, *retValuePtr, *chainPtr;
- Tcl_ObjIntRep *irPtr;
+ Tcl_ObjInternalRep *irPtr;
/*
* If there are no indices, simply return the new value. (Without
@@ -1636,8 +1636,8 @@ TclLsetFlat(
/*
* Replace the original elemPtr[index] in parentList with a copy
* we know to be unshared. This call will also deal with the
- * situation where parentList shares its intrep with other
- * Tcl_Obj's. Dealing with the shared intrep case can cause
+ * situation where parentList shares its internalrep with other
+ * Tcl_Obj's. Dealing with the shared internalrep case can cause
* subListPtr to become shared again, so detect that case and make
* and store another copy.
*/
@@ -1662,11 +1662,11 @@ TclLsetFlat(
* variable. Later on, when we set valuePtr in its proper place,
* then all containing lists will have their values changed, and
* will need their string reps spoiled. We maintain a list of all
- * those Tcl_Obj's (via a little intrep surgery) so we can spoil
+ * those Tcl_Obj's (via a little internalrep surgery) so we can spoil
* them at that time.
*/
- irPtr = TclFetchIntRep(parentList, &tclListType);
+ irPtr = TclFetchInternalRep(parentList, &tclListType);
irPtr->twoPtrValue.ptr2 = chainPtr;
chainPtr = parentList;
}
@@ -1684,10 +1684,10 @@ TclLsetFlat(
List *listRepPtr;
/*
- * Clear away our intrep surgery mess.
+ * Clear away our internalrep surgery mess.
*/
- irPtr = TclFetchIntRep(objPtr, &tclListType);
+ irPtr = TclFetchInternalRep(objPtr, &tclListType);
listRepPtr = (List *)irPtr->twoPtrValue.ptr1;
chainPtr = (Tcl_Obj *)irPtr->twoPtrValue.ptr2;
@@ -1699,8 +1699,8 @@ TclLsetFlat(
*/
listRepPtr->refCount++;
- TclFreeIntRep(objPtr);
- ListSetIntRep(objPtr, listRepPtr);
+ TclFreeInternalRep(objPtr);
+ ListSetInternalRep(objPtr, listRepPtr);
listRepPtr->refCount--;
TclInvalidateStringRep(objPtr);
@@ -1793,7 +1793,7 @@ TclListObjSetElement(
Tcl_Panic("%s called with shared object", "TclListObjSetElement");
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
if (listRepPtr == NULL) {
int result, length;
@@ -1811,7 +1811,7 @@ TclListObjSetElement(
if (result != TCL_OK) {
return result;
}
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
}
elemCount = listRepPtr->elemCount;
@@ -1857,7 +1857,7 @@ TclListObjSetElement(
listRepPtr->refCount--;
listRepPtr = newPtr;
- ListResetIntRep(listPtr, listRepPtr);
+ ListResetInternalRep(listPtr, listRepPtr);
}
elemPtrs = &listRepPtr->elements;
@@ -1880,13 +1880,13 @@ TclListObjSetElement(
elemPtrs[index] = valuePtr;
/*
- * Invalidate outdated intreps.
+ * Invalidate outdated internalreps.
*/
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount++;
- TclFreeIntRep(listPtr);
- ListSetIntRep(listPtr, listRepPtr);
+ TclFreeInternalRep(listPtr);
+ ListSetInternalRep(listPtr, listRepPtr);
listRepPtr->refCount--;
TclInvalidateStringRep(listPtr);
@@ -1918,7 +1918,7 @@ FreeListInternalRep(
{
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
assert(listRepPtr != NULL);
if (listRepPtr->refCount-- <= 1) {
@@ -1956,9 +1956,9 @@ DupListInternalRep(
{
List *listRepPtr;
- ListGetIntRep(srcPtr, listRepPtr);
+ ListGetInternalRep(srcPtr, listRepPtr);
assert(listRepPtr != NULL);
- ListSetIntRep(copyPtr, listRepPtr);
+ ListSetInternalRep(copyPtr, listRepPtr);
}
/*
@@ -1996,7 +1996,7 @@ SetListFromAny(
* describe duplicate keys).
*/
- if (!TclHasStringRep(objPtr) && TclHasIntRep(objPtr, &tclDictType)) {
+ if (!TclHasStringRep(objPtr) && TclHasInternalRep(objPtr, &tclDictType)) {
Tcl_Obj *keyPtr, *valuePtr;
Tcl_DictSearch search;
int done, size;
@@ -2099,7 +2099,7 @@ SetListFromAny(
* Tcl_GetStringFromObj, to use the old internalRep.
*/
- ListSetIntRep(objPtr, listRepPtr);
+ ListSetInternalRep(objPtr, listRepPtr);
return TCL_OK;
}
@@ -2136,7 +2136,7 @@ UpdateStringOfList(
Tcl_Obj **elemPtrs;
List *listRepPtr;
- ListGetIntRep(listPtr, listRepPtr);
+ ListGetInternalRep(listPtr, listRepPtr);
assert(listRepPtr != NULL);
diff --git a/generic/tclLiteral.c b/generic/tclLiteral.c
index fe1b00d..e1943a1 100644
--- a/generic/tclLiteral.c
+++ b/generic/tclLiteral.c
@@ -1045,7 +1045,7 @@ RebuildLiteralTable(
*
* Side effects:
* Resets the internal representation of the CmdName Tcl_Obj
- * using TclFreeIntRep().
+ * using TclFreeInternalRep().
*
*----------------------------------------------------------------------
*/
@@ -1064,8 +1064,8 @@ TclInvalidateCmdLiteral(
strlen(name), -1, NULL, nsPtr, 0, NULL);
if (literalObjPtr != NULL) {
- if (TclHasIntRep(literalObjPtr, &tclCmdNameType)) {
- TclFreeIntRep(literalObjPtr);
+ if (TclHasInternalRep(literalObjPtr, &tclCmdNameType)) {
+ TclFreeInternalRep(literalObjPtr);
}
/* Balance the refcount effects of TclCreateLiteral() above */
Tcl_IncrRefCount(literalObjPtr);
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c
index 5dc9659..639dff2 100644
--- a/generic/tclNamesp.c
+++ b/generic/tclNamesp.c
@@ -133,19 +133,19 @@ static const Tcl_ObjType nsNameType = {
SetNsNameFromAny /* setFromAnyProc */
};
-#define NsNameSetIntRep(objPtr, nnPtr) \
+#define NsNameSetInternalRep(objPtr, nnPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
(nnPtr)->refCount++; \
ir.twoPtrValue.ptr1 = (nnPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &nsNameType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &nsNameType, &ir); \
} while (0)
-#define NsNameGetIntRep(objPtr, nnPtr) \
+#define NsNameGetInternalRep(objPtr, nnPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &nsNameType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &nsNameType); \
(nnPtr) = irPtr ? (ResolvedNsName *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -2928,7 +2928,7 @@ GetNamespaceFromObj(
{
ResolvedNsName *resNamePtr;
- NsNameGetIntRep(objPtr, resNamePtr);
+ NsNameGetInternalRep(objPtr, resNamePtr);
if (resNamePtr) {
Namespace *nsPtr, *refNsPtr;
@@ -2945,10 +2945,10 @@ GetNamespaceFromObj(
*nsPtrPtr = (Tcl_Namespace *) nsPtr;
return TCL_OK;
}
- Tcl_StoreIntRep(objPtr, &nsNameType, NULL);
+ Tcl_StoreInternalRep(objPtr, &nsNameType, NULL);
}
if (SetNsNameFromAny(interp, objPtr) == TCL_OK) {
- NsNameGetIntRep(objPtr, resNamePtr);
+ NsNameGetInternalRep(objPtr, resNamePtr);
assert(resNamePtr != NULL);
*nsPtrPtr = (Tcl_Namespace *) resNamePtr->nsPtr;
return TCL_OK;
@@ -4722,7 +4722,7 @@ FreeNsNameInternalRep(
{
ResolvedNsName *resNamePtr;
- NsNameGetIntRep(objPtr, resNamePtr);
+ NsNameGetInternalRep(objPtr, resNamePtr);
assert(resNamePtr != NULL);
/*
@@ -4768,9 +4768,9 @@ DupNsNameInternalRep(
{
ResolvedNsName *resNamePtr;
- NsNameGetIntRep(srcPtr, resNamePtr);
+ NsNameGetInternalRep(srcPtr, resNamePtr);
assert(resNamePtr != NULL);
- NsNameSetIntRep(copyPtr, resNamePtr);
+ NsNameSetInternalRep(copyPtr, resNamePtr);
}
/*
@@ -4833,7 +4833,7 @@ SetNsNameFromAny(
resNamePtr->refNsPtr = (Namespace *) TclGetCurrentNamespace(interp);
}
resNamePtr->refCount = 0;
- NsNameSetIntRep(objPtr, resNamePtr);
+ NsNameSetInternalRep(objPtr, resNamePtr);
return TCL_OK;
}
@@ -4921,8 +4921,9 @@ TclLogCommandInfo(
* command (must be <= command). */
const char *command, /* First character in command that generated
* the error. */
- int length, /* Number of bytes in command (-1 means use
- * all bytes up to first null byte). */
+ int length, /* Number of bytes in command (TCL_INDEX_NONE
+ * means use all bytes up to first null byte).
+ */
const unsigned char *pc, /* Current pc of bytecode execution context */
Tcl_Obj **tosPtr) /* Current stack of bytecode execution
* context */
@@ -5012,7 +5013,7 @@ TclLogCommandInfo(
Tcl_ListObjLength(interp, iPtr->errorStack, &len);
/*
- * Reset while keeping the list intrep as much as possible.
+ * Reset while keeping the list internalrep as much as possible.
*/
Tcl_ListObjReplace(interp, iPtr->errorStack, 0, len, 0, NULL);
@@ -5097,7 +5098,7 @@ TclErrorStackResetIf(
Tcl_ListObjLength(interp, iPtr->errorStack, &len);
/*
- * Reset while keeping the list intrep as much as possible.
+ * Reset while keeping the list internalrep as much as possible.
*/
Tcl_ListObjReplace(interp, iPtr->errorStack, 0, len, 0, NULL);
diff --git a/generic/tclOO.c b/generic/tclOO.c
index 405d5d0..bdceec4 100644
--- a/generic/tclOO.c
+++ b/generic/tclOO.c
@@ -3144,6 +3144,26 @@ Tcl_ObjectSetMethodNameMapper(
{
((Object *) object)->mapMethodNameProc = mapMethodNameProc;
}
+
+Tcl_Class
+Tcl_GetClassOfObject(
+ Tcl_Object object)
+{
+ return (Tcl_Class) ((Object *) object)->selfCls;
+}
+
+Tcl_Obj *
+Tcl_GetObjectClassName(
+ Tcl_Interp *interp,
+ Tcl_Object object)
+{
+ Tcl_Object classObj = (Tcl_Object) (((Object *) object)->selfCls)->thisPtr;
+
+ if (classObj == NULL) {
+ return NULL;
+ }
+ return Tcl_GetObjectName(interp, classObj);
+}
/*
* Local Variables:
diff --git a/generic/tclOO.decls b/generic/tclOO.decls
index 4602460..e4063c7 100644
--- a/generic/tclOO.decls
+++ b/generic/tclOO.decls
@@ -129,6 +129,12 @@ declare 28 {
declare 29 {
int Tcl_MethodIsPrivate(Tcl_Method method)
}
+declare 30 {
+ Tcl_Class Tcl_GetClassOfObject(Tcl_Object object)
+}
+declare 31 {
+ Tcl_Obj *Tcl_GetObjectClassName(Tcl_Interp *interp, Tcl_Object object)
+}
######################################################################
# Private API, exposed to support advanced OO systems that plug in on top of
diff --git a/generic/tclOOCall.c b/generic/tclOOCall.c
index b7df93e..71db6c1 100644
--- a/generic/tclOOCall.c
+++ b/generic/tclOOCall.c
@@ -247,12 +247,12 @@ StashCallChain(
Tcl_Obj *objPtr,
CallChain *callPtr)
{
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
callPtr->refCount++;
TclGetString(objPtr);
ir.twoPtrValue.ptr1 = callPtr;
- Tcl_StoreIntRep(objPtr, &methodNameType, &ir);
+ Tcl_StoreInternalRep(objPtr, &methodNameType, &ir);
}
void
@@ -280,7 +280,7 @@ DupMethodNameRep(
Tcl_Obj *dstPtr)
{
StashCallChain(dstPtr,
- (CallChain *)TclFetchIntRep(srcPtr, &methodNameType)->twoPtrValue.ptr1);
+ (CallChain *)TclFetchInternalRep(srcPtr, &methodNameType)->twoPtrValue.ptr1);
}
static void
@@ -288,7 +288,7 @@ FreeMethodNameRep(
Tcl_Obj *objPtr)
{
TclOODeleteChain(
- (CallChain *)TclFetchIntRep(objPtr, &methodNameType)->twoPtrValue.ptr1);
+ (CallChain *)TclFetchInternalRep(objPtr, &methodNameType)->twoPtrValue.ptr1);
}
/*
@@ -1189,16 +1189,16 @@ TclOOGetCallContext(
* the object, and in the class).
*/
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
const int reuseMask = (WANT_PUBLIC(flags) ? ~0 : ~PUBLIC_METHOD);
- if ((irPtr = TclFetchIntRep(cacheInThisObj, &methodNameType))) {
+ if ((irPtr = TclFetchInternalRep(cacheInThisObj, &methodNameType))) {
callPtr = (CallChain *)irPtr->twoPtrValue.ptr1;
if (IsStillValid(callPtr, oPtr, flags, reuseMask)) {
callPtr->refCount++;
goto returnContext;
}
- Tcl_StoreIntRep(cacheInThisObj, &methodNameType, NULL);
+ Tcl_StoreInternalRep(cacheInThisObj, &methodNameType, NULL);
}
if (oPtr->flags & USE_CLASS_CACHE) {
diff --git a/generic/tclOODecls.h b/generic/tclOODecls.h
index 928d07e..3be1e3d 100644
--- a/generic/tclOODecls.h
+++ b/generic/tclOODecls.h
@@ -118,6 +118,11 @@ TCLAPI Tcl_Obj * Tcl_GetObjectName(Tcl_Interp *interp,
Tcl_Object object);
/* 29 */
TCLAPI int Tcl_MethodIsPrivate(Tcl_Method method);
+/* 30 */
+TCLAPI Tcl_Class Tcl_GetClassOfObject(Tcl_Object object);
+/* 31 */
+TCLAPI Tcl_Obj * Tcl_GetObjectClassName(Tcl_Interp *interp,
+ Tcl_Object object);
typedef struct {
const struct TclOOIntStubs *tclOOIntStubs;
@@ -157,6 +162,8 @@ typedef struct TclOOStubs {
void (*tcl_ClassSetDestructor) (Tcl_Interp *interp, Tcl_Class clazz, Tcl_Method method); /* 27 */
Tcl_Obj * (*tcl_GetObjectName) (Tcl_Interp *interp, Tcl_Object object); /* 28 */
int (*tcl_MethodIsPrivate) (Tcl_Method method); /* 29 */
+ Tcl_Class (*tcl_GetClassOfObject) (Tcl_Object object); /* 30 */
+ Tcl_Obj * (*tcl_GetObjectClassName) (Tcl_Interp *interp, Tcl_Object object); /* 31 */
} TclOOStubs;
extern const TclOOStubs *tclOOStubsPtr;
@@ -231,6 +238,10 @@ extern const TclOOStubs *tclOOStubsPtr;
(tclOOStubsPtr->tcl_GetObjectName) /* 28 */
#define Tcl_MethodIsPrivate \
(tclOOStubsPtr->tcl_MethodIsPrivate) /* 29 */
+#define Tcl_GetClassOfObject \
+ (tclOOStubsPtr->tcl_GetClassOfObject) /* 30 */
+#define Tcl_GetObjectClassName \
+ (tclOOStubsPtr->tcl_GetObjectClassName) /* 31 */
#endif /* defined(USE_TCLOO_STUBS) */
diff --git a/generic/tclOOMethod.c b/generic/tclOOMethod.c
index f111461..1903bb9 100644
--- a/generic/tclOOMethod.c
+++ b/generic/tclOOMethod.c
@@ -859,7 +859,7 @@ PushMethodCallFrame(
* alternative is *so* slow...
*/
- ByteCodeGetIntRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, codePtr);
if (codePtr) {
codePtr->nsPtr = nsPtr;
}
@@ -1338,7 +1338,7 @@ CloneProcedureMethod(
bodyObj = Tcl_DuplicateObj(pmPtr->procPtr->bodyPtr);
Tcl_GetString(bodyObj);
- Tcl_StoreIntRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, NULL);
+ Tcl_StoreInternalRep(pmPtr->procPtr->bodyPtr, &tclByteCodeType, NULL);
/*
* Create the actual copy of the method record, manufacturing a new proc
diff --git a/generic/tclOOStubInit.c b/generic/tclOOStubInit.c
index 5e235f4..b9034f0 100644
--- a/generic/tclOOStubInit.c
+++ b/generic/tclOOStubInit.c
@@ -74,6 +74,8 @@ const TclOOStubs tclOOStubs = {
Tcl_ClassSetDestructor, /* 27 */
Tcl_GetObjectName, /* 28 */
Tcl_MethodIsPrivate, /* 29 */
+ Tcl_GetClassOfObject, /* 30 */
+ Tcl_GetObjectClassName, /* 31 */
};
/* !END!: Do not edit above this line. */
diff --git a/generic/tclObj.c b/generic/tclObj.c
index 421c1da..e5ec838 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -1373,7 +1373,7 @@ TclFreeObj(
PopObjToDelete(context, objToFree);
TCL_DTRACE_OBJ_FREE(objToFree);
- TclFreeIntRep(objToFree);
+ TclFreeInternalRep(objToFree);
Tcl_MutexLock(&tclObjMutex);
ckfree(objToFree);
@@ -1592,7 +1592,7 @@ TclSetDuplicateObj(
Tcl_Panic("%s called with shared object", "TclSetDuplicateObj");
}
TclInvalidateStringRep(dupPtr);
- TclFreeIntRep(dupPtr);
+ TclFreeInternalRep(dupPtr);
SetDuplicateObj(dupPtr, objPtr);
}
@@ -1892,13 +1892,13 @@ Tcl_HasStringRep(
/*
*----------------------------------------------------------------------
*
- * Tcl_StoreIntRep --
+ * Tcl_StoreInternalRep --
*
* This function is called to set the object's internal
* representation to match a particular type.
*
* It is the caller's responsibility to guarantee that
- * the value of the submitted IntRep is in agreement with
+ * the value of the submitted internalrep is in agreement with
* the value of any existing string rep.
*
* Results:
@@ -1912,17 +1912,17 @@ Tcl_HasStringRep(
*/
void
-Tcl_StoreIntRep(
+Tcl_StoreInternalRep(
Tcl_Obj *objPtr, /* Object whose internal rep should be set. */
const Tcl_ObjType *typePtr, /* New type for the object */
- const Tcl_ObjIntRep *irPtr) /* New IntRep for the object */
+ const Tcl_ObjInternalRep *irPtr) /* New internalrep for the object */
{
- /* Clear out any existing IntRep ( "shimmer" ) */
- TclFreeIntRep(objPtr);
+ /* Clear out any existing internalrep ( "shimmer" ) */
+ TclFreeInternalRep(objPtr);
- /* When irPtr == NULL, just leave objPtr with no IntRep for typePtr */
+ /* When irPtr == NULL, just leave objPtr with no internalrep for typePtr */
if (irPtr) {
- /* Copy the new IntRep into place */
+ /* Copy the new internalrep into place */
objPtr->internalRep = *irPtr;
/* Set the type to match */
@@ -1933,13 +1933,13 @@ Tcl_StoreIntRep(
/*
*----------------------------------------------------------------------
*
- * Tcl_FetchIntRep --
+ * Tcl_FetchInternalRep --
*
* This function is called to retrieve the object's internal
* representation matching a requested type, if any.
*
* Results:
- * A read-only pointer to the associated Tcl_ObjIntRep, or
+ * A read-only pointer to the associated Tcl_ObjInternalRep, or
* NULL if no such internal representation exists.
*
* Side effects:
@@ -1949,18 +1949,18 @@ Tcl_StoreIntRep(
*----------------------------------------------------------------------
*/
-Tcl_ObjIntRep *
-Tcl_FetchIntRep(
+Tcl_ObjInternalRep *
+Tcl_FetchInternalRep(
Tcl_Obj *objPtr, /* Object to fetch from. */
const Tcl_ObjType *typePtr) /* Requested type */
{
- return TclFetchIntRep(objPtr, typePtr);
+ return TclFetchInternalRep(objPtr, typePtr);
}
/*
*----------------------------------------------------------------------
*
- * Tcl_FreeIntRep --
+ * Tcl_FreeInternalRep --
*
* This function is called to free an object's internal representation.
*
@@ -1975,10 +1975,10 @@ Tcl_FetchIntRep(
*/
void
-Tcl_FreeIntRep(
+Tcl_FreeInternalRep(
Tcl_Obj *objPtr) /* Object whose internal rep should be freed. */
{
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
}
/*
@@ -2134,7 +2134,7 @@ Tcl_SetBooleanObj(
* result unless "interp" is NULL.
*
* Side effects:
- * The intrep of *objPtr may be changed.
+ * The internalrep of *objPtr may be changed.
*
*----------------------------------------------------------------------
*/
@@ -2157,7 +2157,7 @@ Tcl_GetBooleanFromObj(
if (objPtr->typePtr == &tclDoubleType) {
/*
* Caution: Don't be tempted to check directly for the "double"
- * Tcl_ObjType and then compare the intrep to 0.0. This isn't
+ * Tcl_ObjType and then compare the internalrep to 0.0. This isn't
* reliable because a "double" Tcl_ObjType can hold the NaN value.
* Use the API Tcl_GetDoubleFromObj, which does the checking and
* sets the proper error message for us.
@@ -2357,13 +2357,13 @@ ParseBoolean(
*/
goodBoolean:
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objPtr->internalRep.longValue = newBool;
objPtr->typePtr = &tclBooleanType;
return TCL_OK;
numericBoolean:
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objPtr->internalRep.wideValue = newBool;
objPtr->typePtr = &tclIntType;
return TCL_OK;
@@ -3639,7 +3639,7 @@ GetBignumFromObj(
}
} else {
TclUnpackBignum(objPtr, *bignumValue);
- /* Optimized TclFreeIntRep */
+ /* Optimized TclFreeInternalRep */
objPtr->internalRep.twoPtrValue.ptr1 = NULL;
objPtr->internalRep.twoPtrValue.ptr2 = NULL;
objPtr->typePtr = NULL;
@@ -3793,14 +3793,14 @@ Tcl_SetBignumObj(
return;
tooLargeForWide:
TclInvalidateStringRep(objPtr);
- TclFreeIntRep(objPtr);
- TclSetBignumIntRep(objPtr, bignumValue);
+ TclFreeInternalRep(objPtr);
+ TclSetBignumInternalRep(objPtr, bignumValue);
}
/*
*----------------------------------------------------------------------
*
- * TclSetBignumIntRep --
+ * TclSetBignumInternalRep --
*
* Install a bignum into the internal representation of an object.
*
@@ -3816,7 +3816,7 @@ Tcl_SetBignumObj(
*/
void
-TclSetBignumIntRep(
+TclSetBignumInternalRep(
Tcl_Obj *objPtr,
void *big)
{
@@ -4554,7 +4554,7 @@ SetCmdNameObj(
}
if (resPtr == NULL) {
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objPtr->internalRep.twoPtrValue.ptr1 = fillPtr;
objPtr->internalRep.twoPtrValue.ptr2 = NULL;
diff --git a/generic/tclPathObj.c b/generic/tclPathObj.c
index e4826ad..b5207a1 100644
--- a/generic/tclPathObj.c
+++ b/generic/tclPathObj.c
@@ -85,13 +85,13 @@ typedef struct FsPath {
* fields.
*/
-#define PATHOBJ(pathPtr) ((FsPath *) (TclFetchIntRep((pathPtr), &fsPathType)->twoPtrValue.ptr1))
+#define PATHOBJ(pathPtr) ((FsPath *) (TclFetchInternalRep((pathPtr), &fsPathType)->twoPtrValue.ptr1))
#define SETPATHOBJ(pathPtr,fsPathPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (void *) (fsPathPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((pathPtr), &fsPathType, &ir); \
+ Tcl_StoreInternalRep((pathPtr), &fsPathType, &ir); \
} while (0)
#define PATHFLAGS(pathPtr) (PATHOBJ(pathPtr)->flags)
@@ -544,7 +544,7 @@ TclPathPart(
Tcl_Obj *pathPtr, /* Path to take dirname of */
Tcl_PathPart portion) /* Requested portion of name */
{
- if (TclHasIntRep(pathPtr, &fsPathType)) {
+ if (TclHasInternalRep(pathPtr, &fsPathType)) {
FsPath *fsPathPtr = PATHOBJ(pathPtr);
if (PATHFLAGS(pathPtr) != 0) {
@@ -843,7 +843,7 @@ TclJoinPath(
if (elements == 2) {
Tcl_Obj *elt = objv[0];
- Tcl_ObjIntRep *eltIr = TclFetchIntRep(elt, &fsPathType);
+ Tcl_ObjInternalRep *eltIr = TclFetchInternalRep(elt, &fsPathType);
/*
* This is a special case where we can be much more efficient, where
@@ -1149,13 +1149,13 @@ Tcl_FSConvertToPathType(
* path.
*/
- if (TclHasIntRep(pathPtr, &fsPathType)) {
+ if (TclHasInternalRep(pathPtr, &fsPathType)) {
if (TclFSEpochOk(PATHOBJ(pathPtr)->filesystemEpoch)) {
return TCL_OK;
}
TclGetString(pathPtr);
- Tcl_StoreIntRep(pathPtr, &fsPathType, NULL);
+ Tcl_StoreInternalRep(pathPtr, &fsPathType, NULL);
}
return SetFsPathFromAny(interp, pathPtr);
@@ -1349,7 +1349,7 @@ AppendPath(
* that use some character other than "/" as a path separator. I know
* of no evidence that such a foolish thing exists. This solution was
* chosen so that "JoinPath" operations that pass through either path
- * intrep produce the same results; that is, bugward compatibility. If
+ * internalrep produce the same results; that is, bugward compatibility. If
* we need to fix that bug here, it needs fixing in TclJoinPath() too.
*/
bytes = TclGetStringFromObj(tail, &numBytes);
@@ -1391,7 +1391,7 @@ TclFSMakePathRelative(
{
int cwdLen, len;
const char *tempStr;
- Tcl_ObjIntRep *irPtr = TclFetchIntRep(pathPtr, &fsPathType);
+ Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(pathPtr, &fsPathType);
if (irPtr) {
FsPath *fsPathPtr = PATHOBJ(pathPtr);
@@ -1461,7 +1461,7 @@ MakePathFromNormalized(
{
FsPath *fsPathPtr;
- if (TclHasIntRep(pathPtr, &fsPathType)) {
+ if (TclHasInternalRep(pathPtr, &fsPathType)) {
return TCL_OK;
}
@@ -1532,7 +1532,7 @@ Tcl_FSNewNativePath(
* safe.
*/
- Tcl_StoreIntRep(pathPtr, &fsPathType, NULL);
+ Tcl_StoreInternalRep(pathPtr, &fsPathType, NULL);
fsPathPtr = (FsPath *)ckalloc(sizeof(FsPath));
fsPathPtr->translatedPathPtr = NULL;
@@ -1598,7 +1598,7 @@ Tcl_FSGetTranslatedPath(
Tcl_Obj *translatedCwdPtr = Tcl_FSGetTranslatedPath(interp,
srcFsPathPtr->cwdPtr);
- Tcl_ObjIntRep *translatedCwdIrPtr;
+ Tcl_ObjInternalRep *translatedCwdIrPtr;
if (translatedCwdPtr == NULL) {
return NULL;
@@ -1607,7 +1607,7 @@ Tcl_FSGetTranslatedPath(
retObj = Tcl_FSJoinToPath(translatedCwdPtr, 1,
&srcFsPathPtr->normPathPtr);
Tcl_IncrRefCount(srcFsPathPtr->translatedPathPtr = retObj);
- translatedCwdIrPtr = TclFetchIntRep(translatedCwdPtr, &fsPathType);
+ translatedCwdIrPtr = TclFetchInternalRep(translatedCwdPtr, &fsPathType);
if (translatedCwdIrPtr) {
srcFsPathPtr->filesystemEpoch
= PATHOBJ(translatedCwdPtr)->filesystemEpoch;
@@ -1802,7 +1802,7 @@ Tcl_FSGetNormalizedPath(
if (fsPathPtr->cwdPtr != NULL) {
if (!TclFSCwdPointerEquals(&fsPathPtr->cwdPtr)) {
TclGetString(pathPtr);
- Tcl_StoreIntRep(pathPtr, &fsPathType, NULL);
+ Tcl_StoreInternalRep(pathPtr, &fsPathType, NULL);
if (SetFsPathFromAny(interp, pathPtr) != TCL_OK) {
return NULL;
}
@@ -2048,7 +2048,7 @@ TclFSEnsureEpochOk(
{
FsPath *srcFsPathPtr;
- if (!TclHasIntRep(pathPtr, &fsPathType)) {
+ if (!TclHasInternalRep(pathPtr, &fsPathType)) {
return TCL_OK;
}
@@ -2062,7 +2062,7 @@ TclFSEnsureEpochOk(
*/
TclGetString(pathPtr);
- Tcl_StoreIntRep(pathPtr, &fsPathType, NULL);
+ Tcl_StoreInternalRep(pathPtr, &fsPathType, NULL);
if (SetFsPathFromAny(NULL, pathPtr) != TCL_OK) {
return TCL_ERROR;
}
@@ -2106,7 +2106,7 @@ TclFSSetPathDetails(
* Make sure pathPtr is of the correct type.
*/
- if (!TclHasIntRep(pathPtr, &fsPathType)) {
+ if (!TclHasInternalRep(pathPtr, &fsPathType)) {
if (SetFsPathFromAny(NULL, pathPtr) != TCL_OK) {
return;
}
@@ -2206,7 +2206,7 @@ SetFsPathFromAny(
Tcl_Obj *transPtr;
const char *name;
- if (TclHasIntRep(pathPtr, &fsPathType)) {
+ if (TclHasInternalRep(pathPtr, &fsPathType)) {
return TCL_OK;
}
@@ -2519,7 +2519,7 @@ TclNativePathInFilesystem(
* semantics of Tcl (at present anyway), so we have to abide by them here.
*/
- if (TclHasIntRep(pathPtr, &fsPathType)) {
+ if (TclHasInternalRep(pathPtr, &fsPathType)) {
if (pathPtr->bytes != NULL && pathPtr->bytes[0] == '\0') {
/*
* We reject the empty path "".
diff --git a/generic/tclProc.c b/generic/tclProc.c
index b3de29a..306f04c 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -67,19 +67,19 @@ const Tcl_ObjType tclProcBodyType = {
* should panic instead. */
};
-#define ProcSetIntRep(objPtr, procPtr) \
+#define ProcSetInternalRep(objPtr, procPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
(procPtr)->refCount++; \
ir.twoPtrValue.ptr1 = (procPtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &tclProcBodyType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &tclProcBodyType, &ir); \
} while (0)
-#define ProcGetIntRep(objPtr, procPtr) \
+#define ProcGetInternalRep(objPtr, procPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &tclProcBodyType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &tclProcBodyType); \
(procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -113,19 +113,19 @@ static const Tcl_ObjType lambdaType = {
SetLambdaFromAny /* setFromAnyProc */
};
-#define LambdaSetIntRep(objPtr, procPtr, nsObjPtr) \
+#define LambdaSetInternalRep(objPtr, procPtr, nsObjPtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
ir.twoPtrValue.ptr1 = (procPtr); \
ir.twoPtrValue.ptr2 = (nsObjPtr); \
Tcl_IncrRefCount((nsObjPtr)); \
- Tcl_StoreIntRep((objPtr), &lambdaType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &lambdaType, &ir); \
} while (0)
-#define LambdaGetIntRep(objPtr, procPtr, nsObjPtr) \
+#define LambdaGetInternalRep(objPtr, procPtr, nsObjPtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &lambdaType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &lambdaType); \
(procPtr) = irPtr ? (Proc *)irPtr->twoPtrValue.ptr1 : NULL; \
(nsObjPtr) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr2 : NULL; \
} while (0)
@@ -327,7 +327,7 @@ Tcl_ProcObjCmd(
* of all procs whose argument list is just _args_
*/
- if (TclHasIntRep(objv[3], &tclProcBodyType)) {
+ if (TclHasInternalRep(objv[3], &tclProcBodyType)) {
goto done;
}
@@ -409,7 +409,7 @@ TclCreateProc(
Tcl_Obj **argArray;
int precompiled = 0;
- ProcGetIntRep(bodyPtr, procPtr);
+ ProcGetInternalRep(bodyPtr, procPtr);
if (procPtr != NULL) {
/*
* Because the body is a TclProProcBody, the actual body is already
@@ -529,7 +529,7 @@ TclCreateProc(
"FORMALARGUMENTFORMAT", NULL);
goto procError;
}
- if ((fieldCount == 0) || (fieldValues[0]->length == 0)) {
+ if ((fieldCount == 0) || (Tcl_GetCharLength(fieldValues[0]) == 0)) {
Tcl_SetObjResult(interp, Tcl_NewStringObj(
"argument with no name", -1));
Tcl_SetErrorCode(interp, "TCL", "OPERATION", "PROC",
@@ -724,7 +724,7 @@ TclGetFrame(
obj.length = strlen(name);
obj.typePtr = NULL;
result = TclObjGetFrame(interp, &obj, framePtrPtr);
- TclFreeIntRep(&obj);
+ TclFreeInternalRep(&obj);
return result;
}
@@ -762,7 +762,7 @@ TclObjGetFrame(
{
Interp *iPtr = (Interp *) interp;
int curLevel, level, result;
- const Tcl_ObjIntRep *irPtr;
+ const Tcl_ObjInternalRep *irPtr;
const char *name = NULL;
Tcl_WideInt w;
@@ -788,7 +788,7 @@ TclObjGetFrame(
level = curLevel - level;
result = 1;
}
- } else if ((irPtr = TclFetchIntRep(objPtr, &levelReferenceType))) {
+ } else if ((irPtr = TclFetchInternalRep(objPtr, &levelReferenceType))) {
level = irPtr->wideValue;
result = 1;
} else {
@@ -798,10 +798,10 @@ TclObjGetFrame(
if (level < 0 || (level > 0 && name[1] == '-')) {
result = -1;
} else {
- Tcl_ObjIntRep ir;
+ Tcl_ObjInternalRep ir;
ir.wideValue = level;
- Tcl_StoreIntRep(objPtr, &levelReferenceType, &ir);
+ Tcl_StoreInternalRep(objPtr, &levelReferenceType, &ir);
result = 1;
}
} else {
@@ -1151,7 +1151,7 @@ TclInitCompiledLocals(
ByteCode *codePtr;
bodyPtr = framePtr->procPtr->bodyPtr;
- ByteCodeGetIntRep(bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(bodyPtr, &tclByteCodeType, codePtr);
if (codePtr == NULL) {
Tcl_Panic("body object for proc attached to frame is not a byte code type");
}
@@ -1327,7 +1327,7 @@ InitLocalCache(
CompiledLocal *localPtr;
int isNew;
- ByteCodeGetIntRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
/*
* Cache the names and initial values of local variables; store the
@@ -1400,7 +1400,7 @@ InitArgsAndLocals(
int localCt = procPtr->numCompiledLocals, numArgs, argCt, i, imax;
Tcl_Obj *const *argObjs;
- ByteCodeGetIntRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
/*
* Make sure that the local cache of variable names and initial values has
@@ -1576,7 +1576,7 @@ TclPushProcCallFrame(
* local variables are found while compiling.
*/
- ByteCodeGetIntRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
if (codePtr != NULL) {
Interp *iPtr = (Interp *) interp;
@@ -1786,7 +1786,7 @@ TclNRInterpProcCore(
*/
procPtr->refCount++;
- ByteCodeGetIntRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(procPtr->bodyPtr, &tclByteCodeType, codePtr);
TclNRAddCallback(interp, InterpProcNR2, procNameObj, errorProc,
NULL, NULL);
@@ -1920,7 +1920,7 @@ TclProcCompileProc(
Tcl_CallFrame *framePtr;
ByteCode *codePtr;
- ByteCodeGetIntRep(bodyPtr, &tclByteCodeType, codePtr);
+ ByteCodeGetInternalRep(bodyPtr, &tclByteCodeType, codePtr);
/*
* If necessary, compile the procedure's body. The compiler will allocate
@@ -1955,7 +1955,7 @@ TclProcCompileProc(
codePtr->compileEpoch = iPtr->compileEpoch;
codePtr->nsPtr = nsPtr;
} else {
- Tcl_StoreIntRep(bodyPtr, &tclByteCodeType, NULL);
+ Tcl_StoreInternalRep(bodyPtr, &tclByteCodeType, NULL);
codePtr = NULL;
}
}
@@ -2312,7 +2312,7 @@ TclNewProcBodyObj(
TclNewObj(objPtr);
if (objPtr) {
- ProcSetIntRep(objPtr, procPtr);
+ ProcSetInternalRep(objPtr, procPtr);
}
return objPtr;
@@ -2341,9 +2341,9 @@ ProcBodyDup(
Tcl_Obj *dupPtr) /* Target object for the duplication. */
{
Proc *procPtr;
- ProcGetIntRep(srcPtr, procPtr);
+ ProcGetInternalRep(srcPtr, procPtr);
- ProcSetIntRep(dupPtr, procPtr);
+ ProcSetInternalRep(dupPtr, procPtr);
}
/*
@@ -2371,7 +2371,7 @@ ProcBodyFree(
{
Proc *procPtr;
- ProcGetIntRep(objPtr, procPtr);
+ ProcGetInternalRep(objPtr, procPtr);
if (procPtr->refCount-- <= 1) {
TclProcCleanupProc(procPtr);
@@ -2400,12 +2400,12 @@ DupLambdaInternalRep(
Proc *procPtr;
Tcl_Obj *nsObjPtr;
- LambdaGetIntRep(srcPtr, procPtr, nsObjPtr);
+ LambdaGetInternalRep(srcPtr, procPtr, nsObjPtr);
assert(procPtr != NULL);
procPtr->refCount++;
- LambdaSetIntRep(copyPtr, procPtr, nsObjPtr);
+ LambdaSetInternalRep(copyPtr, procPtr, nsObjPtr);
}
static void
@@ -2416,7 +2416,7 @@ FreeLambdaInternalRep(
Proc *procPtr;
Tcl_Obj *nsObjPtr;
- LambdaGetIntRep(objPtr, procPtr, nsObjPtr);
+ LambdaGetInternalRep(objPtr, procPtr, nsObjPtr);
assert(procPtr != NULL);
if (procPtr->refCount-- <= 1) {
@@ -2590,7 +2590,7 @@ SetLambdaFromAny(
* conversion to lambdaType.
*/
- LambdaSetIntRep(objPtr, procPtr, nsObjPtr);
+ LambdaSetInternalRep(objPtr, procPtr, nsObjPtr);
return TCL_OK;
}
@@ -2603,13 +2603,13 @@ TclGetLambdaFromObj(
Proc *procPtr;
Tcl_Obj *nsObjPtr;
- LambdaGetIntRep(objPtr, procPtr, nsObjPtr);
+ LambdaGetInternalRep(objPtr, procPtr, nsObjPtr);
if (procPtr == NULL) {
if (SetLambdaFromAny(interp, objPtr) != TCL_OK) {
return NULL;
}
- LambdaGetIntRep(objPtr, procPtr, nsObjPtr);
+ LambdaGetInternalRep(objPtr, procPtr, nsObjPtr);
}
assert(procPtr != NULL);
diff --git a/generic/tclRegexp.c b/generic/tclRegexp.c
index f161782..b7fbb81 100644
--- a/generic/tclRegexp.c
+++ b/generic/tclRegexp.c
@@ -109,19 +109,19 @@ const Tcl_ObjType tclRegexpType = {
SetRegexpFromAny /* setFromAnyProc */
};
-#define RegexpSetIntRep(objPtr, rePtr) \
+#define RegexpSetInternalRep(objPtr, rePtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
(rePtr)->refCount++; \
ir.twoPtrValue.ptr1 = (rePtr); \
ir.twoPtrValue.ptr2 = NULL; \
- Tcl_StoreIntRep((objPtr), &tclRegexpType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &tclRegexpType, &ir); \
} while (0)
-#define RegexpGetIntRep(objPtr, rePtr) \
+#define RegexpGetInternalRep(objPtr, rePtr) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &tclRegexpType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &tclRegexpType); \
(rePtr) = irPtr ? (TclRegexp *)irPtr->twoPtrValue.ptr1 : NULL; \
} while (0)
@@ -598,7 +598,7 @@ Tcl_GetRegExpFromObj(
TclRegexp *regexpPtr;
const char *pattern;
- RegexpGetIntRep(objPtr, regexpPtr);
+ RegexpGetInternalRep(objPtr, regexpPtr);
if ((regexpPtr == NULL) || (regexpPtr->flags != flags)) {
pattern = TclGetStringFromObj(objPtr, &length);
@@ -608,7 +608,7 @@ Tcl_GetRegExpFromObj(
return NULL;
}
- RegexpSetIntRep(objPtr, regexpPtr);
+ RegexpSetInternalRep(objPtr, regexpPtr);
}
return (Tcl_RegExp) regexpPtr;
}
@@ -757,7 +757,7 @@ FreeRegexpInternalRep(
{
TclRegexp *regexpRepPtr;
- RegexpGetIntRep(objPtr, regexpRepPtr);
+ RegexpGetInternalRep(objPtr, regexpRepPtr);
assert(regexpRepPtr != NULL);
@@ -794,11 +794,11 @@ DupRegexpInternalRep(
{
TclRegexp *regexpPtr;
- RegexpGetIntRep(srcPtr, regexpPtr);
+ RegexpGetInternalRep(srcPtr, regexpPtr);
assert(regexpPtr != NULL);
- RegexpSetIntRep(copyPtr, regexpPtr);
+ RegexpSetInternalRep(copyPtr, regexpPtr);
}
/*
diff --git a/generic/tclResult.c b/generic/tclResult.c
index 5b7a8e5..dba57c1 100644
--- a/generic/tclResult.c
+++ b/generic/tclResult.c
@@ -1013,7 +1013,7 @@ ResetObjResult(
objResultPtr->bytes = &tclEmptyString;
objResultPtr->length = 0;
}
- TclFreeIntRep(objResultPtr);
+ TclFreeInternalRep(objResultPtr);
}
}
@@ -1336,7 +1336,7 @@ TclProcessReturn(
Tcl_ListObjLength(interp, iPtr->errorStack, &len);
/*
- * Reset while keeping the list intrep as much as possible.
+ * Reset while keeping the list internalrep as much as possible.
*/
Tcl_ListObjReplace(interp, iPtr->errorStack, 0, len, valueObjc,
diff --git a/generic/tclScan.c b/generic/tclScan.c
index f35b376..5568529 100644
--- a/generic/tclScan.c
+++ b/generic/tclScan.c
@@ -1017,8 +1017,8 @@ Tcl_ScanObjCmd(
double dvalue;
if (Tcl_GetDoubleFromObj(NULL, objPtr, &dvalue) != TCL_OK) {
#ifdef ACCEPT_NAN
- const Tcl_ObjIntRep *irPtr
- = TclFetchIntRep(objPtr, &tclDoubleType);
+ const Tcl_ObjInternalRep *irPtr
+ = TclFetchInternalRep(objPtr, &tclDoubleType);
if (irPtr) {
dvalue = irPtr->doubleValue;
} else
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index b213bed..3cee154 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -553,11 +553,11 @@ TclParseNumber(
if (bytes == NULL) {
if (interp == NULL && endPtrPtr == NULL) {
- if (TclHasIntRep(objPtr, &tclDictType)) {
+ if (TclHasInternalRep(objPtr, &tclDictType)) {
/* A dict can never be a (single) number */
return TCL_ERROR;
}
- if (TclHasIntRep(objPtr, &tclListType)) {
+ if (TclHasInternalRep(objPtr, &tclListType)) {
int length;
/* A list can only be a (single) number if its length == 1 */
TclListObjLength(NULL, objPtr, &length);
@@ -1295,7 +1295,7 @@ TclParseNumber(
*/
if (status == TCL_OK && objPtr != NULL) {
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
switch (acceptState) {
case SIGNUM:
case BAD_OCTAL:
@@ -1405,7 +1405,7 @@ TclParseNumber(
if (signum) {
err = mp_neg(&octalSignificandBig, &octalSignificandBig);
}
- TclSetBignumIntRep(objPtr, &octalSignificandBig);
+ TclSetBignumInternalRep(objPtr, &octalSignificandBig);
}
if (err != MP_OKAY) {
return TCL_ERROR;
@@ -1441,7 +1441,7 @@ TclParseNumber(
if (signum) {
err = mp_neg(&significandBig, &significandBig);
}
- TclSetBignumIntRep(objPtr, &significandBig);
+ TclSetBignumInternalRep(objPtr, &significandBig);
}
if (err != MP_OKAY) {
return TCL_ERROR;
diff --git a/generic/tclStringObj.c b/generic/tclStringObj.c
index 508b280..91b632a 100644
--- a/generic/tclStringObj.c
+++ b/generic/tclStringObj.c
@@ -836,7 +836,7 @@ Tcl_SetStringObj(
* Set the type to NULL and free any internal rep for the old type.
*/
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
/*
* Free any old string rep, then set the string rep to a copy of the
@@ -1098,7 +1098,7 @@ Tcl_SetUnicodeObj(
if (Tcl_IsShared(objPtr)) {
Tcl_Panic("%s called with shared object", "Tcl_SetUnicodeObj");
}
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
SetUnicodeObj(objPtr, unicode, numChars);
}
@@ -1443,7 +1443,7 @@ Tcl_AppendObjToObj(
* If appendObjPtr is not of the "String" type, don't convert it.
*/
- if (TclHasIntRep(appendObjPtr, &tclStringType)) {
+ if (TclHasInternalRep(appendObjPtr, &tclStringType)) {
Tcl_UniChar *unicode =
Tcl_GetUnicodeFromObj(appendObjPtr, &numChars);
@@ -1464,7 +1464,7 @@ Tcl_AppendObjToObj(
bytes = TclGetStringFromObj(appendObjPtr, &length);
numChars = stringPtr->numChars;
- if ((numChars >= 0) && TclHasIntRep(appendObjPtr, &tclStringType)) {
+ if ((numChars >= 0) && TclHasInternalRep(appendObjPtr, &tclStringType)) {
String *appendStringPtr = GET_STRING(appendObjPtr);
appendNumChars = appendStringPtr->numChars;
@@ -2869,7 +2869,7 @@ TclGetStringStorage(
{
String *stringPtr;
- if (!TclHasIntRep(objPtr, &tclStringType) || objPtr->bytes == NULL) {
+ if (!TclHasInternalRep(objPtr, &tclStringType) || objPtr->bytes == NULL) {
return TclGetStringFromObj(objPtr, (int *)sizePtr);
}
@@ -2917,7 +2917,7 @@ TclStringRepeat(
*/
if (!binary) {
- if (TclHasIntRep(objPtr, &tclStringType)) {
+ if (TclHasInternalRep(objPtr, &tclStringType)) {
String *stringPtr = GET_STRING(objPtr);
if (stringPtr->hasUnicode) {
unichar = 1;
@@ -3001,7 +3001,7 @@ TclStringRepeat(
if (!inPlace || Tcl_IsShared(objPtr)) {
objResultPtr = Tcl_NewStringObj(Tcl_GetString(objPtr), length);
} else {
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objResultPtr = objPtr;
}
if (0 == Tcl_AttemptSetObjLength(objResultPtr, count*length)) {
@@ -3096,7 +3096,7 @@ TclStringCat(
} else {
/* assert (objPtr->typePtr != NULL) -- stork! */
binary = 0;
- if (TclHasIntRep(objPtr, &tclStringType)) {
+ if (TclHasInternalRep(objPtr, &tclStringType)) {
/* Have a pure Unicode value; ask to preserve it */
requestUniChar = 1;
} else {
@@ -3363,7 +3363,7 @@ TclStringCat(
dst = Tcl_GetString(objResultPtr) + start;
/* assert ( length > start ) */
- TclFreeIntRep(objResultPtr);
+ TclFreeInternalRep(objResultPtr);
} else {
TclNewObj(objResultPtr); /* PANIC? */
if (0 == Tcl_AttemptSetObjLength(objResultPtr, length)) {
@@ -3449,8 +3449,8 @@ TclStringCmp(
s1 = (char *) Tcl_GetByteArrayFromObj(value1Ptr, &s1len);
s2 = (char *) Tcl_GetByteArrayFromObj(value2Ptr, &s2len);
memCmpFn = memcmp;
- } else if (TclHasIntRep(value1Ptr, &tclStringType)
- && TclHasIntRep(value2Ptr, &tclStringType)) {
+ } else if (TclHasInternalRep(value1Ptr, &tclStringType)
+ && TclHasInternalRep(value2Ptr, &tclStringType)) {
/*
* Do a unicode-specific comparison if both of the args are of
* String type. If the char length == byte length, we can do a
@@ -4284,7 +4284,7 @@ SetStringFromAny(
TCL_UNUSED(Tcl_Interp *),
Tcl_Obj *objPtr) /* The object to convert. */
{
- if (!TclHasIntRep(objPtr, &tclStringType)) {
+ if (!TclHasInternalRep(objPtr, &tclStringType)) {
String *stringPtr = stringAlloc(0);
/*
@@ -4292,10 +4292,10 @@ SetStringFromAny(
*/
(void) TclGetString(objPtr);
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
/*
- * Create a basic String intrep that just points to the UTF-8 string
+ * Create a basic String internalrep that just points to the UTF-8 string
* already in place at objPtr->bytes.
*/
diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c
index 1b6862c..d774020 100644
--- a/generic/tclStubInit.c
+++ b/generic/tclStubInit.c
@@ -186,7 +186,7 @@ static const char *TclUtfPrev(const char *src, const char *start) {
#define TclBN_s_mp_sub s_mp_sub
#define TclBN_mp_toom_mul s_mp_toom_mul
#define TclBN_mp_toom_sqr s_mp_toom_sqr
-#define TclUnusedStubEntry NULL
+#define TclUnusedStubEntry 0
/* See bug 510001: TclSockMinimumBuffers needs plat imp */
#if defined(_WIN64) || defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8
@@ -1920,10 +1920,10 @@ const TclStubs tclStubs = {
TclZipfs_Unmount, /* 633 */
TclZipfs_TclLibrary, /* 634 */
TclZipfs_MountBuffer, /* 635 */
- Tcl_FreeIntRep, /* 636 */
+ Tcl_FreeInternalRep, /* 636 */
Tcl_InitStringRep, /* 637 */
- Tcl_FetchIntRep, /* 638 */
- Tcl_StoreIntRep, /* 639 */
+ Tcl_FetchInternalRep, /* 638 */
+ Tcl_StoreInternalRep, /* 639 */
Tcl_HasStringRep, /* 640 */
Tcl_IncrRefCount, /* 641 */
Tcl_DecrRefCount, /* 642 */
@@ -1944,6 +1944,7 @@ const TclStubs tclStubs = {
Tcl_UniCharIsUnicode, /* 657 */
Tcl_ExternalToUtfDStringEx, /* 658 */
Tcl_UtfToExternalDStringEx, /* 659 */
+ Tcl_AsyncMarkFromSignal, /* 660 */
};
/* !END!: Do not edit above this line. */
diff --git a/generic/tclTest.c b/generic/tclTest.c
index 99fe92f..1ce11eb 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -163,9 +163,7 @@ static TestChannel *firstDetached;
static int AsyncHandlerProc(void *clientData,
Tcl_Interp *interp, int code);
-#if TCL_THREADS
static Tcl_ThreadCreateType AsyncThreadProc(void *);
-#endif
static void CleanupTestSetassocdataTests(
void *clientData, Tcl_Interp *interp);
static void CmdDelProc1(void *clientData);
@@ -821,7 +819,6 @@ TestasyncCmd(
Tcl_SetObjResult(interp, Tcl_NewStringObj(argv[3], -1));
Tcl_MutexUnlock(&asyncTestMutex);
return code;
-#if TCL_THREADS
} else if (strcmp(argv[1], "marklater") == 0) {
if (argc != 3) {
goto wrongNumArgs;
@@ -849,12 +846,6 @@ TestasyncCmd(
Tcl_AppendResult(interp, "bad option \"", argv[1],
"\": must be create, delete, int, mark, or marklater", NULL);
return TCL_ERROR;
-#else /* !TCL_THREADS */
- } else {
- Tcl_AppendResult(interp, "bad option \"", argv[1],
- "\": must be create, delete, int, or mark", NULL);
- return TCL_ERROR;
-#endif
}
return TCL_OK;
}
@@ -920,7 +911,6 @@ AsyncHandlerProc(
*----------------------------------------------------------------------
*/
-#if TCL_THREADS
static Tcl_ThreadCreateType
AsyncThreadProc(
void *clientData) /* Parameter is the id of a
@@ -942,7 +932,6 @@ AsyncThreadProc(
Tcl_ExitThread(TCL_OK);
TCL_THREAD_CREATE_RETURN;
}
-#endif
static int
TestbumpinterpepochObjCmd(
@@ -1665,7 +1654,7 @@ TestdoubledigitsObjCmd(
status = Tcl_GetDoubleFromObj(interp, objv[1], &d);
if (status != TCL_OK) {
doubleType = Tcl_GetObjType("double");
- if (Tcl_FetchIntRep(objv[1], doubleType)
+ if (Tcl_FetchInternalRep(objv[1], doubleType)
&& TclIsNaN(objv[1]->internalRep.doubleValue)) {
status = TCL_OK;
memcpy(&d, &(objv[1]->internalRep.doubleValue), sizeof(double));
@@ -1902,7 +1891,7 @@ TestencodingObjCmd(
}
Tcl_FreeEncoding(encoding); /* Free returned reference */
Tcl_FreeEncoding(encoding); /* Free to match CREATE */
- TclFreeIntRep(objv[2]); /* Free the cached ref */
+ TclFreeInternalRep(objv[2]); /* Free the cached ref */
break;
}
return TCL_OK;
diff --git a/generic/tclThread.c b/generic/tclThread.c
index 0e6e874..de9fac9 100644
--- a/generic/tclThread.c
+++ b/generic/tclThread.c
@@ -80,7 +80,7 @@ Tcl_GetThreadData(
if (*keyPtr == NULL) {
result = ckalloc(size);
memset(result, 0, size);
- *keyPtr = result;
+ *keyPtr = (Tcl_ThreadDataKey)result;
RememberSyncObject(keyPtr, &keyRecord);
} else {
result = *keyPtr;
@@ -488,30 +488,30 @@ Tcl_ExitThread(
#undef Tcl_ConditionWait
void
Tcl_ConditionWait(
- Tcl_Condition *condPtr, /* Really (pthread_cond_t **) */
- Tcl_Mutex *mutexPtr, /* Really (pthread_mutex_t **) */
- const Tcl_Time *timePtr) /* Timeout on waiting period */
+ TCL_UNUSED(Tcl_Condition *), /* Really (pthread_cond_t **) */
+ TCL_UNUSED(Tcl_Mutex *), /* Really (pthread_mutex_t **) */
+ TCL_UNUSED(const Tcl_Time *)) /* Timeout on waiting period */
{
}
#undef Tcl_ConditionNotify
void
Tcl_ConditionNotify(
- Tcl_Condition *condPtr)
+ TCL_UNUSED(Tcl_Condition *))
{
}
#undef Tcl_MutexLock
void
Tcl_MutexLock(
- Tcl_Mutex *mutexPtr)
+ TCL_UNUSED(Tcl_Mutex *))
{
}
#undef Tcl_MutexUnlock
void
Tcl_MutexUnlock(
- Tcl_Mutex *mutexPtr)
+ TCL_UNUSED(Tcl_Mutex *))
{
}
#endif /* !TCL_THREADS */
diff --git a/generic/tclUniData.c b/generic/tclUniData.c
index f6e0c6b..dc30794 100644
--- a/generic/tclUniData.c
+++ b/generic/tclUniData.c
@@ -29,35 +29,35 @@ static const unsigned short pageMap[] = {
832, 864, 896, 928, 960, 992, 224, 1024, 224, 1056, 224, 224, 1088,
1120, 1152, 1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408, 1344, 1344,
1440, 1472, 1504, 1536, 1568, 1344, 1344, 1600, 1632, 1664, 1696, 1728,
- 1760, 1792, 1824, 1856, 1888, 1920, 1952, 1984, 2016, 2048, 2080, 2112,
- 2144, 2176, 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432, 2464, 2496,
- 2528, 2560, 2592, 2624, 2656, 2688, 2720, 2752, 2784, 2816, 2848, 2880,
- 2912, 2944, 2976, 3008, 3040, 3072, 3104, 3136, 3168, 3200, 3232, 3264,
- 3296, 1824, 3328, 3360, 3392, 1824, 3424, 3456, 3488, 3520, 3552, 3584,
- 3616, 1824, 1344, 3648, 3680, 3712, 3744, 3776, 3808, 3840, 1344, 1344,
+ 1760, 1792, 1824, 1344, 1856, 1888, 1920, 1952, 1984, 2016, 2048, 2080,
+ 2112, 2144, 2176, 2208, 2240, 2272, 2304, 2336, 2368, 2400, 2432, 2464,
+ 2496, 2528, 2560, 2592, 2624, 2656, 2688, 2720, 2752, 2784, 2816, 2848,
+ 2880, 2912, 2944, 2976, 3008, 3040, 3072, 3104, 3136, 3168, 3200, 3232,
+ 3264, 3296, 3328, 3360, 3392, 3296, 3424, 3456, 3488, 3520, 3552, 3584,
+ 3616, 3296, 1344, 3648, 3680, 3712, 3744, 3776, 3808, 3840, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 3872, 1344, 3904, 3936,
3968, 1344, 4000, 1344, 4032, 4064, 4096, 4128, 4128, 4160, 4192, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 4224, 4256, 1344, 1344, 4288, 4320, 4352,
4384, 4416, 1344, 4448, 4480, 4512, 4544, 1344, 4576, 4608, 4640, 4672,
1344, 4704, 4736, 4768, 4800, 4832, 1344, 4864, 4896, 4928, 4960, 1344,
- 4992, 5024, 5056, 5088, 5120, 1824, 5152, 5184, 5216, 5248, 5280, 5312,
+ 4992, 5024, 5056, 5088, 5120, 3296, 5152, 5184, 5216, 5248, 5280, 5312,
1344, 5344, 1344, 5376, 5408, 5440, 5472, 5504, 5536, 5568, 5600, 5632,
- 5664, 5696, 5728, 5664, 704, 5760, 224, 224, 224, 224, 5792, 224, 224,
- 224, 5824, 5856, 5888, 5920, 5952, 5984, 6016, 6048, 6080, 6112, 6144,
- 6176, 6208, 6240, 6272, 6304, 6336, 6368, 6400, 6432, 6464, 6496, 6528,
- 6560, 6592, 6592, 6592, 6592, 6592, 6592, 6592, 6592, 6624, 6656, 4928,
- 6688, 6720, 6752, 6784, 6816, 4928, 6848, 6880, 6912, 6944, 6976, 7008,
- 7040, 4928, 4928, 4928, 4928, 4928, 7072, 7104, 7136, 4928, 4928, 4928,
- 7168, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 7200, 7232, 4928, 7264,
- 7296, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 6592, 6592, 6592,
- 6592, 7328, 6592, 7360, 7392, 6592, 6592, 6592, 6592, 6592, 6592, 6592,
- 6592, 4928, 7424, 7456, 7488, 7520, 4928, 4928, 4928, 7552, 7584, 7616,
- 7648, 224, 224, 224, 7680, 7712, 7744, 1344, 7776, 7808, 7840, 7840,
- 704, 7872, 7904, 7936, 1824, 7968, 4928, 4928, 8000, 4928, 4928, 4928,
- 4928, 4928, 4928, 8032, 8064, 8096, 8128, 3232, 1344, 8160, 4192, 1344,
- 8192, 8224, 8256, 1344, 1344, 8288, 1344, 4928, 8320, 8352, 8384, 8416,
- 4928, 8384, 8448, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928,
+ 5664, 5696, 5728, 5664, 704, 704, 224, 224, 224, 224, 5760, 224, 224,
+ 224, 5792, 5824, 5856, 5888, 5920, 5952, 5984, 6016, 6048, 6080, 6112,
+ 6144, 6176, 6208, 6240, 6272, 6304, 6336, 6368, 6400, 6432, 6464, 6496,
+ 6528, 6560, 6560, 6560, 6560, 6560, 6560, 6560, 6560, 6592, 6624, 4928,
+ 6656, 6688, 6720, 6752, 6784, 4928, 6816, 6848, 6880, 6912, 6944, 6976,
+ 7008, 4928, 4928, 4928, 4928, 4928, 7040, 7072, 7104, 4928, 4928, 4928,
+ 7136, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 7168, 7200, 4928, 7232,
+ 7264, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 6560, 6560, 6560,
+ 6560, 7296, 6560, 7328, 7360, 6560, 6560, 6560, 6560, 6560, 6560, 6560,
+ 6560, 4928, 7392, 7424, 7456, 7488, 4928, 4928, 4928, 7520, 7552, 7584,
+ 7616, 224, 224, 224, 7648, 7680, 7712, 1344, 7744, 7776, 7808, 7808,
+ 704, 7840, 7872, 7904, 3296, 7936, 4928, 4928, 7968, 4928, 4928, 4928,
+ 4928, 4928, 4928, 8000, 8032, 8064, 8096, 3200, 1344, 8128, 4192, 1344,
+ 8160, 8192, 8224, 1344, 1344, 8256, 1344, 4928, 8288, 8320, 8352, 8384,
+ 4928, 8352, 8416, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928,
4928, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -130,15 +130,15 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 8480, 8512, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 8448, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 8544, 4928, 8576, 5440, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 8608, 8640, 224, 8672, 8704, 1344, 1344, 8736, 8768, 8800, 224,
- 8832, 8864, 8896, 8928, 8960, 8992, 9024, 1344, 9056, 9088, 9120, 9152,
- 9184, 1632, 9216, 9248, 8480, 1952, 9280, 9312, 9344, 1344, 9376, 9408,
- 9440, 1344, 9472, 9504, 9536, 9568, 9600, 9632, 9664, 9696, 9696, 1344,
- 9728, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 8480, 4928, 8512, 5440, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 8544, 8576, 224, 8608, 8640, 1344, 1344, 8672, 8704, 8736, 224,
+ 8768, 8800, 8832, 8864, 8896, 8928, 8960, 1344, 8992, 9024, 9056, 9088,
+ 9120, 1632, 9152, 9184, 9216, 1920, 9248, 9280, 9312, 1344, 9344, 9376,
+ 9408, 1344, 9440, 9472, 9504, 9536, 9568, 9600, 9632, 9664, 9664, 1344,
+ 9696, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -167,212 +167,212 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 9760, 9792, 9824, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 1344, 1344, 9728, 9760, 9792, 9824, 9824, 9824, 9824, 9824, 9824, 9824,
+ 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824,
+ 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824,
+ 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824,
+ 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824,
+ 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9824, 9856, 9856, 9856,
9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
- 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888, 9888,
- 9888, 9888, 9888, 9888, 9888, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 9920, 1344, 1344, 9952, 1824, 9984, 10016,
- 10048, 1344, 1344, 10080, 10112, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 10144, 10176, 1344, 10208, 1344, 10240, 10272,
- 10304, 10336, 10368, 10400, 1344, 1344, 1344, 10432, 10464, 64, 10496,
- 10528, 10560, 4736, 10592, 10624
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856, 9856,
+ 9856, 9856, 9856, 9856, 9856, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 9888, 1344, 1344, 9920, 3296, 9952, 9984, 10016,
+ 1344, 1344, 10048, 10080, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 10112, 10144, 1344, 10176, 1344, 10208, 10240, 10272,
+ 10304, 10336, 10368, 1344, 1344, 1344, 10400, 10432, 64, 10464, 10496,
+ 10528, 4736, 10560, 10592
#if TCL_UTF_MAX > 3 || TCL_MAJOR_VERSION > 8 || TCL_MINOR_VERSION > 6
- ,10656, 10688, 10720, 1824, 1344, 1344, 1344, 10752, 10784, 10816,
- 10848, 10880, 10912, 10944, 10976, 11008, 1824, 1824, 1824, 1824, 8480,
- 1344, 11040, 11072, 1344, 11104, 11136, 11168, 11200, 1344, 11232,
- 1824, 11264, 11296, 11328, 1344, 11360, 11392, 11424, 11456, 1344,
- 11488, 1344, 11520, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 7808, 4704, 10240, 1824, 1824, 1824,
- 1824, 11552, 11584, 11616, 11648, 4736, 11680, 1824, 11712, 11744,
- 11776, 1824, 1824, 1344, 11808, 11840, 6912, 11872, 11904, 11936, 11968,
- 12000, 1824, 12032, 12064, 1344, 12096, 12128, 12160, 12192, 12224,
- 1824, 1824, 1344, 1344, 12256, 1824, 12288, 12320, 12352, 12384, 1344,
- 12416, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 12448,
- 1344, 12480, 1824, 1824, 12000, 12512, 12544, 1824, 1824, 10176, 12576,
- 7808, 12608, 12640, 12672, 12704, 5280, 12736, 12768, 12800, 12832,
- 12864, 12896, 12928, 5280, 12960, 12992, 13024, 13056, 13088, 1824,
- 1824, 13120, 13152, 13184, 13216, 13248, 13280, 13312, 13344, 1824,
- 1824, 1824, 1824, 1344, 13376, 13408, 13440, 1344, 13472, 13504, 1824,
- 1824, 1824, 1824, 1824, 1344, 13536, 13568, 1824, 1344, 13600, 13632,
- 13664, 1344, 13696, 13728, 1824, 4032, 13760, 1824, 1824, 1824, 1824,
- 1824, 1824, 1344, 13792, 1824, 1824, 1824, 13824, 13856, 13888, 13920,
- 13952, 13984, 1824, 1824, 14016, 14048, 14080, 14112, 14144, 14176,
- 1344, 14208, 14240, 1344, 4608, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 14272, 14304, 14336, 14368, 14400, 14432, 1824, 1824, 14464,
- 14496, 14528, 14560, 14592, 13728, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 14624, 1824, 1824, 1824, 1824, 1824, 14656, 14688,
- 14720, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 9952, 1824, 1824, 1824, 10848,
- 10848, 10848, 14752, 1344, 1344, 1344, 1344, 1344, 1344, 14784, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 14816, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 14848,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 4608, 4736,
- 14880, 1824, 1824, 10176, 14912, 1344, 14944, 14976, 15008, 15040,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 13824, 13856,
- 15072, 1824, 1824, 1824, 1344, 1344, 15104, 15136, 15168, 1824, 1824,
- 15200, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 15232, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 4704, 1824, 12256, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 4736, 1824, 15264,
- 15296, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 9824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1344, 1344, 1344, 15328, 15360, 15392, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 4928, 4928, 4928, 4928, 4928,
- 4928, 4928, 8032, 4928, 15424, 4928, 15456, 15488, 15520, 4928, 15552,
- 4928, 4928, 15584, 1824, 1824, 1824, 1824, 15616, 4928, 4928, 15648,
- 15680, 1824, 1824, 1824, 1824, 15712, 15744, 15776, 15808, 15840, 15872,
- 15904, 15936, 15968, 16000, 16032, 16064, 16096, 15712, 15744, 16128,
- 15808, 16160, 16192, 16224, 15936, 16256, 16288, 16320, 16352, 16384,
- 16416, 16448, 16480, 16512, 16544, 16576, 4928, 4928, 4928, 4928, 4928,
- 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 704,
- 16608, 704, 16640, 16672, 16704, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 16736, 16768, 1824, 1824, 1824, 1824, 1824, 1824, 1344, 16800, 16832,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1344,
- 16864, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344,
- 16896, 1824, 16928, 16960, 16992, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 17024, 6912, 17056, 1824, 1824,
- 17088, 17120, 1824, 1824, 1824, 1824, 1824, 1824, 17152, 17184, 17216,
- 17248, 17280, 17312, 1824, 17344, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 4928, 17376, 4928, 4928, 8000, 17408, 17440, 8032, 17472,
- 4928, 4928, 4928, 4928, 17504, 1824, 17536, 17568, 17600, 17632, 17664,
- 1824, 1824, 1824, 1824, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 17696,
+ ,10624, 10656, 10688, 3296, 1344, 1344, 1344, 10720, 10752, 10784,
+ 10816, 10848, 10880, 10912, 10944, 10976, 3296, 3296, 3296, 3296, 9216,
+ 1344, 11008, 11040, 1344, 11072, 11104, 11136, 11168, 1344, 11200,
+ 3296, 11232, 11264, 11296, 1344, 11328, 11360, 11392, 11424, 1344,
+ 11456, 1344, 11488, 11520, 11552, 3296, 3296, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 7776, 4704, 11584, 11616, 11648, 3296,
+ 3296, 11680, 11712, 11744, 11776, 4736, 11808, 3296, 11840, 11872,
+ 11904, 3296, 3296, 1344, 11936, 11968, 6880, 12000, 12032, 12064, 12096,
+ 12128, 3296, 12160, 12192, 1344, 12224, 12256, 12288, 12320, 12352,
+ 3296, 3296, 1344, 1344, 12384, 3296, 12416, 12448, 12480, 12512, 1344,
+ 12544, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 12576,
+ 1344, 12608, 3296, 3296, 12128, 12640, 12672, 12704, 12736, 12704,
+ 12768, 7776, 12800, 12832, 12864, 12896, 5280, 12928, 12960, 12992,
+ 13024, 13056, 13088, 13120, 5280, 13152, 13184, 13216, 13248, 13280,
+ 3296, 3296, 13312, 13344, 13376, 13408, 13440, 13472, 13504, 13536,
+ 3296, 3296, 3296, 3296, 1344, 13568, 13600, 13632, 1344, 13664, 13696,
+ 3296, 3296, 3296, 3296, 3296, 1344, 13728, 13760, 3296, 1344, 13792,
+ 13824, 13856, 1344, 13888, 13920, 3296, 4032, 13952, 13984, 3296, 3296,
+ 3296, 3296, 3296, 1344, 14016, 3296, 3296, 3296, 14048, 14080, 14112,
+ 14144, 14176, 14208, 3296, 3296, 14240, 14272, 14304, 14336, 14368,
+ 14400, 1344, 14432, 14464, 1344, 4608, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 14496, 14528, 14560, 14592, 14624, 14656, 3296, 3296,
+ 14688, 14720, 14752, 14784, 14816, 13920, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 14848, 3296, 3296, 3296, 3296, 3296, 14880,
+ 14912, 14944, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 9920, 3296, 3296, 3296, 10816,
+ 10816, 10816, 14976, 1344, 1344, 1344, 1344, 1344, 1344, 15008, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 12704, 1344, 1344,
+ 15040, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 15072,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 13984, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 4608, 4736, 15104, 1344, 4736, 15136, 15168, 1344, 15200, 15232, 15264,
+ 15296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 14048,
+ 14080, 15328, 3296, 3296, 3296, 1344, 1344, 15360, 15392, 15424, 3296,
+ 3296, 15456, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 15488, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 4704, 3296, 12384, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 15520, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 15552,
+ 15584, 15616, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 9792, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 1344, 1344, 1344, 15648, 15680, 15712, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 704, 15744, 15776, 4928, 4928, 4928, 15808, 3296, 4928, 4928, 4928,
+ 4928, 4928, 4928, 4928, 8000, 4928, 15840, 4928, 15872, 15904, 15936,
+ 4928, 6848, 4928, 4928, 15968, 3296, 3296, 3296, 3296, 16000, 4928,
+ 4928, 16032, 16064, 3296, 3296, 3296, 3296, 16096, 16128, 16160, 16192,
+ 16224, 16256, 16288, 16320, 16352, 16384, 16416, 16448, 16480, 16096,
+ 16128, 16512, 16192, 16544, 16576, 16608, 16320, 16640, 16672, 16704,
+ 16736, 16768, 16800, 16832, 16864, 16896, 16928, 16960, 4928, 4928,
+ 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928,
+ 4928, 4928, 704, 16992, 704, 17024, 17056, 17088, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 17120, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 17152, 17184, 3296, 3296, 3296, 3296, 3296,
+ 3296, 1344, 17216, 17248, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 12704, 17280, 1344, 17312, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 17344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 17376, 3296, 17408, 17440, 17472,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 17504, 6880, 17536, 3296, 3296, 17568, 17600, 3296, 3296, 3296, 3296,
+ 3296, 3296, 17632, 17664, 17696, 17728, 17760, 17792, 3296, 17824,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 4928, 17856, 4928,
+ 4928, 7968, 17888, 17920, 8000, 17952, 4928, 4928, 4928, 4928, 17984,
+ 3296, 18016, 18048, 18080, 18112, 18144, 3296, 3296, 3296, 3296, 4928,
+ 4928, 4928, 4928, 4928, 4928, 4928, 18176, 4928, 4928, 4928, 4928,
4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928,
- 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 17728,
- 17760, 4928, 4928, 4928, 8000, 4928, 4928, 17792, 17824, 17376, 4928,
- 17856, 4928, 17888, 17920, 1824, 1824, 4928, 4928, 4928, 17952, 4928,
- 4928, 17984, 4928, 4928, 4928, 8000, 18016, 18048, 18080, 18112, 1824,
- 4928, 4928, 4928, 4928, 18144, 4928, 6880, 18176, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 4928, 4928, 4928, 4928, 4928, 4928, 18208, 18240, 4928, 4928, 4928,
+ 7968, 4928, 4928, 18272, 18304, 17856, 4928, 18336, 4928, 18368, 18400,
+ 3296, 3296, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928, 4928,
+ 7968, 18432, 18464, 18496, 18528, 18560, 4928, 4928, 4928, 4928, 18592,
+ 4928, 6848, 18624, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -483,8 +483,8 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 11360, 1824, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 3296, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -494,9 +494,8 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 1344, 18208, 1344, 1344, 1344,
- 1344, 1344, 1344, 11360, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 4608, 1344, 1344, 1344, 1344, 1344, 1344, 11328, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -510,8 +509,8 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 18240, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 18656,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -530,21 +529,21 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 18272, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1344, 11360, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1824,
- 1824, 1824, 1824, 1824, 1824, 1824, 1824, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 18688, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 11328,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296,
+ 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 3296, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
@@ -556,7 +555,8 @@ static const unsigned short pageMap[] = {
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
- 1344, 1344, 1344, 1344, 1344, 1792
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
+ 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 18720
#endif /* TCL_UTF_MAX > 3 */
};
@@ -645,7 +645,7 @@ static const unsigned char groupMap[] = {
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
15, 15, 15, 15, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17,
17, 17, 17, 7, 7, 7, 3, 3, 4, 3, 3, 14, 14, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 3, 17, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15,
+ 93, 93, 93, 93, 93, 3, 17, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
@@ -671,68 +671,67 @@ static const unsigned char groupMap[] = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 93, 93, 93, 0, 0, 3, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 15, 15, 15, 15,
+ 15, 15, 0, 17, 17, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 93, 93, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 93, 125, 93, 15, 125, 125, 125, 93, 93, 93, 93,
- 93, 93, 93, 93, 125, 125, 125, 125, 93, 125, 125, 15, 93, 93, 93, 93,
- 93, 93, 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 3, 3, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 93, 125, 125, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 0, 0, 0, 15, 15, 15, 15, 0, 0, 93, 15, 125, 125, 125,
- 93, 93, 93, 93, 0, 0, 125, 125, 0, 0, 125, 125, 93, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 0, 0, 0, 0, 15, 15, 0, 15, 15, 15, 93, 93, 0, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 4, 4, 18, 18, 18, 18, 18, 18, 14,
- 4, 15, 3, 93, 0, 0, 93, 93, 125, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0,
- 0, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
- 0, 15, 15, 0, 15, 15, 0, 15, 15, 0, 0, 93, 0, 125, 125, 125, 93, 93,
- 0, 0, 0, 0, 93, 93, 0, 0, 93, 93, 93, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0,
- 0, 15, 15, 15, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 93, 93, 15, 15, 15, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
- 93, 125, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15,
- 15, 15, 15, 0, 0, 93, 15, 125, 125, 125, 93, 93, 93, 93, 93, 0, 93,
- 93, 125, 0, 125, 125, 93, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 15, 93, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3,
- 4, 0, 0, 0, 0, 0, 0, 0, 15, 93, 93, 93, 93, 93, 93, 0, 93, 125, 125,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 0, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15, 15,
- 15, 0, 0, 93, 15, 125, 93, 125, 93, 93, 93, 93, 0, 0, 125, 125, 0,
- 0, 125, 125, 93, 0, 0, 0, 0, 0, 0, 0, 93, 93, 125, 0, 0, 0, 0, 15,
- 15, 0, 15, 15, 15, 93, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14,
- 15, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 15, 0,
- 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 0, 15, 15, 15, 15, 0,
- 0, 0, 15, 15, 0, 15, 0, 15, 15, 0, 0, 0, 15, 15, 0, 0, 0, 15, 15, 15,
- 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
- 125, 125, 93, 125, 125, 0, 0, 0, 125, 125, 125, 0, 125, 125, 125, 93,
- 0, 0, 15, 0, 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 14, 14, 14, 14, 14,
- 14, 4, 14, 0, 0, 0, 0, 0, 93, 125, 125, 125, 93, 15, 15, 15, 15, 15,
- 15, 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 93,
- 93, 93, 125, 125, 125, 125, 0, 93, 93, 93, 0, 93, 93, 93, 93, 0, 0,
- 0, 0, 0, 0, 0, 93, 93, 0, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 93, 93,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 3, 18, 18,
- 18, 18, 18, 18, 18, 14, 15, 93, 125, 125, 3, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 0, 93, 15, 125, 93,
- 125, 125, 125, 125, 125, 0, 93, 125, 125, 0, 125, 125, 93, 93, 0, 0,
- 0, 0, 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 0, 0, 15, 0, 15, 15, 93, 93,
+ 17, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 93, 125, 93, 15, 125, 125, 125, 93, 93, 93, 93, 93, 93,
+ 93, 93, 125, 125, 125, 125, 93, 125, 125, 15, 93, 93, 93, 93, 93, 93,
+ 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 3, 3, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 3, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 93, 125, 125, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 0, 15, 0, 0, 0, 15, 15, 15, 15, 0, 0, 93, 15, 125, 125, 125, 93,
+ 93, 93, 93, 0, 0, 125, 125, 0, 0, 125, 125, 93, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125, 0, 0, 0, 0, 15, 15, 0, 15, 15, 15, 93, 93, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 4, 4, 18, 18, 18, 18, 18, 18, 14, 4,
+ 15, 3, 93, 0, 0, 93, 93, 125, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
+ 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15,
+ 15, 0, 15, 15, 0, 15, 15, 0, 0, 93, 0, 125, 125, 125, 93, 93, 0, 0,
+ 0, 0, 93, 93, 0, 0, 93, 93, 93, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 15,
+ 15, 15, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 93, 93, 15, 15, 15, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93,
+ 125, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15,
+ 15, 15, 0, 0, 93, 15, 125, 125, 125, 93, 93, 93, 93, 93, 0, 93, 93,
+ 125, 0, 125, 125, 93, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 15, 93, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 4,
+ 0, 0, 0, 0, 0, 0, 0, 15, 93, 93, 93, 93, 93, 93, 0, 93, 125, 125, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15, 15, 15,
+ 0, 0, 93, 15, 125, 93, 125, 93, 93, 93, 93, 0, 0, 125, 125, 0, 0, 125,
+ 125, 93, 0, 0, 0, 0, 0, 0, 0, 93, 93, 125, 0, 0, 0, 0, 15, 15, 0, 15,
+ 15, 15, 93, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 14, 15, 18, 18,
+ 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 15, 0, 15, 15, 15,
+ 15, 15, 15, 0, 0, 0, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 0, 15, 15,
+ 0, 15, 0, 15, 15, 0, 0, 0, 15, 15, 0, 0, 0, 15, 15, 15, 0, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 125, 125, 93,
+ 125, 125, 0, 0, 0, 125, 125, 125, 0, 125, 125, 125, 93, 0, 0, 15, 0,
+ 0, 0, 0, 0, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 14, 14, 14, 14, 14, 14, 4, 14,
+ 0, 0, 0, 0, 0, 93, 125, 125, 125, 93, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 15, 93, 93, 93, 125,
+ 125, 125, 125, 0, 93, 93, 93, 0, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0,
+ 0, 93, 93, 0, 15, 15, 15, 0, 0, 15, 0, 0, 15, 15, 93, 93, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 3, 18, 18, 18, 18,
+ 18, 18, 18, 14, 15, 93, 125, 125, 3, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 0, 93, 15, 125, 93, 125,
+ 125, 125, 125, 125, 0, 93, 125, 125, 0, 125, 125, 93, 93, 0, 0, 0,
+ 0, 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 0, 15, 15, 0, 15, 15, 93, 93,
0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 15, 15, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 93, 93, 125, 125, 15, 15, 15, 15, 15, 15, 15, 15,
15, 0, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
@@ -753,421 +752,421 @@ static const unsigned char groupMap[] = {
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 93, 15, 15, 93, 93, 93, 93, 93, 93,
93, 0, 0, 0, 0, 4, 15, 15, 15, 15, 15, 15, 92, 93, 93, 93, 93, 93,
- 93, 93, 93, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 0, 0, 0, 0, 0, 15,
- 15, 0, 15, 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 15, 15, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 15, 0, 0, 15, 15, 15, 15, 15, 0, 92, 0,
- 93, 93, 93, 93, 93, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 15,
- 15, 15, 15, 15, 14, 14, 14, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 14, 3, 14, 14, 14, 93, 93, 14, 14, 14, 14, 14, 14, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 93, 14,
- 93, 14, 93, 5, 6, 5, 6, 125, 125, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 125, 93, 93, 93, 93, 93, 3, 93, 93, 15, 15, 15, 15, 15, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 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, 15, 15, 0, 15, 0, 15, 15, 15, 15, 15, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 93, 15, 15, 93, 93, 93, 93, 93, 93, 93, 93, 93, 15, 0, 0, 15, 15,
+ 15, 15, 15, 0, 92, 0, 93, 93, 93, 93, 93, 93, 0, 0, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 0, 0, 15, 15, 15, 15, 15, 14, 14, 14, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 14, 3, 14, 14, 14, 93, 93, 14, 14, 14,
+ 14, 14, 14, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 14, 93, 14, 93, 14, 93, 5, 6, 5, 6, 125, 125, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 125, 93, 93, 93, 93, 93, 3, 93, 93,
+ 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 14, 14, 14,
- 14, 14, 14, 14, 14, 93, 14, 14, 14, 14, 14, 14, 0, 14, 14, 3, 3, 3,
- 3, 3, 14, 14, 14, 14, 3, 3, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 125, 125, 93, 93, 93, 93, 125, 93, 93, 93, 93,
- 93, 93, 125, 93, 93, 125, 125, 93, 93, 15, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 125, 125, 93, 93, 15,
- 15, 15, 15, 93, 93, 93, 15, 125, 125, 125, 15, 15, 125, 125, 125, 125,
- 125, 125, 125, 15, 15, 15, 93, 93, 93, 93, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 93, 125, 125, 93, 93, 125, 125, 125, 125,
- 125, 125, 93, 15, 125, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 125, 125, 125,
- 93, 14, 14, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 0, 14, 14, 14, 14, 14, 14, 14, 14, 93, 14, 14, 14, 14, 14,
+ 14, 0, 14, 14, 3, 3, 3, 3, 3, 14, 14, 14, 14, 3, 3, 0, 0, 0, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 93, 93, 93, 93,
+ 125, 93, 93, 93, 93, 93, 93, 125, 93, 93, 125, 125, 93, 93, 15, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15,
+ 125, 125, 93, 93, 15, 15, 15, 15, 93, 93, 93, 15, 125, 125, 125, 15,
+ 15, 125, 125, 125, 125, 125, 125, 125, 15, 15, 15, 93, 93, 93, 93,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 125, 125, 93,
+ 93, 125, 125, 125, 125, 125, 125, 93, 15, 125, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 125, 125, 125, 93, 14, 14, 126, 126, 126, 126, 126, 126, 126,
+ 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
- 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0,
- 126, 0, 0, 0, 0, 0, 126, 0, 0, 127, 127, 127, 127, 127, 127, 127, 127,
+ 126, 126, 126, 0, 126, 0, 0, 0, 0, 0, 126, 0, 0, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 3, 92, 127, 127, 127, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 3, 92, 127,
+ 127, 127, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
+ 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 93, 93, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
- 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 93,
+ 93, 3, 3, 3, 3, 3, 3, 3, 3, 3, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128, 128, 105, 105, 105, 105, 105,
- 105, 0, 0, 111, 111, 111, 111, 111, 111, 0, 0, 8, 15, 15, 15, 15, 15,
+ 105, 105, 105, 105, 105, 105, 0, 0, 111, 111, 111, 111, 111, 111, 0,
+ 0, 8, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 3, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 14, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 5, 6, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 3, 3, 3, 129, 129, 129, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 125, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 93, 93, 125, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 15, 15, 15, 0, 93, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 93, 93, 125, 93, 93, 93, 93, 93, 93, 93,
+ 125, 125, 125, 125, 125, 125, 125, 125, 93, 125, 125, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 3, 3, 3, 92, 3, 3, 3, 4, 15, 93, 0, 0,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 8, 3, 3, 3,
+ 3, 93, 93, 93, 17, 93, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 15, 15, 15, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 5, 6, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3,
- 129, 129, 129, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
- 15, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15,
- 15, 15, 0, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 93, 93, 125, 93, 93, 93, 93, 93, 93, 93, 125, 125, 125, 125, 125, 125,
- 125, 125, 93, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 3, 3, 3, 92, 3, 3, 3, 4, 15, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0,
- 0, 0, 0, 3, 3, 3, 3, 3, 3, 8, 3, 3, 3, 3, 93, 93, 93, 17, 0, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 92, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 93, 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 93, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 93, 93, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 15, 0, 0, 0, 0, 0,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
+ 93, 93, 93, 125, 125, 125, 125, 93, 93, 125, 125, 125, 0, 0, 0, 0,
+ 125, 125, 93, 125, 125, 125, 125, 125, 125, 93, 93, 93, 0, 0, 0, 0,
+ 14, 0, 0, 0, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 93, 93, 93, 125, 125, 125, 125,
- 93, 93, 125, 125, 125, 0, 0, 0, 0, 125, 125, 93, 125, 125, 125, 125,
- 125, 125, 93, 93, 93, 0, 0, 0, 0, 14, 0, 0, 0, 3, 3, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 18, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 0, 0, 0, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 125, 125, 93, 0, 0, 3,
- 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 125, 93, 125, 93, 93, 93, 93, 93, 93, 93, 0, 93,
- 125, 93, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 125, 125, 125, 125,
- 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 93, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 92, 3, 3, 3, 3, 3, 3, 0, 0,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 120, 93, 93,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 125, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 93, 125, 93, 93, 93, 93, 93, 125, 93, 125,
- 125, 125, 125, 125, 93, 125, 125, 15, 15, 15, 15, 15, 15, 15, 0, 0,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 93, 93, 93, 93, 93, 93, 93, 93, 93, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 93, 93, 125, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 93, 93, 93, 93, 125, 125,
- 93, 93, 125, 93, 93, 93, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 125, 93, 93, 125, 125,
- 125, 93, 125, 93, 93, 93, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3,
- 3, 15, 15, 15, 15, 125, 125, 125, 125, 125, 125, 125, 125, 93, 93,
- 93, 93, 93, 93, 93, 93, 125, 125, 93, 93, 0, 0, 0, 3, 3, 3, 3, 3, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 92,
- 92, 92, 92, 92, 3, 3, 130, 131, 132, 133, 133, 134, 135, 136, 137,
- 0, 0, 0, 0, 0, 0, 0, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 93, 93, 125, 125, 93, 0, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 93, 125, 93, 93,
+ 93, 93, 93, 93, 93, 0, 93, 125, 93, 125, 125, 93, 93, 93, 93, 93, 93,
+ 93, 93, 125, 125, 125, 125, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 0, 0, 93, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 92,
+ 3, 3, 3, 3, 3, 3, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 120, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
+ 93, 93, 93, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 93, 125, 93, 93, 93, 93, 93, 125, 93, 125, 125, 125, 125, 125, 93,
+ 125, 125, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 3, 3, 3, 3, 3, 3, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 93, 93, 93, 93, 93, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 3, 3, 0, 93, 93, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 125, 93, 93, 93, 93, 125, 125, 93, 93, 125, 93, 93, 93,
+ 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 93, 125, 93, 93, 125, 125, 125, 93, 125, 93, 93, 93,
+ 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 15, 15, 15, 15, 125,
+ 125, 125, 125, 125, 125, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93,
+ 125, 125, 93, 93, 0, 0, 0, 3, 3, 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 0, 0, 0, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 92, 92, 92, 92, 92, 3, 3, 130,
+ 131, 132, 133, 133, 134, 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
- 138, 138, 138, 138, 138, 0, 0, 138, 138, 138, 3, 3, 3, 3, 3, 3, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 3, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 125, 93, 93, 93, 93, 93, 93, 93, 15, 15, 15,
- 15, 93, 15, 15, 15, 15, 15, 15, 93, 15, 15, 125, 93, 93, 15, 0, 0,
- 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 138, 0,
+ 0, 138, 138, 138, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 93,
+ 93, 93, 3, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125,
+ 93, 93, 93, 93, 93, 93, 93, 15, 15, 15, 15, 93, 15, 15, 15, 15, 15,
+ 15, 93, 15, 15, 125, 93, 93, 15, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 92, 92, 92, 92, 92,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 92, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 92, 139, 21, 21, 21, 140, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 141, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 92, 92, 92, 92, 92, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 0, 93, 93, 93, 93, 93, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 21, 21, 21,
- 142, 21, 21, 143, 21, 144, 144, 144, 144, 144, 144, 144, 144, 145,
- 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144, 144, 0,
- 0, 145, 145, 145, 145, 145, 145, 0, 0, 144, 144, 144, 144, 144, 144,
- 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 144, 144, 144, 144,
- 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145, 144, 144,
- 144, 144, 144, 144, 0, 0, 145, 145, 145, 145, 145, 145, 0, 0, 21, 144,
- 21, 144, 21, 144, 21, 144, 0, 145, 0, 145, 0, 145, 0, 145, 144, 144,
- 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, 145,
- 146, 146, 147, 147, 147, 147, 148, 148, 149, 149, 150, 150, 151, 151,
- 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 152, 152, 152, 152, 152,
- 152, 152, 152, 144, 144, 144, 144, 144, 144, 144, 144, 152, 152, 152,
- 152, 152, 152, 152, 152, 144, 144, 144, 144, 144, 144, 144, 144, 152,
- 152, 152, 152, 152, 152, 152, 152, 144, 144, 21, 153, 21, 0, 21, 21,
- 145, 145, 154, 154, 155, 11, 156, 11, 11, 11, 21, 153, 21, 0, 21, 21,
- 157, 157, 157, 157, 155, 11, 11, 11, 144, 144, 21, 21, 0, 0, 21, 21,
- 145, 145, 158, 158, 0, 11, 11, 11, 144, 144, 21, 21, 21, 114, 21, 21,
- 145, 145, 159, 159, 118, 11, 11, 11, 0, 0, 21, 153, 21, 0, 21, 21,
- 160, 160, 161, 161, 155, 11, 11, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 17, 17, 17, 17, 17, 8, 8, 8, 8, 8, 8, 3, 3, 16, 20, 5, 16, 16, 20,
- 5, 16, 3, 3, 3, 3, 3, 3, 3, 3, 162, 163, 17, 17, 17, 17, 17, 2, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 16, 20, 3, 3, 3, 3, 12, 12, 3, 3, 3, 7, 5,
- 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 12, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 2, 17, 17, 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17,
- 17, 17, 18, 92, 0, 0, 18, 18, 18, 18, 18, 18, 7, 7, 7, 5, 6, 92, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 7, 7, 7, 5, 6, 0, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 120, 120, 120, 120, 93, 120, 120,
- 120, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 108, 14, 14, 14, 14, 108, 14,
- 14, 21, 108, 108, 108, 21, 21, 108, 108, 108, 21, 14, 108, 14, 14,
- 7, 108, 108, 108, 108, 108, 14, 14, 14, 14, 14, 14, 108, 14, 164, 14,
- 108, 14, 165, 166, 108, 108, 14, 21, 108, 108, 167, 108, 21, 15, 15,
- 15, 15, 21, 14, 14, 21, 21, 108, 108, 7, 7, 7, 7, 7, 108, 21, 21, 21,
- 21, 14, 7, 14, 14, 168, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 169, 169, 169, 169, 169, 169, 169, 169, 169,
- 169, 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 170, 129, 129, 129, 23, 24,
- 129, 129, 129, 129, 18, 14, 14, 0, 0, 0, 0, 7, 7, 7, 7, 7, 14, 14,
- 14, 14, 14, 7, 7, 14, 14, 14, 14, 7, 14, 14, 7, 14, 14, 7, 14, 14,
- 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 7, 7, 14, 14, 7, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 92, 139, 21, 21,
+ 21, 140, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 141, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 92, 92, 92,
+ 92, 92, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 23, 24, 23, 24, 23, 24, 21, 21, 21, 21, 21, 142, 21, 21, 143, 21,
+ 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145, 145, 145,
+ 145, 145, 144, 144, 144, 144, 144, 144, 0, 0, 145, 145, 145, 145, 145,
+ 145, 0, 0, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145, 145, 145,
+ 145, 145, 145, 145, 144, 144, 144, 144, 144, 144, 144, 144, 145, 145,
+ 145, 145, 145, 145, 145, 145, 144, 144, 144, 144, 144, 144, 0, 0, 145,
+ 145, 145, 145, 145, 145, 0, 0, 21, 144, 21, 144, 21, 144, 21, 144,
+ 0, 145, 0, 145, 0, 145, 0, 145, 144, 144, 144, 144, 144, 144, 144,
+ 144, 145, 145, 145, 145, 145, 145, 145, 145, 146, 146, 147, 147, 147,
+ 147, 148, 148, 149, 149, 150, 150, 151, 151, 0, 0, 144, 144, 144, 144,
+ 144, 144, 144, 144, 152, 152, 152, 152, 152, 152, 152, 152, 144, 144,
+ 144, 144, 144, 144, 144, 144, 152, 152, 152, 152, 152, 152, 152, 152,
+ 144, 144, 144, 144, 144, 144, 144, 144, 152, 152, 152, 152, 152, 152,
+ 152, 152, 144, 144, 21, 153, 21, 0, 21, 21, 145, 145, 154, 154, 155,
+ 11, 156, 11, 11, 11, 21, 153, 21, 0, 21, 21, 157, 157, 157, 157, 155,
+ 11, 11, 11, 144, 144, 21, 21, 0, 0, 21, 21, 145, 145, 158, 158, 0,
+ 11, 11, 11, 144, 144, 21, 21, 21, 114, 21, 21, 145, 145, 159, 159,
+ 118, 11, 11, 11, 0, 0, 21, 153, 21, 0, 21, 21, 160, 160, 161, 161,
+ 155, 11, 11, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17, 17, 17, 17, 17,
+ 8, 8, 8, 8, 8, 8, 3, 3, 16, 20, 5, 16, 16, 20, 5, 16, 3, 3, 3, 3, 3,
+ 3, 3, 3, 162, 163, 17, 17, 17, 17, 17, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 16, 20, 3, 3, 3, 3, 12, 12, 3, 3, 3, 7, 5, 6, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 7, 3, 12, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 17, 17, 17,
+ 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 92, 0, 0, 18,
+ 18, 18, 18, 18, 18, 7, 7, 7, 5, 6, 92, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 7, 7, 7, 5, 6, 0, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 92, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 120, 120, 120, 120, 93, 120, 120, 120, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 14, 14, 108, 14, 14, 14, 14, 108, 14, 14, 21, 108, 108, 108,
+ 21, 21, 108, 108, 108, 21, 14, 108, 14, 14, 7, 108, 108, 108, 108,
+ 108, 14, 14, 14, 14, 14, 14, 108, 14, 164, 14, 108, 14, 165, 166, 108,
+ 108, 14, 21, 108, 108, 167, 108, 21, 15, 15, 15, 15, 21, 14, 14, 21,
+ 21, 108, 108, 7, 7, 7, 7, 7, 108, 21, 21, 21, 21, 14, 7, 14, 14, 168,
+ 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
+ 170, 170, 170, 170, 129, 129, 129, 23, 24, 129, 129, 129, 129, 18,
+ 14, 14, 0, 0, 0, 0, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 7, 7, 14, 14,
+ 14, 14, 7, 14, 14, 7, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 7, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 14, 14, 7,
+ 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 5, 6, 5, 6, 14, 14,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14,
+ 14, 14, 14, 14, 14, 14, 5, 6, 5, 6, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 14, 14, 14, 14,
+ 14, 14, 14, 5, 6, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 7, 7, 14, 14, 14, 14, 14, 14, 14, 5, 6, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7,
+ 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
+ 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 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, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 171, 171, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 172, 172,
+ 171, 171, 171, 171, 171, 171, 172, 172, 172, 172, 172, 172, 172, 172,
172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172,
- 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 172, 172, 172, 172, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 5, 6, 5, 6,
- 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7,
- 7, 7, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 5,
- 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 7, 7, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 7, 7, 7, 7,
- 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 7, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 7, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6,
+ 5, 6, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 5, 6, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5,
+ 6, 5, 6, 5, 6, 5, 6, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 6, 5, 6, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 5, 6, 7, 7, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 14, 14, 7, 7, 7, 7, 7, 7, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 123, 123, 123, 123, 123, 123, 123,
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 0, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 124,
124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 124, 124, 124, 124, 124, 124, 124, 0, 23, 24, 173, 174, 175,
- 176, 177, 23, 24, 23, 24, 23, 24, 178, 179, 180, 181, 21, 23, 24, 21,
- 23, 24, 21, 21, 21, 21, 21, 92, 92, 182, 182, 23, 24, 23, 24, 21, 14,
- 14, 14, 14, 14, 14, 23, 24, 23, 24, 93, 93, 93, 23, 24, 0, 0, 0, 0,
- 0, 3, 3, 3, 3, 18, 3, 3, 183, 183, 183, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 23, 24, 173, 174, 175, 176, 177, 23, 24, 23,
+ 24, 23, 24, 178, 179, 180, 181, 21, 23, 24, 21, 23, 24, 21, 21, 21,
+ 21, 21, 92, 92, 182, 182, 23, 24, 23, 24, 21, 14, 14, 14, 14, 14, 14,
+ 23, 24, 23, 24, 93, 93, 93, 23, 24, 0, 0, 0, 0, 0, 3, 3, 3, 3, 18,
+ 3, 3, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
- 183, 0, 183, 0, 0, 0, 0, 0, 183, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 0, 0, 0, 0, 0, 92, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
- 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 3, 3, 16, 20, 16, 20,
- 3, 3, 3, 16, 20, 3, 16, 20, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 3, 3, 8,
- 3, 16, 20, 3, 3, 16, 20, 5, 6, 5, 6, 5, 6, 5, 6, 3, 3, 3, 3, 3, 92,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 8, 3, 3, 3, 3, 8, 3, 5, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 14, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14,
+ 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 0, 183, 0, 0,
+ 0, 0, 0, 183, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
+ 92, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15,
+ 15, 15, 15, 15, 0, 3, 3, 16, 20, 16, 20, 3, 3, 3, 16, 20, 3, 16, 20,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 8, 3, 3, 8, 3, 16, 20, 3, 3, 16, 20, 5,
+ 6, 5, 6, 5, 6, 5, 6, 3, 3, 3, 3, 3, 92, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 8, 8, 3, 3, 3, 3, 8, 3, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 14, 14, 3, 3, 3, 5, 6, 5, 6, 5, 6, 5, 6, 8, 0, 0, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0,
- 2, 3, 3, 3, 14, 92, 15, 129, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 14, 14,
- 5, 6, 5, 6, 5, 6, 5, 6, 8, 5, 6, 6, 14, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 93, 93, 93, 93, 125, 125, 8, 92, 92, 92, 92, 92, 14,
- 14, 129, 129, 129, 92, 15, 3, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93,
- 93, 11, 11, 92, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3,
- 92, 92, 92, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 2, 3, 3, 3, 14, 92, 15,
+ 129, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 14, 14, 5, 6, 5, 6, 5, 6, 5, 6,
+ 8, 5, 6, 6, 14, 129, 129, 129, 129, 129, 129, 129, 129, 129, 93, 93,
+ 93, 93, 125, 125, 8, 92, 92, 92, 92, 92, 14, 14, 129, 129, 129, 92,
+ 15, 3, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 93, 11, 11, 92, 92,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 92, 92, 92, 15, 0, 0,
+ 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 14, 14,
- 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 14, 14, 18, 18, 18, 18, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18,
- 18, 18, 18, 18, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 92, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 15, 93, 120, 120, 120, 3, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 3, 92, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 23, 24, 92, 92, 93, 93, 15, 15, 15, 15, 15, 15, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 93, 93, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 11, 11, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
- 21, 21, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 92, 21,
- 21, 21, 21, 21, 21, 21, 21, 23, 24, 23, 24, 184, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 92, 11, 11, 23, 24, 185, 21, 15, 23, 24, 23, 24,
- 186, 21, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
- 24, 23, 24, 23, 24, 187, 188, 189, 190, 187, 21, 191, 192, 193, 194,
- 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 0, 0, 23, 24, 195,
- 196, 197, 23, 24, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 14, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 92,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 3,
+ 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 15, 93, 120, 120, 120, 3, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 3, 92, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 92,
+ 92, 93, 93, 15, 15, 15, 15, 15, 15, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 93, 93, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 92, 92, 92, 92, 92, 92, 92, 92, 92, 11, 11, 23,
+ 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 21, 21, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 92, 21, 21, 21, 21, 21,
+ 21, 21, 21, 23, 24, 23, 24, 184, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 92, 11, 11, 23, 24, 185, 21, 15, 23, 24, 23, 24, 186, 21, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23,
+ 24, 187, 188, 189, 190, 187, 21, 191, 192, 193, 194, 23, 24, 23, 24,
+ 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 23, 24, 195, 196, 197, 23,
+ 24, 23, 24, 0, 0, 0, 0, 0, 23, 24, 0, 21, 0, 21, 23, 24, 23, 24, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 23, 24, 15, 92, 92, 21, 15, 15, 15, 15, 15, 15, 15,
- 93, 15, 15, 15, 93, 15, 15, 15, 15, 93, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125,
- 125, 93, 93, 125, 14, 14, 14, 14, 93, 0, 0, 0, 18, 18, 18, 18, 18,
- 18, 14, 14, 4, 14, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3, 3, 0, 0, 0,
- 0, 0, 0, 0, 0, 125, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 125, 125, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 15, 15, 15, 15,
- 15, 15, 3, 3, 3, 15, 3, 15, 15, 93, 15, 15, 15, 15, 15, 15, 93, 93,
- 93, 93, 93, 93, 93, 93, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 93, 125, 125, 93, 93, 93, 93, 125, 125, 93, 93, 125, 125,
- 125, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 92, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 0, 0, 0, 0, 3, 3, 15, 15, 15, 15, 15, 93, 92, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15,
- 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93,
- 125, 125, 93, 93, 125, 125, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 93, 15, 15, 15, 15, 15, 15, 15, 15, 93, 125, 0, 0, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 0, 0, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 15, 15, 15, 15, 15, 15, 14,
- 14, 14, 15, 125, 93, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 93, 15, 93, 93, 93, 15, 15, 93, 93, 15,
- 15, 15, 15, 15, 93, 93, 15, 93, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 92, 3, 3, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 125, 93, 93, 125, 125, 3, 3, 15, 92,
- 92, 125, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15,
- 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
- 15, 15, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 92, 92, 92, 23, 24, 15, 92, 92, 21, 15, 15, 15, 15, 15, 15, 15, 93,
+ 15, 15, 15, 93, 15, 15, 15, 15, 93, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125,
+ 93, 93, 125, 14, 14, 14, 14, 93, 0, 0, 0, 18, 18, 18, 18, 18, 18, 14,
+ 14, 4, 14, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 3, 3, 3, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125, 125, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 125, 125, 125, 125, 125, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 15, 15, 15, 15, 15, 15,
+ 3, 3, 3, 15, 3, 15, 15, 93, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93,
+ 93, 93, 93, 93, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 125,
+ 125, 93, 93, 93, 93, 125, 125, 93, 93, 125, 125, 125, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 0, 92, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
+ 0, 0, 3, 3, 15, 15, 15, 15, 15, 93, 92, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 125, 125, 93, 93,
+ 125, 125, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 93, 15, 15,
+ 15, 15, 15, 15, 15, 15, 93, 125, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 0, 0, 3, 3, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 92, 15, 15, 15, 15, 15, 15, 14, 14, 14, 15, 125, 93, 125,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 93, 15, 93, 93, 93, 15, 15, 93, 93, 15, 15, 15, 15, 15, 93, 93,
+ 15, 93, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 92, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 125, 93, 93, 125, 125, 3, 3, 15, 92, 92, 125, 93, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 198, 21, 21, 21, 21, 21, 21, 21, 11, 92, 92, 92, 92,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 92, 11, 11, 0, 0, 0, 0, 199, 199,
- 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 198, 21,
+ 21, 21, 21, 21, 21, 21, 11, 92, 92, 92, 92, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 92, 11, 11, 0, 0, 0, 0, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
- 199, 199, 199, 199, 15, 15, 15, 125, 125, 93, 125, 125, 93, 125, 125,
- 3, 125, 93, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 15,
+ 15, 15, 125, 125, 93, 125, 125, 93, 125, 125, 3, 125, 93, 0, 0, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 0, 0, 0, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 201, 201, 201, 201, 201, 201,
+ 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
+ 200, 200, 200, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
- 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 201, 201, 201, 201, 201, 201, 201, 201, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 15, 93, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 0, 15, 15,
+ 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 0, 0, 0, 0, 0, 15,
- 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 0, 15, 0, 15,
- 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 11, 11, 11,
- 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 6, 5, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 4, 14, 14, 14, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 3, 3, 3, 3, 3,
+ 3, 3, 5, 6, 3, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 3, 8, 8, 12, 12, 5, 6, 5, 6, 5, 6, 5, 6,
+ 5, 6, 5, 6, 5, 6, 5, 6, 3, 3, 5, 6, 3, 3, 3, 3, 12, 12, 12, 3, 3, 3,
+ 0, 3, 3, 3, 3, 8, 5, 6, 5, 6, 5, 6, 3, 3, 3, 7, 8, 7, 7, 7, 0, 3, 4,
+ 3, 3, 0, 0, 0, 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 17,
+ 0, 3, 3, 3, 4, 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 3, 3, 7, 7, 7, 3, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 5, 7, 6, 7, 5, 6, 3, 5, 6, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 4, 14, 0, 0, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 3, 3, 3, 3, 3, 3, 3, 5,
- 6, 3, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 3, 8, 8, 12, 12, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6,
- 5, 6, 5, 6, 5, 6, 3, 3, 5, 6, 3, 3, 3, 3, 12, 12, 12, 3, 3, 3, 0, 3,
- 3, 3, 3, 8, 5, 6, 5, 6, 5, 6, 3, 3, 3, 7, 8, 7, 7, 7, 0, 3, 4, 3, 3,
- 0, 0, 0, 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 17, 0,
- 3, 3, 3, 4, 3, 3, 3, 5, 6, 3, 7, 3, 8, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 3, 3, 7, 7, 7, 3, 11, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 5,
- 7, 6, 7, 5, 6, 3, 5, 6, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 92, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 92, 0, 0, 15, 15,
- 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15,
- 15, 15, 0, 0, 15, 15, 15, 0, 0, 0, 4, 4, 7, 11, 14, 4, 4, 0, 14, 7,
- 7, 7, 7, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 14, 14,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 92, 92, 0, 0, 15,
+ 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15,
+ 15, 15, 15, 0, 0, 15, 15, 15, 0, 0, 0, 4, 4, 7, 11, 14, 4, 4, 0, 14,
+ 7, 7, 7, 7, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 17, 17, 14, 14,
0, 0
#if TCL_UTF_MAX > 3 || TCL_MAJOR_VERSION > 8 || TCL_MINOR_VERSION > 6
,15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
@@ -1221,8 +1220,18 @@ static const unsigned char groupMap[] = {
203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203,
203, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0,
0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 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, 15, 15, 15, 15, 15, 15, 0, 0, 15,
+ 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 204, 0, 204, 204, 204, 204, 204,
+ 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 0, 204, 204, 204,
+ 204, 204, 204, 204, 0, 204, 204, 0, 205, 205, 205, 205, 205, 205, 205,
+ 205, 205, 205, 205, 0, 205, 205, 205, 205, 205, 205, 205, 205, 205,
+ 205, 205, 205, 205, 205, 205, 0, 205, 205, 205, 205, 205, 205, 205,
+ 0, 205, 205, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92,
+ 92, 92, 92, 0, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 0, 92, 92, 92, 92,
+ 92, 92, 92, 92, 92, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0, 0, 15,
0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 0, 0, 15,
@@ -1279,48 +1288,51 @@ static const unsigned char groupMap[] = {
15, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93,
93, 93, 93, 93, 93, 93, 18, 18, 18, 18, 3, 3, 3, 3, 3, 0, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 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, 125, 93, 125, 15, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93,
+ 93, 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, 15, 15, 15, 15, 15, 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, 125, 93, 125,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 3, 3, 3,
- 3, 3, 3, 3, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125, 93, 93, 93,
- 93, 125, 125, 93, 93, 3, 3, 17, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 17, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 93, 93, 93, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 93, 15, 15, 93, 93, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125,
+ 93, 93, 93, 93, 125, 125, 93, 93, 3, 3, 17, 3, 3, 3, 3, 93, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
+ 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 93,
+ 93, 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 93, 93, 93, 93, 93, 125, 93, 93, 93, 93, 93, 93, 93, 93, 0, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 15, 125, 125, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 93, 93, 93, 93, 93, 125, 93, 93, 93, 93, 93, 93, 93,
+ 93, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 3, 3, 3, 3, 15, 125, 125, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 93, 3, 3, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125,
- 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125, 125, 15, 15, 15,
- 15, 3, 3, 3, 3, 93, 93, 93, 93, 3, 125, 93, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 15, 3, 15, 3, 3, 3, 0, 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, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125, 93, 93,
- 93, 125, 125, 93, 125, 93, 93, 3, 3, 3, 3, 3, 3, 93, 0, 15, 15, 15,
- 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 3, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 93, 3, 3, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 125, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125, 125,
+ 15, 15, 15, 15, 3, 3, 3, 3, 93, 93, 93, 93, 3, 125, 93, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 15, 3, 15, 3, 3, 3, 0, 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, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125,
+ 93, 93, 93, 125, 125, 93, 125, 93, 93, 3, 3, 3, 3, 3, 3, 93, 0, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 3, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 93, 125, 125, 125, 93, 93, 93, 93, 93, 93, 93, 93,
- 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 93,
- 93, 125, 125, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 0, 0,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15,
- 15, 15, 15, 15, 0, 93, 93, 15, 125, 125, 93, 125, 125, 125, 125, 0,
- 0, 125, 125, 0, 0, 125, 125, 125, 0, 0, 15, 0, 0, 0, 0, 0, 0, 125,
+ 15, 15, 15, 15, 15, 15, 93, 125, 125, 125, 93, 93, 93, 93, 93, 93,
+ 93, 93, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 0, 93, 93, 125, 125, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15,
+ 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0,
+ 15, 15, 15, 15, 15, 0, 93, 93, 15, 125, 125, 93, 125, 125, 125, 125,
+ 0, 0, 125, 125, 0, 0, 125, 125, 125, 0, 0, 15, 0, 0, 0, 0, 0, 0, 125,
0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 125, 125, 0, 0, 93, 93, 93, 93,
93, 93, 93, 0, 0, 0, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
@@ -1341,262 +1353,276 @@ static const unsigned char groupMap[] = {
9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 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, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 93, 125, 93, 125, 125, 93, 93, 93,
- 93, 93, 93, 125, 93, 15, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
+ 93, 93, 93, 125, 93, 15, 3, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 125, 125, 93, 93, 93, 93, 125, 93, 93, 93, 93, 93, 0, 0, 0, 0,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 3, 3, 3, 14, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 125, 93, 93, 3, 0, 0, 0, 0, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
- 10, 10, 10, 10, 10, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13,
+ 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125,
+ 125, 125, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125, 93, 93, 3, 0, 0,
+ 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 13,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18,
- 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 0, 0, 15, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 125, 125, 125, 125,
- 125, 0, 125, 125, 0, 0, 93, 93, 125, 93, 15, 125, 15, 125, 93, 3, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0,
- 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 125, 125, 125, 93, 93, 93, 93, 0, 0, 93, 93, 125, 125, 125, 125, 93,
- 15, 3, 15, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 15, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 125, 15, 93, 93,
- 93, 93, 3, 3, 3, 3, 3, 3, 3, 3, 93, 0, 0, 0, 0, 0, 0, 0, 0, 15, 93,
- 93, 93, 93, 93, 93, 125, 125, 93, 93, 93, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 125, 93, 93, 3, 3, 3, 15, 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, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 125, 125, 125, 125, 125, 125, 0, 125, 125, 0, 0, 93, 93, 125, 93,
+ 15, 125, 15, 125, 93, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 125, 93, 93, 93,
- 93, 93, 93, 93, 0, 93, 93, 93, 93, 93, 93, 125, 93, 15, 3, 3, 3, 3,
- 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18,
- 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 0, 0, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 0, 125, 93, 93, 93, 93, 93, 93, 93, 125,
- 93, 93, 125, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
- 15, 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 0, 0, 0,
- 93, 0, 93, 93, 0, 93, 93, 93, 93, 93, 93, 93, 15, 93, 0, 0, 0, 0, 0,
- 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15,
- 15, 15, 15, 0, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 125, 125, 125, 125, 125, 0, 93, 93, 0, 125, 125, 93,
- 125, 93, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 125, 125, 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, 15,
- 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, 14, 14,
- 14, 14, 14, 14, 14, 14, 4, 4, 4, 4, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
- 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0,
- 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0,
- 93, 93, 93, 93, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93,
- 93, 93, 3, 3, 3, 3, 3, 14, 14, 14, 14, 92, 92, 92, 92, 3, 14, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 18, 18, 18,
- 18, 18, 18, 18, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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, 3,
- 3, 3, 3, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 0, 0, 0, 93, 15, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 15, 15, 15, 15, 15, 15, 15, 125, 125, 125, 93, 93, 93, 93, 0, 0, 93,
+ 93, 125, 125, 125, 125, 93, 15, 3, 15, 125, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93,
+ 93, 93, 93, 125, 15, 93, 93, 93, 93, 3, 3, 3, 3, 3, 3, 3, 3, 93, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 93, 93, 93, 93, 93, 93, 125, 125, 93, 93,
+ 93, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 125, 93, 93, 3, 3, 3, 15,
+ 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 125, 93, 93, 93, 93, 93, 93, 93, 0,
+ 93, 93, 93, 93, 93, 93, 125, 93, 15, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, 3, 3,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 0, 125, 93, 93, 93, 93, 93, 93, 93, 125, 93, 93, 125, 93, 93,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 0, 0, 0, 93, 0, 93, 93, 0,
+ 93, 93, 93, 93, 93, 93, 93, 15, 93, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 0, 15,
+ 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 125, 125, 125, 125, 125, 0, 93, 93, 0, 125, 125, 93, 125, 93, 15, 0,
+ 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 93, 93, 125, 125, 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, 15, 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, 14, 14, 14, 14, 14, 14,
+ 14, 14, 4, 4, 4, 4, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 0, 0, 0, 0, 3, 3, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 93, 93, 93,
+ 93, 93, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 93, 93, 93, 93, 93, 93, 3,
+ 3, 3, 3, 3, 14, 14, 14, 14, 92, 92, 92, 92, 3, 14, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 18, 18, 18, 18, 18, 18,
+ 18, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 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, 3, 3, 3, 3, 0,
+ 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0,
+ 93, 15, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 125, 125, 125, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 3, 92, 93, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 0, 0, 14, 93, 93, 3, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
- 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 125, 125, 93, 93, 93, 14, 14, 14, 125, 125, 125, 125, 125, 125,
- 17, 17, 17, 17, 17, 17, 17, 17, 93, 93, 93, 93, 93, 93, 93, 93, 14,
- 14, 93, 93, 93, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 125, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 92, 92, 92, 92, 92, 92, 92,
+ 92, 92, 92, 92, 92, 92, 92, 92, 3, 92, 93, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 92, 92, 92, 92, 0, 92, 92, 92, 92, 92, 92,
+ 92, 0, 92, 92, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 0, 0, 14, 93, 93, 3, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 125,
+ 125, 93, 93, 93, 14, 14, 14, 125, 125, 125, 125, 125, 125, 17, 17,
+ 17, 17, 17, 17, 17, 17, 93, 93, 93, 93, 93, 93, 93, 93, 14, 14, 93,
+ 93, 93, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 93, 93, 93, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 14, 14, 93, 93, 93, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 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, 0, 0, 0, 0, 0, 0, 0, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 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, 0, 0, 0,
+ 0, 0, 0, 0, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 21, 21, 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21,
+ 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 0, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108,
- 0, 108, 108, 0, 0, 108, 0, 0, 108, 108, 0, 0, 108, 108, 108, 108, 0,
- 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 0, 21, 0, 21,
- 21, 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 0, 108, 108, 108, 108, 0,
- 0, 108, 108, 108, 108, 108, 108, 108, 108, 0, 108, 108, 108, 108, 108,
- 108, 108, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 0, 108, 108,
- 108, 108, 0, 108, 108, 108, 108, 108, 0, 108, 0, 0, 0, 108, 108, 108,
- 108, 108, 108, 108, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 21,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108,
+ 21, 21, 21, 21, 21, 21, 108, 0, 108, 108, 0, 0, 108, 0, 0, 108, 108,
+ 0, 0, 108, 108, 108, 108, 0, 108, 108, 108, 108, 108, 108, 108, 108,
+ 21, 21, 21, 21, 0, 21, 0, 21, 21, 21, 21, 21, 21, 21, 0, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21,
+ 108, 108, 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108,
+ 0, 108, 108, 108, 108, 0, 0, 108, 108, 108, 108, 108, 108, 108, 108,
+ 0, 108, 108, 108, 108, 108, 108, 108, 0, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 108, 108, 0, 108, 108, 108, 108, 0, 108, 108, 108, 108, 108,
+ 0, 108, 0, 0, 0, 108, 108, 108, 108, 108, 108, 108, 0, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 21, 21, 21, 21, 21, 21, 0, 0, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 7, 21, 21, 21, 21,
+ 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7,
- 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 21, 21, 21, 21, 21, 21, 0, 0, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21,
- 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 7, 21,
+ 108, 108, 108, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21,
+ 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 7,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 108, 108, 108,
+ 21, 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 7, 21, 21, 21, 21, 21, 21,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 7, 21, 21, 21, 21, 21,
21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
- 21, 21, 7, 21, 21, 21, 21, 21, 21, 108, 21, 0, 0, 9, 9, 9, 9, 9, 9,
+ 21, 21, 21, 7, 21, 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7, 21,
+ 21, 21, 21, 21, 21, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
+ 108, 7, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 7, 21, 21, 21, 21, 21, 21,
+ 108, 21, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 93,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 14, 14, 14, 14,
93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 14, 14, 14, 14, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 14, 14, 14, 14, 14, 14, 14,
- 14, 93, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 93,
- 14, 14, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 93, 93, 93, 93, 93, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93,
- 93, 93, 93, 93, 93, 93, 0, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
- 93, 93, 93, 93, 93, 93, 93, 0, 0, 93, 93, 93, 93, 93, 93, 93, 0, 93,
- 93, 0, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 92, 92, 92, 92, 92, 92, 92,
- 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 15, 14, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 93, 93, 93, 93, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0,
- 0, 0, 0, 4, 15, 15, 15, 15, 15, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
- 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
- 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
- 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 93, 93, 93, 93, 93,
- 93, 93, 92, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 3,
- 3, 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, 14, 18, 18, 18, 4, 18, 18, 18, 18, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 93, 14, 14, 14, 14, 14, 14, 14, 14, 93, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 93, 14, 14, 3, 3, 3, 3, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 93, 93, 93, 93, 0, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 15, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 0, 93, 93, 93, 93, 93, 93, 93, 0, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 0, 0, 93, 93, 93, 93,
+ 93, 93, 93, 0, 93, 93, 0, 93, 93, 93, 93, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 0, 0, 93, 93, 93, 93, 93, 93, 93, 92, 92,
+ 92, 92, 92, 92, 92, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0,
+ 15, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 93, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 93, 93, 93, 93, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0,
+ 4, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 15, 0, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15,
+ 15, 15, 15, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 93, 93, 93, 93,
+ 93, 93, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
+ 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
+ 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
+ 207, 207, 207, 207, 207, 207, 93, 93, 93, 93, 93, 93, 93, 92, 0, 0,
+ 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 3, 3, 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, 14, 18, 18, 18, 4, 18, 18, 18, 18, 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, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
- 0, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0,
- 15, 15, 0, 15, 0, 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 0, 15, 15, 15, 15, 0, 15, 0, 15, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
- 15, 0, 15, 0, 15, 0, 15, 15, 15, 0, 15, 15, 0, 15, 0, 0, 15, 0, 15,
- 0, 15, 0, 15, 0, 15, 0, 15, 15, 0, 15, 0, 0, 15, 15, 15, 15, 0, 15,
- 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15,
- 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15,
- 15, 0, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18,
- 18, 18, 18, 18, 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 14, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 0, 15, 15, 15,
+ 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 0, 15, 0,
+ 0, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15,
+ 0, 15, 0, 15, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 15, 0, 15, 0, 15, 0,
+ 15, 15, 15, 0, 15, 15, 0, 15, 0, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15,
+ 0, 15, 15, 0, 15, 0, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15,
+ 15, 0, 15, 15, 15, 15, 0, 15, 15, 15, 15, 0, 15, 0, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 15, 15, 15, 0, 15, 15, 15,
+ 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0,
- 0, 0, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14,
- 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 11, 11, 11, 11, 11, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0,
- 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,
+ 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 11, 11, 11, 11, 11,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 14, 14, 14,
- 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14,
+ 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 0, 0, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 14, 14,
- 14, 14, 14, 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14,
+ 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14,
14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14,
14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
- 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14,
- 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ 14, 14, 14, 14, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 14, 14, 14,
+ 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14,
+ 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 0, 0, 0, 0, 0, 0, 15, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0
#endif /* TCL_UTF_MAX > 3 */
};
@@ -1642,7 +1668,7 @@ static const int groups[] = {
-2760383, -2760127, -2768575, 1859714, -9044927, -10823615, -12158,
-10830783, -10833599, -10832575, -10830015, -10817983, -10824127,
-10818751, 237633, -12223, -10830527, -9058239, 237698, 9949314,
- 18, 17, 10305, 10370, 8769, 8834
+ 18, 17, 10305, 10370, 10049, 10114, 8769, 8834
};
#if TCL_UTF_MAX > 3 || TCL_MAJOR_VERSION > 8 || TCL_MINOR_VERSION > 6
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index bbacbe2..32721f6 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -123,7 +123,7 @@ static int FindElement(Tcl_Interp *interp, const char *string,
* represents a list index in the form, "end-offset". It is used as a
* performance optimization in Tcl_GetIntForIndex. The internal rep is
* stored directly in the wideValue, so no memory management is required
- * for it. This is a caching intrep, keeping the result of a parse
+ * for it. This is a caching internalrep, keeping the result of a parse
* around. This type is only created from a pre-existing string, so an
* updateStringProc will never be called and need not exist. The type
* is unregistered, so has no need of a setFromAnyProc either.
@@ -2589,7 +2589,7 @@ TclStringMatchObj(
trivial = nocase ? 0 : TclMatchIsTrivial(TclGetString(ptnObj));
*/
- if (TclHasIntRep(strObj, &tclStringType) || (strObj->typePtr == NULL)) {
+ if (TclHasInternalRep(strObj, &tclStringType) || (strObj->typePtr == NULL)) {
Tcl_UniChar *udata, *uptn;
udata = Tcl_GetUnicodeFromObj(strObj, &length);
@@ -3035,7 +3035,7 @@ Tcl_DStringGetResult(
dsPtr->string = TclGetString(iPtr->objResultPtr);
dsPtr->length = iPtr->objResultPtr->length;
dsPtr->spaceAvl = dsPtr->length + 1;
- TclFreeIntRep(iPtr->objResultPtr);
+ TclFreeInternalRep(iPtr->objResultPtr);
iPtr->objResultPtr->bytes = &tclEmptyString;
iPtr->objResultPtr->length = 0;
}
@@ -3752,12 +3752,12 @@ GetEndOffsetFromObj(
Tcl_WideInt *widePtr) /* Location filled in with an integer
* representing an index. */
{
- Tcl_ObjIntRep *irPtr;
+ Tcl_ObjInternalRep *irPtr;
Tcl_WideInt offset = -1; /* Offset in the "end-offset" expression - 1 */
ClientData cd;
- while ((irPtr = TclFetchIntRep(objPtr, &endOffsetType)) == NULL) {
- Tcl_ObjIntRep ir;
+ while ((irPtr = TclFetchInternalRep(objPtr, &endOffsetType)) == NULL) {
+ Tcl_ObjInternalRep ir;
int length;
const char *bytes = TclGetStringFromObj(objPtr, &length);
@@ -3816,8 +3816,8 @@ GetEndOffsetFromObj(
}
}
}
- /* Clear invalid intreps left by TclParseNumber */
- TclFreeIntRep(objPtr);
+ /* Clear invalid internalreps left by TclParseNumber */
+ TclFreeInternalRep(objPtr);
if (t1 && t2) {
/* We have both integer values */
@@ -3942,7 +3942,7 @@ GetEndOffsetFromObj(
parseOK:
/* Success. Store the new internal rep. */
ir.wideValue = offset;
- Tcl_StoreIntRep(objPtr, &endOffsetType, &ir);
+ Tcl_StoreInternalRep(objPtr, &endOffsetType, &ir);
}
offset = irPtr->wideValue;
@@ -4047,7 +4047,7 @@ TclIndexEncode(
int idx;
if (TCL_OK == GetWideForIndex(interp, objPtr, (unsigned)TCL_INDEX_END , &wide)) {
- const Tcl_ObjIntRep *irPtr = TclFetchIntRep(objPtr, &endOffsetType);
+ const Tcl_ObjInternalRep *irPtr = TclFetchInternalRep(objPtr, &endOffsetType);
if (irPtr && irPtr->wideValue >= 0) {
/* "int[+-]int" syntax, works the same here as "int" */
irPtr = NULL;
@@ -4330,7 +4330,7 @@ TclSetProcessGlobalValue(
/*
* Fill the local thread copy directly with the Tcl_Obj value to avoid
- * loss of the intrep. Increment newValue refCount early to handle case
+ * loss of the internalrep. Increment newValue refCount early to handle case
* where we set a PGV to itself.
*/
diff --git a/generic/tclVar.c b/generic/tclVar.c
index 51c51f8..d2b8227 100644
--- a/generic/tclVar.c
+++ b/generic/tclVar.c
@@ -253,20 +253,20 @@ static const Tcl_ObjType localVarNameType = {
FreeLocalVarName, DupLocalVarName, NULL, NULL
};
-#define LocalSetIntRep(objPtr, index, namePtr) \
+#define LocalSetInternalRep(objPtr, index, namePtr) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
Tcl_Obj *ptr = (namePtr); \
if (ptr) {Tcl_IncrRefCount(ptr);} \
ir.twoPtrValue.ptr1 = ptr; \
ir.twoPtrValue.ptr2 = INT2PTR(index); \
- Tcl_StoreIntRep((objPtr), &localVarNameType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &localVarNameType, &ir); \
} while (0)
-#define LocalGetIntRep(objPtr, index, name) \
+#define LocalGetInternalRep(objPtr, index, name) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &localVarNameType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &localVarNameType); \
(name) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr1 : NULL; \
(index) = irPtr ? PTR2INT(irPtr->twoPtrValue.ptr2) : -1; \
} while (0)
@@ -276,22 +276,22 @@ static const Tcl_ObjType parsedVarNameType = {
FreeParsedVarName, DupParsedVarName, NULL, NULL
};
-#define ParsedSetIntRep(objPtr, arrayPtr, elem) \
+#define ParsedSetInternalRep(objPtr, arrayPtr, elem) \
do { \
- Tcl_ObjIntRep ir; \
+ Tcl_ObjInternalRep ir; \
Tcl_Obj *ptr1 = (arrayPtr); \
Tcl_Obj *ptr2 = (elem); \
if (ptr1) {Tcl_IncrRefCount(ptr1);} \
if (ptr2) {Tcl_IncrRefCount(ptr2);} \
ir.twoPtrValue.ptr1 = ptr1; \
ir.twoPtrValue.ptr2 = ptr2; \
- Tcl_StoreIntRep((objPtr), &parsedVarNameType, &ir); \
+ Tcl_StoreInternalRep((objPtr), &parsedVarNameType, &ir); \
} while (0)
-#define ParsedGetIntRep(objPtr, parsed, array, elem) \
+#define ParsedGetInternalRep(objPtr, parsed, array, elem) \
do { \
- const Tcl_ObjIntRep *irPtr; \
- irPtr = TclFetchIntRep((objPtr), &parsedVarNameType); \
+ const Tcl_ObjInternalRep *irPtr; \
+ irPtr = TclFetchInternalRep((objPtr), &parsedVarNameType); \
(parsed) = (irPtr != NULL); \
(array) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr1 : NULL; \
(elem) = irPtr ? (Tcl_Obj *)irPtr->twoPtrValue.ptr2 : NULL; \
@@ -615,7 +615,7 @@ TclObjLookupVarEx(
*arrayPtrPtr = NULL;
restart:
- LocalGetIntRep(part1Ptr, localIndex, namePtr);
+ LocalGetInternalRep(part1Ptr, localIndex, namePtr);
if (localIndex >= 0) {
if (HasLocalVars(varFramePtr)
&& !(flags & (TCL_GLOBAL_ONLY | TCL_NAMESPACE_ONLY))
@@ -639,7 +639,7 @@ TclObjLookupVarEx(
* If part1Ptr is a parsedVarNameType, retrieve the pre-parsed parts.
*/
- ParsedGetIntRep(part1Ptr, parsed, arrayPtr, elem);
+ ParsedGetInternalRep(part1Ptr, parsed, arrayPtr, elem);
if (parsed && arrayPtr) {
if (part2Ptr != NULL) {
/*
@@ -685,7 +685,7 @@ TclObjLookupVarEx(
part2Ptr = Tcl_NewStringObj(part2 + 1,
len - (part2 - part1) - 2);
- ParsedSetIntRep(part1Ptr, arrayPtr, part2Ptr);
+ ParsedSetInternalRep(part1Ptr, arrayPtr, part2Ptr);
part1Ptr = arrayPtr;
}
@@ -721,16 +721,16 @@ TclObjLookupVarEx(
Tcl_Obj *cachedNamePtr = localName(varFramePtr, index);
if (part1Ptr == cachedNamePtr) {
- LocalSetIntRep(part1Ptr, index, NULL);
+ LocalSetInternalRep(part1Ptr, index, NULL);
} else {
/*
* [80304238ac] Trickiness here. We will store and incr the
* refcount on cachedNamePtr. Trouble is that it's possible
- * (see test var-22.1) for cachedNamePtr to have an intrep
+ * (see test var-22.1) for cachedNamePtr to have an internalrep
* that contains a stored and refcounted part1Ptr. This
* would be a reference cycle which leads to a memory leak.
*
- * The solution here is to wipe away all intrep(s) in
+ * The solution here is to wipe away all internalrep(s) in
* cachedNamePtr and leave it as string only. This is
* radical and destructive, so a better idea would be welcome.
*/
@@ -739,24 +739,24 @@ TclObjLookupVarEx(
* Firstly set cached local var reference (avoid free before set,
* see [45b9faf103f2])
*/
- LocalSetIntRep(part1Ptr, index, cachedNamePtr);
+ LocalSetInternalRep(part1Ptr, index, cachedNamePtr);
/* Then wipe it */
- TclFreeIntRep(cachedNamePtr);
+ TclFreeInternalRep(cachedNamePtr);
/*
* Now go ahead and convert it the the "localVarName" type,
* since we suspect at least some use of the value as a
* varname and we want to resolve it quickly.
*/
- LocalSetIntRep(cachedNamePtr, index, NULL);
+ LocalSetInternalRep(cachedNamePtr, index, NULL);
}
} else {
/*
* At least mark part1Ptr as already parsed.
*/
- ParsedSetIntRep(part1Ptr, NULL, NULL);
+ ParsedSetInternalRep(part1Ptr, NULL, NULL);
}
donePart1:
@@ -4115,7 +4115,7 @@ ArraySetCmd(
*/
arrayElemObj = objv[2];
- if (TclHasIntRep(arrayElemObj, &tclDictType) && arrayElemObj->bytes == NULL) {
+ if (TclHasInternalRep(arrayElemObj, &tclDictType) && arrayElemObj->bytes == NULL) {
Tcl_Obj *keyPtr, *valuePtr;
Tcl_DictSearch search;
int done;
@@ -5788,7 +5788,7 @@ FreeLocalVarName(
int index;
Tcl_Obj *namePtr;
- LocalGetIntRep(objPtr, index, namePtr);
+ LocalGetInternalRep(objPtr, index, namePtr);
index++; /* Compiler warning bait. */
if (namePtr) {
@@ -5804,11 +5804,11 @@ DupLocalVarName(
int index;
Tcl_Obj *namePtr;
- LocalGetIntRep(srcPtr, index, namePtr);
+ LocalGetInternalRep(srcPtr, index, namePtr);
if (!namePtr) {
namePtr = srcPtr;
}
- LocalSetIntRep(dupPtr, index, namePtr);
+ LocalSetInternalRep(dupPtr, index, namePtr);
}
/*
@@ -5827,7 +5827,7 @@ FreeParsedVarName(
Tcl_Obj *arrayPtr, *elem;
int parsed;
- ParsedGetIntRep(objPtr, parsed, arrayPtr, elem);
+ ParsedGetInternalRep(objPtr, parsed, arrayPtr, elem);
parsed++; /* Silence compiler. */
if (arrayPtr != NULL) {
@@ -5844,10 +5844,10 @@ DupParsedVarName(
Tcl_Obj *arrayPtr, *elem;
int parsed;
- ParsedGetIntRep(srcPtr, parsed, arrayPtr, elem);
+ ParsedGetInternalRep(srcPtr, parsed, arrayPtr, elem);
parsed++; /* Silence compiler. */
- ParsedSetIntRep(dupPtr, arrayPtr, elem);
+ ParsedSetInternalRep(dupPtr, arrayPtr, elem);
}
/*
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c
index c1ba395..c77e8db 100644
--- a/generic/tclZipfs.c
+++ b/generic/tclZipfs.c
@@ -3913,7 +3913,7 @@ TclZipfs_TclLibrary(void)
}
#elif !defined(NO_DLFCN_H)
Dl_info dlinfo;
- if (dladdr(TclZipfs_TclLibrary, &dlinfo) && (dlinfo.dli_fname != NULL)
+ if (dladdr((const void *)TclZipfs_TclLibrary, &dlinfo) && (dlinfo.dli_fname != NULL)
&& (ZipfsAppHookFindTclInit(dlinfo.dli_fname) == TCL_OK)) {
return Tcl_NewStringObj(zipfs_literal_tcl_library, -1);
}
diff --git a/library/encoding/cns11643.enc b/library/encoding/cns11643.enc
new file mode 100644
index 0000000..44dd9b7
--- /dev/null
+++ b/library/encoding/cns11643.enc
@@ -0,0 +1,1584 @@
+# Encoding file: cns11643, double-byte
+D
+2134 0 93
+21
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00004E284E364E3F4E854E054E04518251965338536953B64E2A4E874E4951E2
+4E464E8F4EBC4EBE516651E35204529C53B95902590A5B805DDB5E7A5E7F5EF4
+5F505F515F61961D4E3C4E634E624EA351854EC54ECF4ECE4ECC518451865722
+572351E45205529E529D52FD5300533A5C735346535D538653B7620953CC6C15
+53CE57216C3F5E005F0C623762386534653565E04F0E738D4E974EE04F144EF1
+4EE74EF74EE64F1D4F024F054F2256D8518B518C519951E55213520B52A60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+22
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000053225304530353075407531E535F536D538953BA53D0598053F653F753F9
+597E53F4597F5B565724590459185932593059345DDF59755E845B825BF95C14
+5FD55FD45FCF625C625E626462615E815E835F0D5F52625A5FCA5FC7623965EE
+624F65E7672F6B7A6C39673F673C6C376C446C45738C75927676909390926C4B
+6C4C4E214E204E224E684E894E984EF94EEF7F5182784EF84F064F034EFC4EEE
+4F1690994F284F1C4F074F1A4EFA4F17514A962351724F3B51B451B351B20000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+23
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00004F6451E84F675214520F5215521852A84F33534B534F518F5350521C538B
+522153BE52AE53D2541653FF538E540054305405541354155445541956E35735
+57365731573258EE59054E545447593656E756E55741597A574C5986574B5752
+5B865F535C1859985C3D5C78598E59A25990598F5C8059A15E085B925C285C2A
+5C8D5EF55F0E5C8B5C895C925FD35FDA5C935FDB5DE0620F625D625F62676257
+9F505E8D65EB65EA5F7867375FD2673267366B226BCE5FEE6C586C516C770000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+24
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006C3C5FFA6C5A5FF76C53706F7072706E6283628C707372B172B26287738F
+627B627A6270793C6288808D808E6272827B65F08D718FB99096909A67454E24
+4E7167554E9C4F454F4A4F394F37674B4F324F426C1A4F444F4B6C6B4F404F35
+4F3151516C6F5150514E6C6D6C87519D6C9C51B551B851EC522352275226521F
+522B522052B452B372C65325533B537473957397739373947392544D75397594
+543A7681793D5444544C5423541A5432544B5421828F54345449545054220000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+25
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000543F5451545A542F8FC956E956F256F356EF56ED56EC56E6574896285744
+573F573C575357564F85575F5743575857574F744F894F8457464F4C573D4F6A
+57425754575558F158F258F0590B9EA656F1593D4F955994598C519E599C51BE
+5235599F5233599B52315989599A530B658853925B8D54875BFE5BFF5BFD5C2B
+54885C845C8E5C9C5465546C5C855DF55E09546F54615E0B54985E925E905F03
+56F75F1E5F6357725FE75FFE5FE65FDC5FCE57805FFC5FDF5FEC5FF657620000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+26
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005FF25FF05FF95945621359BA59CF623B623C628259C159B659BC6278628B
+59B1629E62A5629B629C6299628D6285629D62755C445C475CAE65F65CA05CB5
+5CAF66F5675B5C9F675467525CA267586744674A67615CB66C7F6C916C9E5E14
+6C6E6C7C6C9F6C755F246C566CA26C795F7D6CA15FE56CAA6CA0601970797077
+707E600A7075707B7264601E72BB72BC72C772B972BE72B66011600C7398601C
+6214623D62AD7593768062BE768376C076C162AE62B377F477F562A97ACC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+27
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007ACD7CFA809F80918097809466048286828C65FB8295660B866C66058FB5
+8FBE8FC766F68FC190A990A4678E6792677690A896279626962B963396349629
+4E3D679F4E9D4F934F8A677D67814F6D4F8E4FA04FA24FA14F9F4FA36C1D4F72
+6CEC4F8C51566CD96CB651906CAD6CE76CB751ED51FE522F6CC3523C52345239
+52B952B552BF53556C9D5376537A53936D3053C153C253D554856CCF545F5493
+548954799EFE548F5469546D70915494546A548A708356FD56FB56F872D80000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+28
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000056FC56F6576557815763576772D1576E5778577F73A673A258F3594B594C
+74DD74E8753F59AD753E59C4759859C259B076F176F076F577F859BF77F959C9
+59B859AC7942793F79C559B759D77AFB5B607CFD5B965B9E5B945B9F5B9D80B5
+5C005C1982A082C05C495C4A82985CBB5CC182A782AE82BC5CB95C9E5CB45CBA
+5DF65E135E125E7782C35E9882A25E995E9D5EF8866E5EF98FD25F065F218FCD
+5F255F558FD790B290B45F845F8360306007963D6036963A96434FCD5FE90000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+29
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000603D60084FC94FCB62BA62B24FDC62B762E462A74FDB4FC74FD662D562E1
+62DD62A662C162C562C062DF62E062DE53976589539965A665BA54A165FF54A5
+66176618660165FE54AE670C54B6676B67966782678A54BC67A354BE67A2678F
+54B067F967806B266B276B686B69579D6B816BB46BD1578F57996C1C579A5795
+58F4590D59536C976C6C6CDF5A006CEA59DD6CE46CD86CB26CCE6CC859F2708B
+70887090708F59F570877089708D70815BA8708C5CD05CD872405CD75CCB0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007265726672685CC95CC772CD72D372DB5CD472CF73A773A3739E5CDF73AF
+5DF95E2173AA739C5E2075427544753B75415E9B759B759E5F0779C479C379C6
+6037603979C7607279CA604560537ACF7C767C747CFF7CFC6042605F7F5980A8
+6058606680B0624280B362CF80A480B680A780AC630380A65367820E82C4833E
+829C63006313631462FA631582AA62F082C9654365AA82A682B2662166326635
+8FCC8FD98FCA8FD88FCF90B7661D90AD90B99637670F9641963E96B697510000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000097634E574E794EB24EB04EAF4EB14FD24FD567E44FBE4FB84FB04FB14FC8
+67F667EE4FC64FCC4FE54FE34FB4516A67B2519F67C651C167CC51C251C35245
+524867C967CA524F67EA67CB52C552CA52C453275358537D6BE053DD53DC53DA
+53D954B96D1F54D054B454CA6D0A54A354DA54A46D1954B2549E549F54B56D1D
+6D4254CD6D1854CC6D03570057AC5791578E578D579257A1579057A657A8709F
+579C579657A770A170B470B570A958F572495909590872705952726E72CA0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000059DF72E859EB59EF59F059D55A0D5A0459F95A0259F859E259D959E75B6A
+73B473EB5BAB73C75C1B5C2F73C6663C73CB74EC74EE5CD15CDC5CE65CE15CCD
+76795CE25CDD5CE55DFB5DFA5E1E76F75EA176FA77E75EFC5EFB5F2F78127805
+5F66780F780E7809605C7813604E6051794B794560236031607C605279D66060
+604A60617AD162187B017C7A7C787C797C7F7C807C81631F631762EA63216304
+63057FBE6531654465408014654265BE80C76629661B80C86623662C661A0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006630663B661E6637663880C9670E80D780E667E867D6822167C767BC6852
+67BF67D567FE836367FB833A67B168016805680067D782F26B2A6B6B82FB82F6
+82F082EA6BE182E082FA6D236CFF6D146D056D136D066D21884E6D156CAF6CF4
+6D026D458A076D268FE36D448FEE6D2470A590BD70A390D570A270BB70A070AA
+90C891D470A870B670B270A79653964A70B9722E5005723C5013726D5030501B
+72E772ED503372EC72E572E24FF773C473BD73CF73C973C173D0503173CE0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000074ED74EB519374EF754975507546754A5261754D75A6525E525F525575A8
+52CD530E76C776FF54E276FD77E6780A54F37804780B78075504781578085511
+79D379D479D079D77A7C54F854E07A7D7A837A8257017AD47AD57AD37AD07AD2
+7AFE7AFC7C777C7C7C7B57B657BF57C757D057B957C1590E594A7F8F80D35A2D
+80CB80D25A0F810980E280DF80C65B6C822482F782D882DD5C565C5482F882FC
+5CEE5CF182E95D0082EE5E2982D0830E82E2830B82FD517986765F6786780000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+2F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000605A60678675867D6088884288666081898C8A0560958A0660978C9F609C
+8FF18FE78FE98FEF90C290BC632C90C690C06336634390CD90C9634B90C4633C
+958163419CEC50324FF9501D4FFF50044FF05003635150024FFC4FF250245008
+5036502E65C35010503850394FFD50564FFB51A351A651A1681A684951C751C9
+5260526452595265526752575263682B5253682F52CF684452CE52D052D152CC
+68266828682E550D54F46825551354EF54F554F9550255006B6D808255180000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+30
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000054F054F66BE86BE355196BE7570557C96D6357B757CD6D0D6D616D9257BE
+57BB6D6D57DB57C857C457C557D157CA57C06D676D605A215A2A6D7C5A1D6D82
+5A0B6D2F6D686D8B6D7E5A226D846D165A246D7B5A145A316D905A2F5A1A5A12
+70DD70CB5A2670E270D75BBC5BBB5BB75C055C065C525C5370C770DA5CFA5CEB
+72425CF35CF55CE95CEF72FA5E2A5E305E2E5E2C5E2F5EAF5EA973D95EFD5F32
+5F8E5F935F8F604F609973D2607E73D46074604B6073607573E874DE60560000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+31
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000060A9608B60A6755B609360AE609E60A7624575C075BF632E75BA63526330
+635B771B6319631B77126331635D6337633563537722635C633F654B78227835
+658B7828659A66506646664E6640782A664B6648795B66606644664D79526837
+682479EC79E0681B683679EA682C681968566847683E681E7A8B681568226827
+685968586855683068236B2E6B2B6B306B6C7B096B8B7C846BE96BEA6BE56D6B
+7C8D7C856D736D577D117D0E6D5D6D566D8F6D5B6D1C6D9A6D9B6D997F610000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+32
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006D816D717F5D7F5B6D726D5C6D9670C470DB70CC70D070E370DF80F270D6
+70EE70D580FB81008201822F727A833372F573028319835173E273EC73D573F9
+73DF73E683228342834E831B73E473E174F3834D831683248320755675557558
+7557755E75C38353831E75B4834B75B18348865376CB76CC772A86967716770F
+869E8687773F772B770E772486857721771877DD86A7869578247836869D7958
+79598843796279DA79D9887679E179E579E879DB886F79E279F08874887C0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+33
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008A128C477ADA7ADD8CA47ADB7ADC8D788DB57B0D7B0B7B147C8E7C868FF5
+7C877C837C8B90048FFC8FF690D67D2490D990DA90E37D257F627F937F997F97
+90DC90E47FC47FC6800A91D591E28040803C803B80F680FF80EE810481038107
+506A506180F750605053822D505D82278229831F8357505B504A506250158321
+505F506983188358506450465040506E50738684869F869B868986A68692868F
+86A0884F8878887A886E887B88848873555055348A0D8A0B8A19553655350000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+34
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000553055525545550C8FF990099008553990DE9151553B554091DB91DF91DE
+91D691E095859660965957F4965657ED57FD96BD57F8580B5042505958075044
+50665052505450715050507B507C505857E758015079506C507851A851D151CF
+5268527652D45A5553A053C45A385558554C55685A5F55495A6C5A53555D5529
+5A43555455535A44555A5A48553A553F552B57EA5A4C57EF5A695A4757DD57FE
+5A4257DE57E65B6E57E857FF580358F768A6591F5D1A595B595D595E5D0D0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+35
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005D265A2B5D0F5A3B5D125D235A615A3A5A6E5A4B5A6B5EB45EB95A455A4E
+5A685A3D5A715A3F5A6F5A7560905A735A2C5A595A545A4F5A6360CF60E45BC8
+60DD5BC360B15C5B5C6160CA5D215D0A5D0960C05D2C5D08638A63825D2A5D15
+639E5D105D1363975D2F5D18636F5DE35E395E355E3A5E32639C636D63AE637C
+5EBB5EBA5F345F39638563816391638D6098655360D066656661665B60D760AA
+666260A160A4688760EE689C60E7686E68AE60DE6956686F637E638B68A90000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+36
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000687563796386639368776373636A686B636C68AA637F687163B263BA6896
+688B6366637468A4655A687B654E654D658D658E65AD6B3365C765CA6B9165C9
+6B8D65E366576C2A66636667671A671967166DAC6DE9689E68B6689868736E00
+689A688E68B768DB68A5686C68C168846DDB6DF46895687A68996DF068B868B9
+68706DCF6B356DD06B906BBB6BED6DD76DCD6DE36DC16DC36DCE70F771176DAD
+6E0470F06DB970F36DE770FC6E086E0671136E0A6DB070F66DF86E0C710E0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+37
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006DB1727B6E026E076E096E016E176DFF6E12730A730871037107710170F5
+70F1710870F2710F740170FE7407740073FA731A7310730E740273F374087564
+73FB75CE75D275CF751B752375617568768F756775D37739772F769077317732
+76D576D776D67730773B7726784877407849771E784A784C782678477850784B
+7851784F78427846796B796E796C79F279F879F179F579F379F97A907B357B3B
+7A9A7A937A917AE17B247B337B217B1C7B167B177B367B1F7B2F7C937C990000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+38
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007C9A7C9C7C947D497C967D347D377D3D7D2D7D367D4C7D457D2C7D487D41
+7D477F3B7D3F7D4A7D3B7D288008801A7F9C801D7F9B8049804580447C9B7FD1
+7FC7812A812E801F801E81318047811A8134811781258119811B831D83718384
+8380837283A18127837983918211839F83AD823A8234832382748385839C83B7
+8658865A8373865786B2838F86AE8395839983758845889C889488A3888F88A5
+88A988A6888A88A0889089928991899483B08A268A328A2883AE83768A1C0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+39
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000086568A2B8A2086C28A2986C586BA86B08A218C3A86B38C5B8C588C7C86BB
+8CA68CAE8CAD8D6588528D7E88958D7C8D7F8D7A8DBD889188A18DC08DBB8EAD
+8EAF8ED6889788A488AC888C88938ED9898289D69012900E90258A27901390EE
+8C3990AB90F78C5D9159915491F291F091E591F68DC28DB995878DC1965A8EDE
+8EDD966E8ED78EE08EE19679900B98E198E6900C9EC49ED24E8090F04E81508F
+50975088508990EC90E950815160915A91535E4251D391F491F151D251D60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000527391F9527091EB91F791E853A853A653C5559755DE966D966B559655B4
+96BF55859804559B55A0509B555950945586508B50A355AF557A508E509D5068
+559E509255A9570F570E581A5312581F53A4583C5818583E582655AD583A5645
+5822559358FB5963596455815AA85AA35A825A885AA15A855A9855955A99558E
+5A895A815A965A80581E58275A91582857F5584858255ACF581B5833583F5836
+582E58395A875AA0582C5A7959615A865AAB5AAA5AA45A8D5A7E5A785BD50000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005A7C5AA55AAC5C1E5C5F5C5E5D445D3E5A975D485D1C5AA95D5B5D4D5A8C
+5A9C5D575A935D535D4F5BCD5D3B5D465BD15BCA5E465E475C305E485EC05EBD
+5EBF5D4B5F115D355F3E5F3B5D555F3A5D3A5D525D3D5FA75D5960EA5D396107
+6122610C5D325D3660B360D660D25E4160E360E560E95FAB60C9611160FD60E2
+60CE611E61206121621E611663E263DE63E660F860FC60FE60C163F8611863FE
+63C163BF63F763D1655F6560656163B063CE65D163E863EF667D666B667F0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000063CA63E066736681666D6669646163DF671E68ED63DC63C463D863D36903
+63C768FE68E5691E690263D763D9690968CA690065646901691868E268CF659D
+692E68C568FF65D2691C68C3667B6B6F66716B6E666A6BBE67016BF46C2D6904
+6DB66E756E1E68EA6E18690F6E4868F76E4F68E46E426E6A6E706DFE68E16907
+6E6D69086E7B6E7E6E5968EF6E5769146E806E5068FD6E296E766E2A6E4C712A
+68CE7135712C7137711D68F468D1713868D47134712B7133712771246B3B0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000712D7232728372827287730673247338732A732C732B6DFC732F73287417
+6E496E88741974386E45741F7414743C73F7741C74157418743974F975246E51
+6E3B6E03756E756D7571758E6E6175E56E286E606E716E6B769476B36E3076D9
+6E657748774977436E776E55774277DF6E66786378766E5A785F786679667971
+712E713179767984797579FF7A0771287A0E7A09724B725A7288728972867285
+7AE77AE27B55733073227B437B577B6C7B427B5373267B417335730C7CA70000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007CA07CA67CA47D74741A7D59742D7D607D577D6C7D7E7D6474207D5A7D5D
+752F756F756C7D767D4D7D7575E67FD37FD675E475D78060804E8145813B7747
+814881428149814081148141774C81EF81F68203786483ED785C83DA841883D2
+8408787084007868785E786284178346841483D38405841F8402841683CD83E6
+7AE6865D86D586E17B447B487B4C7B4E86EE884788467CA27C9E88BB7CA188BF
+88B47D6388B57D56899A8A437D4F7D6D8A5A7D6B7D527D548A358A388A420000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+3F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008A498A5D8A4B8A3D7F667FA27FA07FA18C608C5E8C7F8C7E8C8380D48CB1
+8D878152814F8D888D83814D813A8D868D8B8D828DCA8DD28204823C8DD48DC9
+8EB0833B83CF83F98EF28EE48EF38EEA83E78EFD83FC8F9D902B902A83C89028
+9029902C840183DD903A90309037903B83CB910A83D683F583C991FE922083DE
+920B84069218922283D5921B920883D1920E9213839A83C3959583EE83C483FB
+968C967B967F968183FE968286E286E686D386E386DA96EE96ED86EB96EC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+40
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000975F976F86D7976D86D188488856885588BA88D798F088B888C088BE9AA9
+88BC88B79AE04EB7890188C950CC50BC899750AA50B989DB50AB50C350CD517E
+527E52798A588A4452E152E052E7538053AB53AA53A953E055EA8C8055D78CBE
+8CB055C157158D84586C8D89585C58505861586A5869585658605866585F5923
+596659688EEF8EF75ACE8EF95AC55AC38EE58EF55AD08EE88EF68EEB8EF18EEC
+8EF45B745B765BDC5BD75BDA5BDB91045C205D6D5D6690F95D645D6E91000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+41
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005D605F425F5A5F6E9164915F6130613A612A614361196131921A613D920F
+920C92006408643264389206643192276419921C6411921992176429641D957B
+958D958C643C96876446644796899683643A640796C8656B96F16570656D9770
+65E4669398A998EB9CE69EF9668F4E844EB6669250BF668E50AE694650CA50B4
+50C850C250B050C150BA693150CB50C9693E50B8697C694352786973527C6955
+55DB55CC6985694D69506947696769366964696155BF697D6B446B406B710000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+42
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006B736B9C55C855F255CD6BC155C26BFA6C316C325864584F6EB86EA8586F
+6E916EBB585D6E9A5865585B6EA9586358716EB56E6C6EE85ACB6EDD6EDA6EE6
+6EAC5AB05ABF5AC86ED96EE36EE96EDB5ACA716F5AB65ACD71485A90714A716B
+5BD9714F715771745D635D4A5D6571457151716D5D6872517250724E5E4F7341
+5E4A732E73465EC574275EC674487453743D5FAF745D74566149741E74477443
+74587449612E744C7445743E61297501751E91686223757A75EE760276970000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+43
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007698641064126409775D77647753775878827890788A6439787A787D6423
+788B787864306428788D788878927881797E798364256427640B7980641B642E
+64217A0F656F65927A1D66867AA17AA466907AE97AEA66997B627B6B67207B5E
+695F7B79694E69627B6F7B686945696A7CAE6942695769597CB069487D906935
+7D8A69337D8B7D997D9569787D877D787D977D897D986976695869417FA3694C
+693B694B7FDD8057694F8163816A816C692F697B693C815D81756B43815F0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+44
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006B48817D816D6BFB6BFC8241844F84846E9B847F6EC88448842A847B8472
+8464842E845C84536EC6844184C86EC184628480843E848384716EA6844A8455
+84586EC36EDC6ED886FC86FD87156E8D871686FF6EBF6EB36ED0885888CF88E0
+6EA371477154715289E78A6A8A80715D8A6F8A6571788A788A7D8A8871587143
+8A648A7E715F8A678C638C88714D8CCD724F8CC9728C8DED7290728E733C7342
+733B733A73408EB1734974448F048F9E8FA090439046904890459040904C0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+45
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000074427446910C9113911574FF916B9167925D9255923569839259922F923C
+928F925C926A9262925F926B926E923B92449241959A7699959976DD7755775F
+968F77529696775A7769776796F496FC776D9755788797797894788F788497EE
+97F57886980B788398F37899788098F798FF98F5798298EC98F17A117A18999A
+7A129AE29B3D9B5D9CE87A1B9CEB9CEF9CEE9E819F1450D050D950DC50D87B69
+50E150EB7B737B7150F450E250DE7B767B637CB251F47CAF7D887D8652ED0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+46
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000052EA7D7F53327D7A53AE53B07D8355FB5603560B7D8456077D9255F87F6B
+5628561E7F6C5618561156515605571758928164588C817758785884587358AD
+58975895587758725896588D59108161596C82495AE782405AE4824584F15AEF
+5626847684795AF05D7B84655D83844084865D8B5D8C844D5D785E5284598474
+5ED05ECF85075FB35FB4843A8434847A617B8478616F6181613C614261386133
+844261606169617D6186622C62288452644C84C56457647C8447843664550000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+47
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000064626471646A6456643B6481846E644F647E646486F7870C86FA86D686F5
+657186F8870E66A5669A669C870D66A688D666A4698F69C569C8699269B288CC
+88D0898569E369C069D669D1699F69A269D289DC89E68A7669E169D5699D8A3F
+8A7769988A846B746BA18A816EF06EF38C3C8C4B6F1B6F0C6F1D6F346F286F17
+8C856F446F426F046F116EFA6F4A7191718E8D93718B718D717F718C717E717C
+71838DEE71888DE98DE372948DE773557353734F7354746C7465746674610000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+48
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000746B746874768F0B7460903F74747506760E91107607910F911176B99114
+76B776E2916E7774777777767775923A777877719265777A715B777B78A678AE
+78B8926C924F926078B178AF923679897987923192547A2992507A2A924E7A2D
+7A2C92567A32959F7AEC7AF07B817B9E7B8396917B9296CE7BA37B9F7B9396F5
+7B867CB87CB79772980F980D980E98AC7DC87DB699AF7DD199B07DA87DAB9AAB
+7DB37DCD9CED7DCF7DA49EFD50E67F417F6F7F7150F350DB50EA50DD50E40000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+49
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000050D38023805B50EF8061805F818152805281818482135330824A824C5615
+560C561284BD8495561C849284C35602849684A584B584B384A384E484D884D5
+589884B784AD84DA84938736587A58875891873D872B87478739587B8745871D
+58FE88FF88EA5AEE88F55AD5890088ED890388E95AF35AE289EA5ADB8A9B8A8E
+8AA25AD98A9C8A948A908AA98AAC5C638A9F5D805D7D8A9D5D7A8C675D775D8A
+8CD08CD68CD48D988D9A8D975D7F5E585E598E0B8E088E018EB48EB35EDC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008FA18FA25ED2905A5F449061905F5FB6612C9125917B9176917C61739289
+92F692B192AD929292819284617A92AE9290929E616A6161615695A295A7622B
+642B644D645B645D96A0969D969F96D0647D96D1646664A6975964829764645C
+644B64539819645098149815981A646B645964656477990665A098F89901669F
+99BE99BC99B799B699C069C999B869CE699669B099C469BC99BF69999ADA9AE4
+9AE99AE89AEA9AE569BF9B2669BD69A49B4069B969CA699A69CF69B369930000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000069AA9EBD699E69D969976990510E69B550F769C650FC510D510151DA51D9
+51DB5286528E52EE533353B16EF15647562D56546F37564B5652563156445656
+5650562B6F18564D5637564F58A258B76F7358B26EEE58AA58B558B06F3C58B4
+58A458A76F0E59265AFE6EFD5B046F395AFC6EFC5B065B0A5AFA5B0D5B005B0E
+7187719071895D9171855D8F5D905D985DA45D9B5DA35D965DE45E5A72957293
+5E5E734D5FB86157615C61A661956188747261A3618F75006164750361590000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006178761661856187619E7611760A6198619C7781777C622F6480649B648E
+648D649464C678B264A8648378AD64B9648664B464AF649178A064AA64A164A7
+66B666B3798B66BC66AC799466AD6A0E79886A1C6A1A7A2B7A4A6A0B7A2F69EF
+6A0C69F06A227AAC69D87B886A1269FA7B916A2A7B966A107B8C7B9B6A2969F9
+69EA6A2C6A247BA469E96B526B4F6B537CBA7DA76F106F656F757DAA7DC17DC0
+7DC56FD07DCE6F5C6F3D6F717DCC6F916F0B6F796F816F8F7DA66F596F740000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007DA171AE7F7371A371AD7FE57FDE71AB71A671A2818952F2725772557299
+734B747A8215849784A4748C748484BA84CE74827493747B84AB750984B484C1
+84CD84AA849A84B1778A849D779084BB78C678D378C078D278C778C284AF799F
+799D799E84B67A4184A07A387A3A7A4284DB84B07A3E7AB07BAE7BB38728876B
+7BBF872E871E7BCD87197BB28743872C8741873E8746872087327CC47CCD7CC2
+7CC67CC37CC97CC787427DF887277DED7DE2871A873087117DDC7E027E010000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000088F27DD688FE7DE47DFE88F67E007DFC7DFD88EB7DF57DFF899F7DEB7DE5
+7F787FAE7FE78A998065806A80668068806B819481A18192819681938D968E09
+85018DFF84F88DFD84F58E0385048E068E058DFE8E00851B85038533853484ED
+9123911C853591228505911D911A91249121877D917A91729179877192A5885C
+88E6890F891B92A089A989A589EE8AB1929A8ACC8ACE92978AB792A38AB58AE9
+8AB492958AB38AC18AAF8ACA8AD09286928C92998C8E927E92878CE98CDB0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+4F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000928B8CEB8DA496A18DA28D9D977D977A977E97838E2A8E28977B97848EB8
+8EB68EB98EB78F228F2B8F278F198FA499078FB3999C9071906A99BB99BA9188
+918C92BF92B892BE92DC92E59B3F9B6092D492D69CF192DA92ED92F392DB5103
+92B992E292EB95AF50F695B295B3510C50FD510A96A396A552F152EF56485642
+970A563597879789978C97EF982A98225640981F563D9919563E99CA99DA563A
+571A58AB99DE99C899E058A39AB69AB558A59AF458FF9B6B9B699B729B630000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+50
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005AF69D0D5AF89D019D0C5B019CF85B055B0F9CFE9D029E845D9F9EAB9EAA
+511D51165DA0512B511E511B5290529453145E605E5C56675EDB567B5EE1565F
+5661618B6183617961B161B061A2618958C358CA58BB58C058C459015B1F5B18
+5B115B1561B35B125B1C64705B225B795DA664975DB35DAB5EEA648A5F5B64A3
+649F61B761CE61B961BD61CF61C06199619765B361BB61D061C4623166B764D3
+64C06A006A066A1769E564DC64D164C869E464D566C369EC69E266BF66C50000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+51
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000069FE66CD66C167066A1467246A636A426A5269E66A436A3369FC6A6C6A57
+6A046A4C6A6E6A0F69F66A266A0769F46A376B516A716A4A6A366BA66A536C00
+6A456A706F416F266A5C6B586B576F926F8D6F896F8C6F626F4F6FBB6F5A6F96
+6FBE6F6C6F826F556FB56FD36F9F6F576FB76FF571B76F0071BB6F6B71D16F67
+71BA6F5371B671CC6F7F6F9571D3749B6F6A6F7B749674A2749D750A750E719A
+7581762C76377636763B71A476A171AA719C779871B37796729A735873520000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+52
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000078D678EB736078DC735B79A579A998347A537A4574897A4F74867ABD7ABB
+7AF17488747C7BEC7BED7507757E7CD3761E7CE1761D7E197623761A76287E27
+7E26769D769E806E81AF778F778981AD78CD81AA821878CC78D178CE78D4856F
+854C78C48542799A855C8570855F79A2855A854B853F878A7AB4878B87A1878E
+7BBE7BAC8799885E885F892489A78AEA8AFD8AF98AE38AE57DDB7DEA8AEC7DD7
+7DE17E037DFA8CF27DF68CEF7DF08DA67DDF7F767FAC8E3B8E437FED8E320000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+53
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008F318F307FE68F2D8F3C8FA78FA5819F819E819591379195918E82169196
+82539345930A824E825192FD9317931C930793319332932C9330930393058527
+95C284FB95B884FA95C1850C84F4852A96AB96B784F784EB97159714851284EA
+970C971784FE9793851D97D2850284FD983698319833983C982E983A84F0983D
+84F998B5992299239920991C991D866299A0876399EF99E899EB877387588754
+99E199E68761875A9AF89AF5876D876A9B839B949B84875D9B8B9B8F877A0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+54
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009B8C875C9B89874F9B8E8775876287679D249D0F89059D139D0A890B8917
+891889199D2A9D1A89119D279D169D2189A49E859EAC9EC69EC59ED79F538AB8
+5128512751DF8AD5533553B38ABE568A567D56898AC358CD58D08AD95B2B5B33
+5B295B355B315B375C365DBE8CDD5DB98DA05DBB8DA161E261DB61DD61DC61DA
+8E2E61D98E1B8E1664DF8E198E2664E18E1464EE8E1865B566D466D58E1A66D0
+66D166CE66D78F208F236A7D6A8A90736AA7906F6A996A826A88912B91290000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+55
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006A8691326A986A9D918591866A8F91816AAA91846B5D92D06C0A92C46FD7
+6FD66FE592CF92F192DF6FD96FDA6FEA92DD6FF692EF92C271E392CA71E992CE
+71EB71EF71F371EA92E092DE92E792D192D3737192E174AE92C674B3957C74AC
+95AB95AE75837645764E764476A376A577A677A4978A77A977AF97D097CF981E
+78F078F878F198287A49981B982798B27AC27AF27AF37BFA99167BF67BFC7C18
+7C087C1299D399D47CDB7CDA99D699D899CB7E2C7E4D9AB39AEC7F467FF60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+56
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000802B807481B881C89B679B749B71859285939B75857F85AB85979B6C9CFC
+85AC9CFD9CFF9CF787CE9D0087CD9CFB9D0887C187B187C79ED389409F10893F
+893951178943511151DE533489AB56708B1F8B098B0C566656638C4056728C96
+56778CF68CF758C88E468E4F58BF58BA58C28F3D8F4193669378935D93699374
+937D936E93729373936293489353935F93685DB1937F936B5DB595C45DAE96AF
+96AD96B25DAD5DAF971A971B5E685E665E6F5EE9979B979F5EE85EE55F4B0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+57
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005FBC5FBB619D61A86196984061B4984761C198B761BA61BF61B8618C64D7
+99A264D064CF9A0099F3648964C399F564F364D99ABD9B009B0265A29B349B49
+9B9F66CA9BA39BCD9B999B9D66BA66CC9D396A349D446A496A679D356A686A3E
+9EAF6A6D512F6A5B6A519F8E6A5A569F569B569E5696569456A06A4F5B3B6A6F
+6A695B3A5DC15F4D5F5D61F36A4D6A4E6A466B5564F664E564EA64E765056BC8
+64F96C046C036C066AAB6AED6AB26AB06AB56ABE6AC16AC86FC46AC06ABC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+58
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006AB16AC46ABF6FA56FAE700870036FFD7010700270136FA271FA720074B9
+74BC6FB2765B7651764F76EB77B871D677B977C177C077BE790B71C77907790A
+790871BC790D7906791579AF729E736973667AF5736C73657C2E736A7C1B749A
+7C1A7C24749274957CE67CE37580762F7E5D7E4F7E667E5B7F477FB476327630
+76BB7FFA802E779D77A181CE779B77A282197795779985CC85B278E985BB85C1
+78DE78E378DB87E987EE87F087D6880E87DA8948894A894E894D89B189B00000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+59
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000089B37AB78B388B327BE78B2D7BD58B347BDA8B298C747BD47BEA8D037BDC
+7BEB8DA98E587CD27CD48EBF8EC18F4A8FAC7E219089913D913C91A993A07E0E
+93907E159393938B93AD93BB93B87E0D7E14939C95D895D77F7B7F7C7F7A975D
+97A997DA8029806C81B181A6985481B99855984B81B0983F98B981B281B781A7
+81F29938993699408556993B993999A4855385619A089A0C85469A1085419B07
+85449BD285479BC29BBB9BCC9BCB854E856E9D4D9D639D4E85609D509D550000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000855D9D5E85659E909EB29EB186649ECA9F029F279F26879356AF58E058DC
+87965B39877987875B7C5BF3879087915C6B5DC4650B6508650A8789891E65DC
+8930892D66E166DF6ACE6AD46AE36AD76AE2892C891F89F18AE06AD86AD56AD2
+8AF58ADD701E702C70256FF37204720872158AE874C474C974C774C876A977C6
+77C57918791A79208CF37A667A647A6A8DA78E338E3E8E388E408E457C357C34
+8E3D8E417E6C8E3F7E6E7E718F2E81D481D6821A82628265827685DB85D60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000908685E79133913585F4919387FD87D58807918F880F87F89308931F8987
+930F89B589F5933C8B3F8B438B4C93018D0B8E6B8E688E708E758E7792FA8EC3
+92F993E993EA93CB93C593C6932993ED93D3932A93E5930C930B93DB93EB93E0
+93C1931695BC95DD95BE95B995BA95B695BF95B595BD96A996D497B297B497B1
+97B597F2979497F097F89856982F98329924994499279A269A1F9A189A219A17
+99E49B0999E399EA9BC59BDF9AB99BE39AB49BE99BEE9AFA9AF99D669D7A0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009B809D6E9D919D839D769D7E9D6D9B939E959EE39B7A9B959F039F049D25
+9F179D2051369D1453369D1D5B429D229D105B445B465B7E5DCA5DC85DCC5EF0
+9ED5658566E566E79F3D512651256AF451246AE9512952F45693568C568D703D
+56847036567E7216567F7212720F72177211720B5B2D5B2574CD74D074CC74CE
+74D15B2F75895B7B7A6F7C4B7C445E6C5E6A5FBE61C361B57E7F8B7161E0802F
+807A807B807C64EF64E964E385FC861086026581658085EE860366D2860D0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000086138608860F881888126A9B6AA18967896589BB8B698B626A838B6E6AA4
+8B616A7F8B648B4D8C516A8C6A928E838EC66C09941F6FA99404941794089405
+6FED93F3941E9402941A941B9427941C71E196B571E871F2973371F097349731
+97B897BA749797FC74AB749098C374AD994D74A59A2F7510751175129AC97584
+9AC89AC49B2A9B389B5076E99C0A9BFB9C049BFC9BFE77B477B177A89C029BF6
+9C1B9BF99C159C109BFF9C009C0C78F978FE9D959DA579A87A5C7A5B7A560000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009E989EC17A5A9F5A516456BB7C0558E65B495BF77BFF7BFB5DD07BF45FC2
+7BF365117C096AFF6AFE6AFD7BFD6B017BF07BF1704B704D704774D376687667
+7E33984877D179307932792E7E479F9D7AC97AC87E3B7C567C517E3A7F457F7F
+7E857E897E8E7E84802C826A862B862F862881C586168615861D881A825A825C
+858389BC8B758B7C85958D118D128F5C91BB85A493F4859E8577942D858985A1
+96E497379736976797BE97BD97E29868986698C898CA98C798DC8585994F0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+5F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000099A99A3C85909A3B9ACE87BE9B149B5387C59C2E87AC9C1F87B587BC87AE
+87C99DB09DBD87CC87B79DAE9DC49E7B87B487B69E9E87B89F0587DE9F699FA1
+56C7571D5B4A5DD389525F72620289AD62356527651E651F8B1E8B186B076B06
+8B058B0B7054721C72207AF88B077C5D7C588B067E927F4E8B1A8C4F8C708827
+8C718B818B838C948C448D6F8E4E8E4D8E539442944D9454944E8F409443907E
+9138973C974097C09199919F91A1919D995A9A5193839ADD936493569C380000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+60
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000937C9C459C3A93769C359350935193609EF1938F9F93529A937993578641
+5DD7934F65289377937B936170537059936772219359766F793779B57C627C5E
+7CF596AE96B0863D9720882D89898B8D8B878B908D1A8E99979E979D97D5945F
+97F1984194569461945B945A945C9465992B9741992A9933986E986C986D9931
+99AA9A5C9A589ADE9A029C4F9C5199F79C5399F899F699FB9DFC9F3999FC513E
+9ABE56D29AFD5B4F6B149B487A727A739B9E9B9B9BA68B919BA59BA491BF0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+61
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009BA2946C9BAF9D3396E697459D3697C897E4995D9D389B219D459B2C9B57
+9D3E9D379C5D9C619C659E089E8A9E899E8D9EB09EC89F459EFB9EFF620566EF
+6B1B6B1D722572247C6D512E8642864956978978898A8B9759708C9B8D1C5C6A
+8EA25E6D5E6E61D861DF61ED61EE61F161EA9C6C61EB9C6F61E99E0E65049F08
+9F1D9FA3650364FC5F606B1C66DA66DB66D87CF36AB98B9B8EA791C46ABA947A
+6AB76AC79A619A639AD79C766C0B9FA5700C7067700172AB864A897D8B9D0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+62
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008C538F65947B6FFC98CD98DD72019B309E16720371FD737674B874C096E7
+9E189EA274B69F7C74C27E9E9484765C9E1C76597C7197CA7657765A76A69EA3
+76EC9C7B9F97790C7913975079097910791257275C1379AC7A5F7C1C7C297C19
+7C205FC87C2D7C1D7C267C287C2267657C307E5C52BD7E565B667E5865F96788
+6CE66CCB7E574FBD5F8D7FB36018604880756B2970A681D07706825E85B485C6
+5A105CFC5CFE85B385B585BD85C785C485BF70C985CE85C885C585B185B60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+63
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000085D28624957985B796BA866987E787E687E287DB87EB87EA7B29812887F3
+8A2E87D487DC87D39AD987D8582B584587D963FA87F487E887DD6E86894B894F
+894C89468950586789495BDD656E8B238B338B308C878B4750D250DF8B3E8B31
+8B258B3769BA8B366B9D8B2480598B3D8B3A8C428C758C998C988C978CFE8D04
+8D028D008E5C6F8A8E608E577BC37BC28E658E678E5B8E5A90F68E5D98238E54
+8F468F478F488F4B71CD7499913B913E91A891A591A7984291AA93B5938C0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+64
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000093927F84939B939D938993A7938E8D0E939E9861939593888B73939F9C27
+938D945877D69B2D93A493A893B493A395D295D395D196B396D796DA5DC296DF
+96D896DD97239722972597AC97AE97A84F664F684FE7503F97A550A6510F523E
+53245365539B517F54CB55735571556B55F456225620569256BA569156B05759
+578A580F581258135847589B5900594D5AD15AD35B675C575C775CD55D755D8E
+5DA55DB65DBF5E655ECD5EED5F945F9A5FBA6125615062A36360636463B60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+65
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000640364B6651A7A255C2166E2670267A467AC68106806685E685A692C6929
+6A2D6A776A7A6ACA6AE66AF56B0D6B0E6BDC6BDD6BF66C1E6C636DA56E0F6E8A
+6E846E8B6E7C6F4C6F486F496F9D6F996FF8702E702D705C79CC70BF70EA70E5
+71117112713F7139713B713D71777175717671717196719371B471DD71DE720E
+591172187347734873EF7412743B74A4748D74B47673767776BC7819781B783D
+78537854785878B778D878EE7922794D7986799979A379BC7AA77B377B590000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+66
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007BD07C2F7C327C427C4E7C687CA97CED7DD07E077DD37E647F40791E8041
+806380BB6711672582488310836283128421841E84E284DE84E1857385D485F5
+863786458672874A87A987A587F5883488508887895489848B038C528CD88D0C
+8D188DB08EBC8ED58FAA909C85E8915C922B9221927392F492F5933F93429386
+93BE93BC93BD93F193F293EF94229423942494679466959795CE95E7973B974D
+98E499429B1D9B9889629D4964495E715E8561D3990E8002781E898889B70000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+67
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00005528557255BA55F055EE56B856B956C4805392B08B558B518B428B528B57
+8C438C778C768C9A8D068D078D098DAC8DAA8DAD8DAB8E6D8E788E738E6A8E6F
+8E7B8EC28F528F518F4F8F508F538FB49140913F91B091AD93DE93C793CF93C2
+93DA93D093F993EC93CC93D993A993E693CA93D493EE93E393D593C493CE93C0
+93D293A593E7957D95DA95DB96E19729972B972C9728972697B397B797B697DD
+97DE97DF985C9859985D985798BF98BD98BB98BE99489947994399A699A70000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+68
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009A1A9A159A259A1D9A249A1B9A229A209A279A239A1E9A1C9A149AC29B0B
+9B0A9B0E9B0C9B379BEA9BEB9BE09BDE9BE49BE69BE29BF09BD49BD79BEC9BDC
+9BD99BE59BD59BE19BDA9D779D819D8A9D849D889D719D809D789D869D8B9D8C
+9D7D9D6B9D749D759D709D699D859D739D7B9D829D6F9D799D7F9D879D689E94
+9E919EC09EFC9F2D9F409F419F4D9F569F579F58533756B256B556B358E35B45
+5DC65DC75EEE5EEF5FC05FC161F9651765166515651365DF66E866E366E40000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+69
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006AF36AF06AEA6AE86AF96AF16AEE6AEF703C7035702F7037703470317042
+7038703F703A7039702A7040703B703370417213721472A8737D737C74BA76AB
+76AA76BE76ED77CC77CE77CF77CD77F279257923792779287924792979B27A6E
+7A6C7A6D7AF77C497C487C4A7C477C457CEE7E7B7E7E7E817E807FBA7FFF8079
+81DB81D982688269862285FF860185FE861B860085F6860486098605860C85FD
+8819881088118817881388168963896689B989F78B608B6A8B5D8B688B630000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008B658B678B6D8DAE8E868E888E848F598F568F578F558F588F5A908D9143
+914191B791B591B291B3940B941393FB9420940F941493FE9415941094289419
+940D93F5940093F79407940E9416941293FA940993F8943C940A93FF93FC940C
+93F69411940695DE95E095DF972E972F97B997BB97FD97FE986098629863985F
+98C198C29950994E9959994C994B99539A329A349A319A2C9A2A9A369A299A2E
+9A389A2D9AC79ACA9AC69B109B129B119C0B9C089BF79C059C129BF89C400000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009C079C0E9C069C179C149C099D9F9D999DA49D9D9D929D989D909D9B9DA0
+9D949D9C9DAA9D979DA19D9A9DA29DA89D9E9DA39DBF9DA99D969DA69DA79E99
+9E9B9E9A9EE59EE49EE79EE69F309F2E9F5B9F609F5E9F5D9F599F91513A5139
+5298529756C356BD56BE5B485B475DCB5DCF5EF161FD651B6B026AFC6B036AF8
+6B0070437044704A7048704970457046721D721A7219737E7517766A77D0792D
+7931792F7C547C537CF27E8A7E877E887E8B7E867E8D7F4D7FBB803081DD0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008618862A8626861F8623861C86198627862E862186208629861E86258829
+881D881B88208824881C882B884A896D8969896E896B89FA8B798B788B458B7A
+8B7B8D108D148DAF8E8E8E8C8F5E8F5B8F5D91469144914591B9943F943B9436
+9429943D94309439942A9437942C9440943195E595E495E39735973A97BF97E1
+986498C998C698C0995899569A399A3D9A469A449A429A419A3A9A3F9ACD9B15
+9B179B189B169B3A9B529C2B9C1D9C1C9C2C9C239C289C299C249C219DB70000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009DB69DBC9DC19DC79DCA9DCF9DBE9DC59DC39DBB9DB59DCE9DB99DBA9DAC
+9DC89DB19DAD9DCC9DB39DCD9DB29E7A9E9C9EEB9EEE9EED9F1B9F189F1A9F31
+9F4E9F659F649F924EB956C656C556CB59715B4B5B4C5DD55DD15EF265216520
+652665226B0B6B086B096C0D7055705670577052721E721F72A9737F74D874D5
+74D974D7766D76AD793579B47A707A717C577C5C7C597C5B7C5A7CF47CF17E91
+7F4F7F8781DE826B863486358633862C86328636882C88288826882A88250000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6E
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000897189BF89BE89FB8B7E8B848B828B868B858B7F8D158E958E948E9A8E92
+8E908E968E978F608F629147944C9450944A944B944F94479445944894499446
+973F97E3986A986998CB9954995B9A4E9A539A549A4C9A4F9A489A4A9A499A52
+9A509AD09B199B2B9B3B9B569B559C469C489C3F9C449C399C339C419C3C9C37
+9C349C329C3D9C369DDB9DD29DDE9DDA9DCB9DD09DDC9DD19DDF9DE99DD99DD8
+9DD69DF59DD59DDD9EB69EF09F359F339F329F429F6B9F959FA2513D52990000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+6F
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000058E858E759725B4D5DD8882F5F4F62016203620465296525659666EB6B11
+6B126B0F6BCA705B705A7222738273817383767077D47C677C667E95826C863A
+86408639863C8631863B863E88308832882E883389768974897389FE8B8C8B8E
+8B8B8B888C458D198E988F648F6391BC94629455945D9457945E97C497C59800
+9A569A599B1E9B1F9B209C529C589C509C4A9C4D9C4B9C559C599C4C9C4E9DFB
+9DF79DEF9DE39DEB9DF89DE49DF69DE19DEE9DE69DF29DF09DE29DEC9DF40000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+70
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009DF39DE89DED9EC29ED09EF29EF39F069F1C9F389F379F369F439F4F9F71
+9F709F6E9F6F56D356CD5B4E5C6D652D66ED66EE6B13705F7061705D70607223
+74DB74E577D5793879B779B67C6A7E977F89826D8643883888378835884B8B94
+8B958E9E8E9F8EA08E9D91BE91BD91C2946B9468946996E597469743974797C7
+97E59A5E9AD59B599C639C679C669C629C5E9C609E029DFE9E079E039E069E05
+9E009E019E099DFF9DFD9E049EA09F1E9F469F749F759F7656D4652E65B80000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+71
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006B186B196B176B1A7062722672AA77D877D979397C697C6B7CF67E9A7E98
+7E9B7E9981E081E18646864786488979897A897C897B89FF8B988B998EA58EA4
+8EA3946E946D946F9471947397499872995F9C689C6E9C6D9E0B9E0D9E109E0F
+9E129E119EA19EF59F099F479F789F7B9F7A9F79571E70667C6F883C8DB28EA6
+91C394749478947694759A609B2E9C749C739C719C759E149E139EF69F0A9FA4
+706870657CF7866A883E883D883F8B9E8C9C8EA98EC9974B9873987498CC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+72
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000996199AB9A649A669A679B249E159E179F4862076B1E7227864C8EA89482
+948094819A699A689E19864B8B9F94839C799EB776759A6B9C7A9E1D7069706A
+72299EA49F7E9F499F988AF68AFC8C6B8C6D8C938CF48E448E318E348E428E39
+8E358F3B8F2F8F388F338FA88FA69075907490789072907C907A913491929320
+933692F89333932F932292FC932B9304931A9310932693219315932E931995BB
+96A796A896AA96D5970E97119716970D9713970F975B975C9766979898300000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+73
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009838983B9837982D9839982499109928991E991B9921991A99ED99E299F1
+9AB89ABC9AFB9AED9B289B919D159D239D269D289D129D1B9ED89ED49F8D9F9C
+512A511F5121513252F5568E5680569056855687568F58D558D358D158CE5B30
+5B2A5B245B7A5C375C685DBC5DBA5DBD5DB85E6B5F4C5FBD61C961C261C761E6
+61CB6232623464CE64CA64D864E064F064E664EC64F164E264ED6582658366D9
+66D66A806A946A846AA26A9C6ADB6AA36A7E6A976A906AA06B5C6BAE6BDA0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+74
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00006C086FD86FF16FDF6FE06FDB6FE46FEB6FEF6F806FEC6FE16FE96FD56FEE
+6FF071E771DF71EE71E671E571ED71EC71F471E0723572467370737274A974B0
+74A674A876467642764C76EA77B377AA77B077AC77A777AD77EF78F778FA78F4
+78EF790179A779AA7A577ABF7C077C0D7BFE7BF77C0C7BE07CE07CDC7CDE7CE2
+7CDF7CD97CDD7E2E7E3E7E467E377E327E437E2B7E3D7E317E457E417E347E39
+7E487E357E3F7E2F7F447FF37FFC807180728070806F807381C681C381BA0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+75
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000081C281C081BF81BD81C981BE81E88209827185AA8584857E859C85918594
+85AF859B858785A8858A85A6866787C087D187B387D287C687AB87BB87BA87C8
+87CB893B893689448938893D89AC8B0E8B178B198B1B8B0A8B208B1D8B048B10
+8C418C3F8C738CFA8CFD8CFC8CF88CFB8DA88E498E4B8E488E4A8F448F3E8F42
+8F458F3F907F907D9084908190829080913991A3919E919C934D938293289375
+934A9365934B9318937E936C935B9370935A935495CA95CB95CC95C895C60000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+76
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+000096B196B896D6971C971E97A097D3984698B699359A0199FF9BAE9BAB9BAA
+9BAD9D3B9D3F9E8B9ECF9EDE9EDC9EDD9EDB9F3E9F4B53E2569556AE58D958D8
+5B385F5E61E3623364F464F264FE650664FA64FB64F765B766DC67266AB36AAC
+6AC36ABB6AB86AC26AAE6AAF6B5F6B786BAF7009700B6FFE70066FFA7011700F
+71FB71FC71FE71F87377737574A774BF751576567658765277BD77BF77BB77BC
+790E79AE7A617A627A607AC47AC57C2B7C277C2A7C1E7C237C217CE77E540000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+77
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00007E557E5E7E5A7E617E527E597F487FF97FFB8077807681CD81CF820A85CF
+85A985CD85D085C985B085BA85B987EF87EC87F287E0898689B289F48B288B39
+8B2C8B2B8C508D058E598E638E668E648E5F8E558EC08F498F4D908790839088
+91AB91AC91D09394938A939693A293B393AE93AC93B09398939A939795D495D6
+95D095D596E296DC96D996DB96DE972497A397A697AD97F9984D984F984C984E
+985398BA993E993F993D992E99A59A0E9AC19B039B069B4F9B4E9B4D9BCA0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+78
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009BC99BFD9BC89BC09D519D5D9D609EE09F159F2C513356A556A858DE58DF
+58E25BF59F905EEC61F261F761F661F56500650F66E066DD6AE56ADD6ADA6AD3
+701B701F7028701A701D701570187206720D725872A27378737A74BD74CA74E3
+75877586765F766177C7791979B17A6B7A697C3E7C3F7C387C3D7C377C407E6B
+7E6D7E797E697E6A7E737F857FB67FB97FB881D885E985DD85EA85D585E485E5
+85F787FB8805880D87F987FE8960895F8956895E8B418B5C8B588B498B5A0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+79
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008B4E8B4F8B468B598D088D0A8E7C8E728E878E768E6C8E7A8E748F548F4E
+8FAD908A908B91B191AE93E193D193DF93C393C893DC93DD93D693E293CD93D8
+93E493D793E895DC96B496E3972A9727976197DC97FB985E9858985B98BC9945
+99499A169A199B0D9BE89BE79BD69BDB9D899D619D729D6A9D6C9E929E979E93
+9EB452F856B756B656B456BC58E45B405B435B7D5BF65DC961F861FA65186514
+651966E667276AEC703E703070327210737B74CF766276657926792A792C0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+7A
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000792B7AC77AF67C4C7C437C4D7CEF7CF08FAE7E7D7E7C7E827F4C800081DA
+826685FB85F9861185FA8606860B8607860A88148815896489BA89F88B708B6C
+8B668B6F8B5F8B6B8D0F8D0D8E898E818E858E8291B491CB9418940393FD95E1
+973098C49952995199A89A2B9A309A379A359C139C0D9E799EB59EE89F2F9F5F
+9F639F615137513856C156C056C259145C6C5DCD61FC61FE651D651C659566E9
+6AFB6B046AFA6BB2704C721B72A774D674D4766977D37C507E8F7E8C7FBC0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+7B
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00008617862D861A882388228821881F896A896C89BD8B748B778B7D8D138E8A
+8E8D8E8B8F5F8FAF91BA942E94339435943A94389432942B95E2973897399732
+97FF9867986599579A459A439A409A3E9ACF9B549B519C2D9C259DAF9DB49DC2
+9DB89E9D9EEF9F199F5C9F669F67513C513B56C856CA56C95B7F5DD45DD25F4E
+61FF65246B0A6B6170517058738074E4758A766E766C79B37C607C5F807E807D
+81DF8972896F89FC8B808D168D178E918E938F619148944494519452973D0000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+7C
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000973E97C397C1986B99559A559A4D9AD29B1A9C499C319C3E9C3B9DD39DD7
+9F349F6C9F6A9F9456CC5DD662006523652B652A66EC6B1074DA7ACA7C647C63
+7C657E937E967E9481E28638863F88318B8A9090908F9463946094649768986F
+995C9A5A9A5B9A579AD39AD49AD19C549C579C569DE59E9F9EF456D158E9652C
+705E7671767277D77F507F888836883988628B938B928B9682778D1B91C0946A
+97429748974497C698709A5F9B229B589C5F9DF99DFA9E7C9E7D9F079F770000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+7D
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+00009F725EF36B1670637C6C7C6E883B89C08EA191C1947294709871995E9AD6
+9B239ECC706477DA8B9A947797C99A629A657E9C8B9C8EAA91C5947D947E947C
+9C779C789EF78C54947F9E1A72289A6A9B319E1B9E1E7C720000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
diff --git a/library/init.tcl b/library/init.tcl
index 3f3b78f..a879fe5 100644
--- a/library/init.tcl
+++ b/library/init.tcl
@@ -591,7 +591,7 @@ proc auto_execok name {
}
set auto_execs($name) ""
- set shellBuiltins [list assoc cls copy date del dir echo erase ftype \
+ set shellBuiltins [list assoc cls copy date del dir echo erase exit ftype \
md mkdir mklink move rd ren rename rmdir start time type ver vol]
if {[info exists env(PATHEXT)]} {
# Add an initial ; to have the {} extension check first.
diff --git a/library/safe.tcl b/library/safe.tcl
index 3c01f75..2e04f8e 100644
--- a/library/safe.tcl
+++ b/library/safe.tcl
@@ -131,7 +131,7 @@ proc ::safe::interpConfigure {args} {
[list -accessPath $state(access_path)] \
[list -statics $state(staticsok)] \
[list -nested $state(nestedok)] \
- [list -deleteHook $state(cleanupHook)]]]
+ [list -deleteHook $state(cleanupHook)]]]
}
2 {
# If we have exactly 2 arguments the semantic is a "configure
diff --git a/library/tcltest/tcltest.tcl b/library/tcltest/tcltest.tcl
index eb47963..72c7b94 100644
--- a/library/tcltest/tcltest.tcl
+++ b/library/tcltest/tcltest.tcl
@@ -10,9 +10,9 @@
# initially implemented by Mary Ann May-Pumphrey of Sun
# Microsystems.
#
-# Copyright (c) 1994-1997 Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 Scriptics Corporation.
-# Copyright (c) 2000 Ajuba Solutions
+# Copyright © 1994-1997 Sun Microsystems, Inc.
+# Copyright © 1998-1999 Scriptics Corporation.
+# Copyright © 2000 Ajuba Solutions
# Contributions from Don Porter, NIST, 2002. (not subject to US copyright)
# All rights reserved.
diff --git a/library/tzdata/Africa/Accra b/library/tzdata/Africa/Accra
index 3f755f6..2c94214 100644
--- a/library/tzdata/Africa/Accra
+++ b/library/tzdata/Africa/Accra
@@ -1,66 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Africa/Accra) {
- {-9223372036854775808 -52 0 LMT}
- {-1709337548 0 0 GMT}
- {-1581206400 1200 1 +0020}
- {-1577917200 0 0 GMT}
- {-1556834400 1200 1 +0020}
- {-1546294800 0 0 GMT}
- {-1525298400 1200 1 +0020}
- {-1514758800 0 0 GMT}
- {-1493762400 1200 1 +0020}
- {-1483222800 0 0 GMT}
- {-1462226400 1200 1 +0020}
- {-1451686800 0 0 GMT}
- {-1430604000 1200 1 +0020}
- {-1420064400 0 0 GMT}
- {-1399068000 1200 1 +0020}
- {-1388528400 0 0 GMT}
- {-1367532000 1200 1 +0020}
- {-1356992400 0 0 GMT}
- {-1335996000 1200 1 +0020}
- {-1325456400 0 0 GMT}
- {-1304373600 1200 1 +0020}
- {-1293834000 0 0 GMT}
- {-1272837600 1200 1 +0020}
- {-1262298000 0 0 GMT}
- {-1241301600 1200 1 +0020}
- {-1230762000 0 0 GMT}
- {-1209765600 1200 1 +0020}
- {-1199226000 0 0 GMT}
- {-1178143200 1200 1 +0020}
- {-1167603600 0 0 GMT}
- {-1146607200 1200 1 +0020}
- {-1136067600 0 0 GMT}
- {-1115071200 1200 1 +0020}
- {-1104531600 0 0 GMT}
- {-1083535200 1200 1 +0020}
- {-1072995600 0 0 GMT}
- {-1051912800 1200 1 +0020}
- {-1041373200 0 0 GMT}
- {-1020376800 1200 1 +0020}
- {-1009837200 0 0 GMT}
- {-988840800 1200 1 +0020}
- {-978301200 0 0 GMT}
- {-957304800 1200 1 +0020}
- {-946765200 0 0 GMT}
- {-936309600 1200 1 +0020}
- {-915142800 0 0 GMT}
- {-904773600 1200 1 +0020}
- {-883606800 0 0 GMT}
- {-880329600 1800 0 +0030}
- {-756952200 0 0 GMT}
- {-610149600 1800 1 +0030}
- {-599610600 0 0 GMT}
- {-578613600 1800 1 +0030}
- {-568074600 0 0 GMT}
- {-546991200 1800 1 +0030}
- {-536452200 0 0 GMT}
- {-515455200 1800 1 +0030}
- {-504916200 0 0 GMT}
- {-483919200 1800 1 +0030}
- {-473380200 0 0 GMT}
- {-452383200 1800 1 +0030}
- {-441844200 0 0 GMT}
+if {![info exists TZData(Africa/Abidjan)]} {
+ LoadTimeZoneFile Africa/Abidjan
}
+set TZData(:Africa/Accra) $TZData(:Africa/Abidjan)
diff --git a/library/tzdata/America/Anguilla b/library/tzdata/America/Anguilla
index 39a0d18..7d9c3a4 100644
--- a/library/tzdata/America/Anguilla
+++ b/library/tzdata/America/Anguilla
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Anguilla) $TZData(:America/Port_of_Spain)
+set TZData(:America/Anguilla) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Antigua b/library/tzdata/America/Antigua
index be0c88e..ec55c4c 100644
--- a/library/tzdata/America/Antigua
+++ b/library/tzdata/America/Antigua
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Antigua) $TZData(:America/Port_of_Spain)
+set TZData(:America/Antigua) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Aruba b/library/tzdata/America/Aruba
index e02d5fc..800032f 100644
--- a/library/tzdata/America/Aruba
+++ b/library/tzdata/America/Aruba
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Curacao)]} {
- LoadTimeZoneFile America/Curacao
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Aruba) $TZData(:America/Curacao)
+set TZData(:America/Aruba) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Atikokan b/library/tzdata/America/Atikokan
index e72b04f..0f7e4dd 100644
--- a/library/tzdata/America/Atikokan
+++ b/library/tzdata/America/Atikokan
@@ -1,12 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Atikokan) {
- {-9223372036854775808 -21988 0 LMT}
- {-2366733212 -21600 0 CST}
- {-1632067200 -18000 1 CDT}
- {-1615136400 -21600 0 CST}
- {-923248800 -18000 1 CDT}
- {-880214400 -18000 0 CWT}
- {-769395600 -18000 1 CPT}
- {-765388800 -18000 0 EST}
+if {![info exists TZData(America/Panama)]} {
+ LoadTimeZoneFile America/Panama
}
+set TZData(:America/Atikokan) $TZData(:America/Panama)
diff --git a/library/tzdata/America/Barbados b/library/tzdata/America/Barbados
index ea17073..f074683 100644
--- a/library/tzdata/America/Barbados
+++ b/library/tzdata/America/Barbados
@@ -2,8 +2,15 @@
set TZData(:America/Barbados) {
{-9223372036854775808 -14309 0 LMT}
- {-1451678491 -14309 0 BMT}
- {-1199217691 -14400 0 AST}
+ {-1841256091 -14400 0 AST}
+ {-874263600 -10800 1 ADT}
+ {-862682400 -14400 0 AST}
+ {-841604400 -10800 1 ADT}
+ {-830714400 -14400 0 AST}
+ {-820526400 -14400 0 -0330}
+ {-811882800 -12600 1 AST}
+ {-798660000 -14400 0 -0330}
+ {-788904000 -14400 0 AST}
{234943200 -10800 1 ADT}
{244616400 -14400 0 AST}
{261554400 -10800 1 ADT}
diff --git a/library/tzdata/America/Blanc-Sablon b/library/tzdata/America/Blanc-Sablon
index d5485e8..55db591 100644
--- a/library/tzdata/America/Blanc-Sablon
+++ b/library/tzdata/America/Blanc-Sablon
@@ -1,12 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Blanc-Sablon) {
- {-9223372036854775808 -13708 0 LMT}
- {-2713896692 -14400 0 AST}
- {-1632074400 -10800 1 ADT}
- {-1615143600 -14400 0 AST}
- {-880221600 -10800 1 AWT}
- {-769395600 -10800 1 APT}
- {-765399600 -14400 0 AST}
- {14400 -14400 0 AST}
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
+set TZData(:America/Blanc-Sablon) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Coral_Harbour b/library/tzdata/America/Coral_Harbour
index a27dc03..c2406a7 100644
--- a/library/tzdata/America/Coral_Harbour
+++ b/library/tzdata/America/Coral_Harbour
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Atikokan)]} {
- LoadTimeZoneFile America/Atikokan
+if {![info exists TZData(America/Panama)]} {
+ LoadTimeZoneFile America/Panama
}
-set TZData(:America/Coral_Harbour) $TZData(:America/Atikokan)
+set TZData(:America/Coral_Harbour) $TZData(:America/Panama)
diff --git a/library/tzdata/America/Creston b/library/tzdata/America/Creston
index 30369a9..14db678 100644
--- a/library/tzdata/America/Creston
+++ b/library/tzdata/America/Creston
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Creston) {
- {-9223372036854775808 -27964 0 LMT}
- {-2713882436 -25200 0 MST}
- {-1680454800 -28800 0 PST}
- {-1627833600 -25200 0 MST}
+if {![info exists TZData(America/Phoenix)]} {
+ LoadTimeZoneFile America/Phoenix
}
+set TZData(:America/Creston) $TZData(:America/Phoenix)
diff --git a/library/tzdata/America/Curacao b/library/tzdata/America/Curacao
index 0a19090..ae31d2f 100644
--- a/library/tzdata/America/Curacao
+++ b/library/tzdata/America/Curacao
@@ -1,7 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Curacao) {
- {-9223372036854775808 -16547 0 LMT}
- {-1826738653 -16200 0 -0430}
- {-157750200 -14400 0 AST}
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
+set TZData(:America/Curacao) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Dominica b/library/tzdata/America/Dominica
index b97cb0e..4589180 100644
--- a/library/tzdata/America/Dominica
+++ b/library/tzdata/America/Dominica
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Dominica) $TZData(:America/Port_of_Spain)
+set TZData(:America/Dominica) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Grenada b/library/tzdata/America/Grenada
index 92300c3..5aa98fd 100644
--- a/library/tzdata/America/Grenada
+++ b/library/tzdata/America/Grenada
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Grenada) $TZData(:America/Port_of_Spain)
+set TZData(:America/Grenada) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Guadeloupe b/library/tzdata/America/Guadeloupe
index aba6bd7..ac85e5a 100644
--- a/library/tzdata/America/Guadeloupe
+++ b/library/tzdata/America/Guadeloupe
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Guadeloupe) $TZData(:America/Port_of_Spain)
+set TZData(:America/Guadeloupe) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Guyana b/library/tzdata/America/Guyana
index fab7855..4e2b5f4 100644
--- a/library/tzdata/America/Guyana
+++ b/library/tzdata/America/Guyana
@@ -1,8 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:America/Guyana) {
- {-9223372036854775808 -13960 0 LMT}
- {-1730578040 -13500 0 -0345}
- {176010300 -10800 0 -03}
- {662698800 -14400 0 -04}
+ {-9223372036854775808 -13959 0 LMT}
+ {-1843589241 -14400 0 -04}
+ {-1730577600 -13500 0 -0345}
+ {176096700 -10800 0 -03}
+ {701841600 -14400 0 -04}
}
diff --git a/library/tzdata/America/Kralendijk b/library/tzdata/America/Kralendijk
index 8b6db86..548dbd5 100644
--- a/library/tzdata/America/Kralendijk
+++ b/library/tzdata/America/Kralendijk
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Curacao)]} {
- LoadTimeZoneFile America/Curacao
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Kralendijk) $TZData(:America/Curacao)
+set TZData(:America/Kralendijk) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Lower_Princes b/library/tzdata/America/Lower_Princes
index 94c9197..655da0e 100644
--- a/library/tzdata/America/Lower_Princes
+++ b/library/tzdata/America/Lower_Princes
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Curacao)]} {
- LoadTimeZoneFile America/Curacao
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Lower_Princes) $TZData(:America/Curacao)
+set TZData(:America/Lower_Princes) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Marigot b/library/tzdata/America/Marigot
index c2b3873..9c77522 100644
--- a/library/tzdata/America/Marigot
+++ b/library/tzdata/America/Marigot
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Marigot) $TZData(:America/Port_of_Spain)
+set TZData(:America/Marigot) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Montserrat b/library/tzdata/America/Montserrat
index 0a656d3..9b76b44 100644
--- a/library/tzdata/America/Montserrat
+++ b/library/tzdata/America/Montserrat
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Montserrat) $TZData(:America/Port_of_Spain)
+set TZData(:America/Montserrat) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Nassau b/library/tzdata/America/Nassau
index 292c56d..ba49bd1 100644
--- a/library/tzdata/America/Nassau
+++ b/library/tzdata/America/Nassau
@@ -1,284 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Nassau) {
- {-9223372036854775808 -18570 0 LMT}
- {-1825095030 -18000 0 EST}
- {-873140400 -14400 1 EWT}
- {-788904000 -18000 0 EST}
- {-786222000 -14400 1 EWT}
- {-769395600 -14400 1 EPT}
- {-763848000 -18000 0 EST}
- {-179341200 -14400 1 EDT}
- {-163620000 -18000 0 EST}
- {-147891600 -14400 1 EDT}
- {-131565600 -18000 0 EST}
- {-116442000 -14400 1 EDT}
- {-100116000 -18000 0 EST}
- {-84387600 -14400 1 EDT}
- {-68666400 -18000 0 EST}
- {-52938000 -14400 1 EDT}
- {-37216800 -18000 0 EST}
- {-21488400 -14400 1 EDT}
- {-5767200 -18000 0 EST}
- {9961200 -14400 1 EDT}
- {25682400 -18000 0 EST}
- {41410800 -14400 1 EDT}
- {57736800 -18000 0 EST}
- {73465200 -14400 1 EDT}
- {89186400 -18000 0 EST}
- {104914800 -14400 1 EDT}
- {120636000 -18000 0 EST}
- {136364400 -14400 1 EDT}
- {152085600 -18000 0 EST}
- {167814000 -14400 1 EDT}
- {183535200 -18000 0 EST}
- {189320400 -18000 0 EST}
- {199263600 -14400 1 EDT}
- {215589600 -18000 0 EST}
- {230713200 -14400 1 EDT}
- {247039200 -18000 0 EST}
- {262767600 -14400 1 EDT}
- {278488800 -18000 0 EST}
- {294217200 -14400 1 EDT}
- {309938400 -18000 0 EST}
- {325666800 -14400 1 EDT}
- {341388000 -18000 0 EST}
- {357116400 -14400 1 EDT}
- {372837600 -18000 0 EST}
- {388566000 -14400 1 EDT}
- {404892000 -18000 0 EST}
- {420015600 -14400 1 EDT}
- {436341600 -18000 0 EST}
- {452070000 -14400 1 EDT}
- {467791200 -18000 0 EST}
- {483519600 -14400 1 EDT}
- {499240800 -18000 0 EST}
- {514969200 -14400 1 EDT}
- {530690400 -18000 0 EST}
- {544604400 -14400 1 EDT}
- {562140000 -18000 0 EST}
- {576054000 -14400 1 EDT}
- {594194400 -18000 0 EST}
- {607503600 -14400 1 EDT}
- {625644000 -18000 0 EST}
- {638953200 -14400 1 EDT}
- {657093600 -18000 0 EST}
- {671007600 -14400 1 EDT}
- {688543200 -18000 0 EST}
- {702457200 -14400 1 EDT}
- {719992800 -18000 0 EST}
- {733906800 -14400 1 EDT}
- {752047200 -18000 0 EST}
- {765356400 -14400 1 EDT}
- {783496800 -18000 0 EST}
- {796806000 -14400 1 EDT}
- {814946400 -18000 0 EST}
- {828860400 -14400 1 EDT}
- {846396000 -18000 0 EST}
- {860310000 -14400 1 EDT}
- {877845600 -18000 0 EST}
- {891759600 -14400 1 EDT}
- {909295200 -18000 0 EST}
- {923209200 -14400 1 EDT}
- {941349600 -18000 0 EST}
- {954658800 -14400 1 EDT}
- {972799200 -18000 0 EST}
- {986108400 -14400 1 EDT}
- {1004248800 -18000 0 EST}
- {1018162800 -14400 1 EDT}
- {1035698400 -18000 0 EST}
- {1049612400 -14400 1 EDT}
- {1067148000 -18000 0 EST}
- {1081062000 -14400 1 EDT}
- {1099202400 -18000 0 EST}
- {1112511600 -14400 1 EDT}
- {1130652000 -18000 0 EST}
- {1143961200 -14400 1 EDT}
- {1162101600 -18000 0 EST}
- {1173596400 -14400 1 EDT}
- {1194156000 -18000 0 EST}
- {1205046000 -14400 1 EDT}
- {1225605600 -18000 0 EST}
- {1236495600 -14400 1 EDT}
- {1257055200 -18000 0 EST}
- {1268550000 -14400 1 EDT}
- {1289109600 -18000 0 EST}
- {1299999600 -14400 1 EDT}
- {1320559200 -18000 0 EST}
- {1331449200 -14400 1 EDT}
- {1352008800 -18000 0 EST}
- {1362898800 -14400 1 EDT}
- {1383458400 -18000 0 EST}
- {1394348400 -14400 1 EDT}
- {1414908000 -18000 0 EST}
- {1425798000 -14400 1 EDT}
- {1446357600 -18000 0 EST}
- {1457852400 -14400 1 EDT}
- {1478412000 -18000 0 EST}
- {1489302000 -14400 1 EDT}
- {1509861600 -18000 0 EST}
- {1520751600 -14400 1 EDT}
- {1541311200 -18000 0 EST}
- {1552201200 -14400 1 EDT}
- {1572760800 -18000 0 EST}
- {1583650800 -14400 1 EDT}
- {1604210400 -18000 0 EST}
- {1615705200 -14400 1 EDT}
- {1636264800 -18000 0 EST}
- {1647154800 -14400 1 EDT}
- {1667714400 -18000 0 EST}
- {1678604400 -14400 1 EDT}
- {1699164000 -18000 0 EST}
- {1710054000 -14400 1 EDT}
- {1730613600 -18000 0 EST}
- {1741503600 -14400 1 EDT}
- {1762063200 -18000 0 EST}
- {1772953200 -14400 1 EDT}
- {1793512800 -18000 0 EST}
- {1805007600 -14400 1 EDT}
- {1825567200 -18000 0 EST}
- {1836457200 -14400 1 EDT}
- {1857016800 -18000 0 EST}
- {1867906800 -14400 1 EDT}
- {1888466400 -18000 0 EST}
- {1899356400 -14400 1 EDT}
- {1919916000 -18000 0 EST}
- {1930806000 -14400 1 EDT}
- {1951365600 -18000 0 EST}
- {1962860400 -14400 1 EDT}
- {1983420000 -18000 0 EST}
- {1994310000 -14400 1 EDT}
- {2014869600 -18000 0 EST}
- {2025759600 -14400 1 EDT}
- {2046319200 -18000 0 EST}
- {2057209200 -14400 1 EDT}
- {2077768800 -18000 0 EST}
- {2088658800 -14400 1 EDT}
- {2109218400 -18000 0 EST}
- {2120108400 -14400 1 EDT}
- {2140668000 -18000 0 EST}
- {2152162800 -14400 1 EDT}
- {2172722400 -18000 0 EST}
- {2183612400 -14400 1 EDT}
- {2204172000 -18000 0 EST}
- {2215062000 -14400 1 EDT}
- {2235621600 -18000 0 EST}
- {2246511600 -14400 1 EDT}
- {2267071200 -18000 0 EST}
- {2277961200 -14400 1 EDT}
- {2298520800 -18000 0 EST}
- {2309410800 -14400 1 EDT}
- {2329970400 -18000 0 EST}
- {2341465200 -14400 1 EDT}
- {2362024800 -18000 0 EST}
- {2372914800 -14400 1 EDT}
- {2393474400 -18000 0 EST}
- {2404364400 -14400 1 EDT}
- {2424924000 -18000 0 EST}
- {2435814000 -14400 1 EDT}
- {2456373600 -18000 0 EST}
- {2467263600 -14400 1 EDT}
- {2487823200 -18000 0 EST}
- {2499318000 -14400 1 EDT}
- {2519877600 -18000 0 EST}
- {2530767600 -14400 1 EDT}
- {2551327200 -18000 0 EST}
- {2562217200 -14400 1 EDT}
- {2582776800 -18000 0 EST}
- {2593666800 -14400 1 EDT}
- {2614226400 -18000 0 EST}
- {2625116400 -14400 1 EDT}
- {2645676000 -18000 0 EST}
- {2656566000 -14400 1 EDT}
- {2677125600 -18000 0 EST}
- {2688620400 -14400 1 EDT}
- {2709180000 -18000 0 EST}
- {2720070000 -14400 1 EDT}
- {2740629600 -18000 0 EST}
- {2751519600 -14400 1 EDT}
- {2772079200 -18000 0 EST}
- {2782969200 -14400 1 EDT}
- {2803528800 -18000 0 EST}
- {2814418800 -14400 1 EDT}
- {2834978400 -18000 0 EST}
- {2846473200 -14400 1 EDT}
- {2867032800 -18000 0 EST}
- {2877922800 -14400 1 EDT}
- {2898482400 -18000 0 EST}
- {2909372400 -14400 1 EDT}
- {2929932000 -18000 0 EST}
- {2940822000 -14400 1 EDT}
- {2961381600 -18000 0 EST}
- {2972271600 -14400 1 EDT}
- {2992831200 -18000 0 EST}
- {3003721200 -14400 1 EDT}
- {3024280800 -18000 0 EST}
- {3035775600 -14400 1 EDT}
- {3056335200 -18000 0 EST}
- {3067225200 -14400 1 EDT}
- {3087784800 -18000 0 EST}
- {3098674800 -14400 1 EDT}
- {3119234400 -18000 0 EST}
- {3130124400 -14400 1 EDT}
- {3150684000 -18000 0 EST}
- {3161574000 -14400 1 EDT}
- {3182133600 -18000 0 EST}
- {3193023600 -14400 1 EDT}
- {3213583200 -18000 0 EST}
- {3225078000 -14400 1 EDT}
- {3245637600 -18000 0 EST}
- {3256527600 -14400 1 EDT}
- {3277087200 -18000 0 EST}
- {3287977200 -14400 1 EDT}
- {3308536800 -18000 0 EST}
- {3319426800 -14400 1 EDT}
- {3339986400 -18000 0 EST}
- {3350876400 -14400 1 EDT}
- {3371436000 -18000 0 EST}
- {3382930800 -14400 1 EDT}
- {3403490400 -18000 0 EST}
- {3414380400 -14400 1 EDT}
- {3434940000 -18000 0 EST}
- {3445830000 -14400 1 EDT}
- {3466389600 -18000 0 EST}
- {3477279600 -14400 1 EDT}
- {3497839200 -18000 0 EST}
- {3508729200 -14400 1 EDT}
- {3529288800 -18000 0 EST}
- {3540178800 -14400 1 EDT}
- {3560738400 -18000 0 EST}
- {3572233200 -14400 1 EDT}
- {3592792800 -18000 0 EST}
- {3603682800 -14400 1 EDT}
- {3624242400 -18000 0 EST}
- {3635132400 -14400 1 EDT}
- {3655692000 -18000 0 EST}
- {3666582000 -14400 1 EDT}
- {3687141600 -18000 0 EST}
- {3698031600 -14400 1 EDT}
- {3718591200 -18000 0 EST}
- {3730086000 -14400 1 EDT}
- {3750645600 -18000 0 EST}
- {3761535600 -14400 1 EDT}
- {3782095200 -18000 0 EST}
- {3792985200 -14400 1 EDT}
- {3813544800 -18000 0 EST}
- {3824434800 -14400 1 EDT}
- {3844994400 -18000 0 EST}
- {3855884400 -14400 1 EDT}
- {3876444000 -18000 0 EST}
- {3887334000 -14400 1 EDT}
- {3907893600 -18000 0 EST}
- {3919388400 -14400 1 EDT}
- {3939948000 -18000 0 EST}
- {3950838000 -14400 1 EDT}
- {3971397600 -18000 0 EST}
- {3982287600 -14400 1 EDT}
- {4002847200 -18000 0 EST}
- {4013737200 -14400 1 EDT}
- {4034296800 -18000 0 EST}
- {4045186800 -14400 1 EDT}
- {4065746400 -18000 0 EST}
- {4076636400 -14400 1 EDT}
- {4097196000 -18000 0 EST}
+if {![info exists TZData(America/Toronto)]} {
+ LoadTimeZoneFile America/Toronto
}
+set TZData(:America/Nassau) $TZData(:America/Toronto)
diff --git a/library/tzdata/America/Port_of_Spain b/library/tzdata/America/Port_of_Spain
index c360c87..5b41296 100644
--- a/library/tzdata/America/Port_of_Spain
+++ b/library/tzdata/America/Port_of_Spain
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:America/Port_of_Spain) {
- {-9223372036854775808 -14764 0 LMT}
- {-1825098836 -14400 0 AST}
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
+set TZData(:America/Port_of_Spain) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/St_Barthelemy b/library/tzdata/America/St_Barthelemy
index 46bc287..1640d82 100644
--- a/library/tzdata/America/St_Barthelemy
+++ b/library/tzdata/America/St_Barthelemy
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/St_Barthelemy) $TZData(:America/Port_of_Spain)
+set TZData(:America/St_Barthelemy) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/St_Kitts b/library/tzdata/America/St_Kitts
index 6ad7f04..be7f15a 100644
--- a/library/tzdata/America/St_Kitts
+++ b/library/tzdata/America/St_Kitts
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/St_Kitts) $TZData(:America/Port_of_Spain)
+set TZData(:America/St_Kitts) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/St_Lucia b/library/tzdata/America/St_Lucia
index e479b31..ef43772 100644
--- a/library/tzdata/America/St_Lucia
+++ b/library/tzdata/America/St_Lucia
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/St_Lucia) $TZData(:America/Port_of_Spain)
+set TZData(:America/St_Lucia) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/St_Thomas b/library/tzdata/America/St_Thomas
index 24698b8..f705397 100644
--- a/library/tzdata/America/St_Thomas
+++ b/library/tzdata/America/St_Thomas
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/St_Thomas) $TZData(:America/Port_of_Spain)
+set TZData(:America/St_Thomas) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/St_Vincent b/library/tzdata/America/St_Vincent
index e3b32fb..289e483 100644
--- a/library/tzdata/America/St_Vincent
+++ b/library/tzdata/America/St_Vincent
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/St_Vincent) $TZData(:America/Port_of_Spain)
+set TZData(:America/St_Vincent) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Tortola b/library/tzdata/America/Tortola
index aa6f655..71f75e2 100644
--- a/library/tzdata/America/Tortola
+++ b/library/tzdata/America/Tortola
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Tortola) $TZData(:America/Port_of_Spain)
+set TZData(:America/Tortola) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/America/Virgin b/library/tzdata/America/Virgin
index c267e5b..a34eb12 100644
--- a/library/tzdata/America/Virgin
+++ b/library/tzdata/America/Virgin
@@ -1,5 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-if {![info exists TZData(America/Port_of_Spain)]} {
- LoadTimeZoneFile America/Port_of_Spain
+if {![info exists TZData(America/Puerto_Rico)]} {
+ LoadTimeZoneFile America/Puerto_Rico
}
-set TZData(:America/Virgin) $TZData(:America/Port_of_Spain)
+set TZData(:America/Virgin) $TZData(:America/Puerto_Rico)
diff --git a/library/tzdata/Antarctica/DumontDUrville b/library/tzdata/Antarctica/DumontDUrville
index f734aed..43c1263 100644
--- a/library/tzdata/Antarctica/DumontDUrville
+++ b/library/tzdata/Antarctica/DumontDUrville
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Antarctica/DumontDUrville) {
- {-9223372036854775808 0 0 -00}
- {-725846400 36000 0 +10}
- {-566992800 0 0 -00}
- {-415497600 36000 0 +10}
+if {![info exists TZData(Pacific/Port_Moresby)]} {
+ LoadTimeZoneFile Pacific/Port_Moresby
}
+set TZData(:Antarctica/DumontDUrville) $TZData(:Pacific/Port_Moresby)
diff --git a/library/tzdata/Antarctica/Syowa b/library/tzdata/Antarctica/Syowa
index a44dd5c..87ffb62 100644
--- a/library/tzdata/Antarctica/Syowa
+++ b/library/tzdata/Antarctica/Syowa
@@ -1,6 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Antarctica/Syowa) {
- {-9223372036854775808 0 0 -00}
- {-407808000 10800 0 +03}
+if {![info exists TZData(Asia/Riyadh)]} {
+ LoadTimeZoneFile Asia/Riyadh
}
+set TZData(:Antarctica/Syowa) $TZData(:Asia/Riyadh)
diff --git a/library/tzdata/Asia/Amman b/library/tzdata/Asia/Amman
index c2f6904..242a0c5 100644
--- a/library/tzdata/Asia/Amman
+++ b/library/tzdata/Asia/Amman
@@ -87,160 +87,160 @@ set TZData(:Asia/Amman) {
{1604008800 7200 0 EET}
{1616709600 10800 1 EEST}
{1635458400 7200 0 EET}
- {1648764000 10800 1 EEST}
+ {1645740000 10800 1 EEST}
{1666908000 7200 0 EET}
- {1680213600 10800 1 EEST}
+ {1677189600 10800 1 EEST}
{1698357600 7200 0 EET}
- {1711663200 10800 1 EEST}
+ {1709244000 10800 1 EEST}
{1729807200 7200 0 EET}
- {1743112800 10800 1 EEST}
+ {1740693600 10800 1 EEST}
{1761861600 7200 0 EET}
- {1774562400 10800 1 EEST}
+ {1772143200 10800 1 EEST}
{1793311200 7200 0 EET}
- {1806012000 10800 1 EEST}
+ {1803592800 10800 1 EEST}
{1824760800 7200 0 EET}
- {1838066400 10800 1 EEST}
+ {1835042400 10800 1 EEST}
{1856210400 7200 0 EET}
- {1869516000 10800 1 EEST}
+ {1866492000 10800 1 EEST}
{1887660000 7200 0 EET}
- {1900965600 10800 1 EEST}
+ {1898546400 10800 1 EEST}
{1919109600 7200 0 EET}
- {1932415200 10800 1 EEST}
+ {1929996000 10800 1 EEST}
{1951164000 7200 0 EET}
- {1963864800 10800 1 EEST}
+ {1961445600 10800 1 EEST}
{1982613600 7200 0 EET}
- {1995919200 10800 1 EEST}
+ {1992895200 10800 1 EEST}
{2014063200 7200 0 EET}
- {2027368800 10800 1 EEST}
+ {2024344800 10800 1 EEST}
{2045512800 7200 0 EET}
- {2058818400 10800 1 EEST}
+ {2055794400 10800 1 EEST}
{2076962400 7200 0 EET}
- {2090268000 10800 1 EEST}
+ {2087848800 10800 1 EEST}
{2109016800 7200 0 EET}
- {2121717600 10800 1 EEST}
+ {2119298400 10800 1 EEST}
{2140466400 7200 0 EET}
- {2153167200 10800 1 EEST}
+ {2150748000 10800 1 EEST}
{2171916000 7200 0 EET}
- {2185221600 10800 1 EEST}
+ {2182197600 10800 1 EEST}
{2203365600 7200 0 EET}
- {2216671200 10800 1 EEST}
+ {2213647200 10800 1 EEST}
{2234815200 7200 0 EET}
- {2248120800 10800 1 EEST}
+ {2245701600 10800 1 EEST}
{2266264800 7200 0 EET}
- {2279570400 10800 1 EEST}
+ {2277151200 10800 1 EEST}
{2298319200 7200 0 EET}
- {2311020000 10800 1 EEST}
+ {2308600800 10800 1 EEST}
{2329768800 7200 0 EET}
- {2343074400 10800 1 EEST}
+ {2340050400 10800 1 EEST}
{2361218400 7200 0 EET}
- {2374524000 10800 1 EEST}
+ {2371500000 10800 1 EEST}
{2392668000 7200 0 EET}
- {2405973600 10800 1 EEST}
+ {2402949600 10800 1 EEST}
{2424117600 7200 0 EET}
- {2437423200 10800 1 EEST}
+ {2435004000 10800 1 EEST}
{2455567200 7200 0 EET}
- {2468872800 10800 1 EEST}
+ {2466453600 10800 1 EEST}
{2487621600 7200 0 EET}
- {2500322400 10800 1 EEST}
+ {2497903200 10800 1 EEST}
{2519071200 7200 0 EET}
- {2532376800 10800 1 EEST}
+ {2529352800 10800 1 EEST}
{2550520800 7200 0 EET}
- {2563826400 10800 1 EEST}
+ {2560802400 10800 1 EEST}
{2581970400 7200 0 EET}
- {2595276000 10800 1 EEST}
+ {2592856800 10800 1 EEST}
{2613420000 7200 0 EET}
- {2626725600 10800 1 EEST}
+ {2624306400 10800 1 EEST}
{2645474400 7200 0 EET}
- {2658175200 10800 1 EEST}
+ {2655756000 10800 1 EEST}
{2676924000 7200 0 EET}
- {2689624800 10800 1 EEST}
+ {2687205600 10800 1 EEST}
{2708373600 7200 0 EET}
- {2721679200 10800 1 EEST}
+ {2718655200 10800 1 EEST}
{2739823200 7200 0 EET}
- {2753128800 10800 1 EEST}
+ {2750104800 10800 1 EEST}
{2771272800 7200 0 EET}
- {2784578400 10800 1 EEST}
+ {2782159200 10800 1 EEST}
{2802722400 7200 0 EET}
- {2816028000 10800 1 EEST}
+ {2813608800 10800 1 EEST}
{2834776800 7200 0 EET}
- {2847477600 10800 1 EEST}
+ {2845058400 10800 1 EEST}
{2866226400 7200 0 EET}
- {2879532000 10800 1 EEST}
+ {2876508000 10800 1 EEST}
{2897676000 7200 0 EET}
- {2910981600 10800 1 EEST}
+ {2907957600 10800 1 EEST}
{2929125600 7200 0 EET}
- {2942431200 10800 1 EEST}
+ {2939407200 10800 1 EEST}
{2960575200 7200 0 EET}
- {2973880800 10800 1 EEST}
+ {2971461600 10800 1 EEST}
{2992629600 7200 0 EET}
- {3005330400 10800 1 EEST}
+ {3002911200 10800 1 EEST}
{3024079200 7200 0 EET}
- {3036780000 10800 1 EEST}
+ {3034360800 10800 1 EEST}
{3055528800 7200 0 EET}
- {3068834400 10800 1 EEST}
+ {3065810400 10800 1 EEST}
{3086978400 7200 0 EET}
- {3100284000 10800 1 EEST}
+ {3097260000 10800 1 EEST}
{3118428000 7200 0 EET}
- {3131733600 10800 1 EEST}
+ {3129314400 10800 1 EEST}
{3149877600 7200 0 EET}
- {3163183200 10800 1 EEST}
+ {3160764000 10800 1 EEST}
{3181932000 7200 0 EET}
- {3194632800 10800 1 EEST}
+ {3192213600 10800 1 EEST}
{3213381600 7200 0 EET}
- {3226687200 10800 1 EEST}
+ {3223663200 10800 1 EEST}
{3244831200 7200 0 EET}
- {3258136800 10800 1 EEST}
+ {3255112800 10800 1 EEST}
{3276280800 7200 0 EET}
- {3289586400 10800 1 EEST}
+ {3286562400 10800 1 EEST}
{3307730400 7200 0 EET}
- {3321036000 10800 1 EEST}
+ {3318616800 10800 1 EEST}
{3339180000 7200 0 EET}
- {3352485600 10800 1 EEST}
+ {3350066400 10800 1 EEST}
{3371234400 7200 0 EET}
- {3383935200 10800 1 EEST}
+ {3381516000 10800 1 EEST}
{3402684000 7200 0 EET}
- {3415989600 10800 1 EEST}
+ {3412965600 10800 1 EEST}
{3434133600 7200 0 EET}
- {3447439200 10800 1 EEST}
+ {3444415200 10800 1 EEST}
{3465583200 7200 0 EET}
- {3478888800 10800 1 EEST}
+ {3476469600 10800 1 EEST}
{3497032800 7200 0 EET}
- {3510338400 10800 1 EEST}
+ {3507919200 10800 1 EEST}
{3529087200 7200 0 EET}
- {3541788000 10800 1 EEST}
+ {3539368800 10800 1 EEST}
{3560536800 7200 0 EET}
- {3573237600 10800 1 EEST}
+ {3570818400 10800 1 EEST}
{3591986400 7200 0 EET}
- {3605292000 10800 1 EEST}
+ {3602268000 10800 1 EEST}
{3623436000 7200 0 EET}
- {3636741600 10800 1 EEST}
+ {3633717600 10800 1 EEST}
{3654885600 7200 0 EET}
- {3668191200 10800 1 EEST}
+ {3665772000 10800 1 EEST}
{3686335200 7200 0 EET}
- {3699640800 10800 1 EEST}
+ {3697221600 10800 1 EEST}
{3718389600 7200 0 EET}
- {3731090400 10800 1 EEST}
+ {3728671200 10800 1 EEST}
{3749839200 7200 0 EET}
- {3763144800 10800 1 EEST}
+ {3760120800 10800 1 EEST}
{3781288800 7200 0 EET}
- {3794594400 10800 1 EEST}
+ {3791570400 10800 1 EEST}
{3812738400 7200 0 EET}
- {3826044000 10800 1 EEST}
+ {3823020000 10800 1 EEST}
{3844188000 7200 0 EET}
- {3857493600 10800 1 EEST}
+ {3855074400 10800 1 EEST}
{3876242400 7200 0 EET}
- {3888943200 10800 1 EEST}
+ {3886524000 10800 1 EEST}
{3907692000 7200 0 EET}
- {3920392800 10800 1 EEST}
+ {3917973600 10800 1 EEST}
{3939141600 7200 0 EET}
- {3952447200 10800 1 EEST}
+ {3949423200 10800 1 EEST}
{3970591200 7200 0 EET}
- {3983896800 10800 1 EEST}
+ {3980872800 10800 1 EEST}
{4002040800 7200 0 EET}
- {4015346400 10800 1 EEST}
+ {4012927200 10800 1 EEST}
{4033490400 7200 0 EET}
- {4046796000 10800 1 EEST}
+ {4044376800 10800 1 EEST}
{4065544800 7200 0 EET}
- {4078245600 10800 1 EEST}
+ {4075826400 10800 1 EEST}
{4096994400 7200 0 EET}
}
diff --git a/library/tzdata/Atlantic/Azores b/library/tzdata/Atlantic/Azores
index 088dd9a..0b7f615 100644
--- a/library/tzdata/Atlantic/Azores
+++ b/library/tzdata/Atlantic/Azores
@@ -66,6 +66,8 @@ set TZData(:Atlantic/Azores) {
{-670449600 -7200 0 -02}
{-654724800 -3600 1 -01}
{-639000000 -7200 0 -02}
+ {-623275200 -3600 1 -01}
+ {-607550400 -7200 0 -02}
{-591825600 -3600 1 -01}
{-575496000 -7200 0 -02}
{-559771200 -3600 1 -01}
diff --git a/library/tzdata/Atlantic/Madeira b/library/tzdata/Atlantic/Madeira
index fed9c19..8a3b7e8 100644
--- a/library/tzdata/Atlantic/Madeira
+++ b/library/tzdata/Atlantic/Madeira
@@ -66,6 +66,8 @@ set TZData(:Atlantic/Madeira) {
{-670453200 -3600 0 -01}
{-654728400 0 1 +00}
{-639003600 -3600 0 -01}
+ {-623278800 0 1 +00}
+ {-607554000 -3600 0 -01}
{-591829200 0 1 +00}
{-575499600 -3600 0 -01}
{-559774800 0 1 +00}
diff --git a/library/tzdata/Europe/Lisbon b/library/tzdata/Europe/Lisbon
index b566b51..b6a069e 100644
--- a/library/tzdata/Europe/Lisbon
+++ b/library/tzdata/Europe/Lisbon
@@ -70,6 +70,8 @@ set TZData(:Europe/Lisbon) {
{-670456800 0 0 WET}
{-654732000 3600 1 WEST}
{-639007200 0 0 WET}
+ {-623282400 3600 1 WEST}
+ {-607557600 0 0 WET}
{-591832800 3600 1 WEST}
{-575503200 0 0 WET}
{-559778400 3600 1 WEST}
diff --git a/library/tzdata/Pacific/Apia b/library/tzdata/Pacific/Apia
index 4fc91f4..783a71b 100644
--- a/library/tzdata/Pacific/Apia
+++ b/library/tzdata/Pacific/Apia
@@ -28,161 +28,4 @@ set TZData(:Pacific/Apia) {
{1586008800 46800 0 +13}
{1601128800 50400 1 +13}
{1617458400 46800 0 +13}
- {1632578400 50400 1 +13}
- {1648908000 46800 0 +13}
- {1664028000 50400 1 +13}
- {1680357600 46800 0 +13}
- {1695477600 50400 1 +13}
- {1712412000 46800 0 +13}
- {1727532000 50400 1 +13}
- {1743861600 46800 0 +13}
- {1758981600 50400 1 +13}
- {1775311200 46800 0 +13}
- {1790431200 50400 1 +13}
- {1806760800 46800 0 +13}
- {1821880800 50400 1 +13}
- {1838210400 46800 0 +13}
- {1853330400 50400 1 +13}
- {1869660000 46800 0 +13}
- {1885384800 50400 1 +13}
- {1901714400 46800 0 +13}
- {1916834400 50400 1 +13}
- {1933164000 46800 0 +13}
- {1948284000 50400 1 +13}
- {1964613600 46800 0 +13}
- {1979733600 50400 1 +13}
- {1996063200 46800 0 +13}
- {2011183200 50400 1 +13}
- {2027512800 46800 0 +13}
- {2042632800 50400 1 +13}
- {2058962400 46800 0 +13}
- {2074687200 50400 1 +13}
- {2091016800 46800 0 +13}
- {2106136800 50400 1 +13}
- {2122466400 46800 0 +13}
- {2137586400 50400 1 +13}
- {2153916000 46800 0 +13}
- {2169036000 50400 1 +13}
- {2185365600 46800 0 +13}
- {2200485600 50400 1 +13}
- {2216815200 46800 0 +13}
- {2232540000 50400 1 +13}
- {2248869600 46800 0 +13}
- {2263989600 50400 1 +13}
- {2280319200 46800 0 +13}
- {2295439200 50400 1 +13}
- {2311768800 46800 0 +13}
- {2326888800 50400 1 +13}
- {2343218400 46800 0 +13}
- {2358338400 50400 1 +13}
- {2374668000 46800 0 +13}
- {2389788000 50400 1 +13}
- {2406117600 46800 0 +13}
- {2421842400 50400 1 +13}
- {2438172000 46800 0 +13}
- {2453292000 50400 1 +13}
- {2469621600 46800 0 +13}
- {2484741600 50400 1 +13}
- {2501071200 46800 0 +13}
- {2516191200 50400 1 +13}
- {2532520800 46800 0 +13}
- {2547640800 50400 1 +13}
- {2563970400 46800 0 +13}
- {2579090400 50400 1 +13}
- {2596024800 46800 0 +13}
- {2611144800 50400 1 +13}
- {2627474400 46800 0 +13}
- {2642594400 50400 1 +13}
- {2658924000 46800 0 +13}
- {2674044000 50400 1 +13}
- {2690373600 46800 0 +13}
- {2705493600 50400 1 +13}
- {2721823200 46800 0 +13}
- {2736943200 50400 1 +13}
- {2753272800 46800 0 +13}
- {2768997600 50400 1 +13}
- {2785327200 46800 0 +13}
- {2800447200 50400 1 +13}
- {2816776800 46800 0 +13}
- {2831896800 50400 1 +13}
- {2848226400 46800 0 +13}
- {2863346400 50400 1 +13}
- {2879676000 46800 0 +13}
- {2894796000 50400 1 +13}
- {2911125600 46800 0 +13}
- {2926245600 50400 1 +13}
- {2942575200 46800 0 +13}
- {2958300000 50400 1 +13}
- {2974629600 46800 0 +13}
- {2989749600 50400 1 +13}
- {3006079200 46800 0 +13}
- {3021199200 50400 1 +13}
- {3037528800 46800 0 +13}
- {3052648800 50400 1 +13}
- {3068978400 46800 0 +13}
- {3084098400 50400 1 +13}
- {3100428000 46800 0 +13}
- {3116152800 50400 1 +13}
- {3132482400 46800 0 +13}
- {3147602400 50400 1 +13}
- {3163932000 46800 0 +13}
- {3179052000 50400 1 +13}
- {3195381600 46800 0 +13}
- {3210501600 50400 1 +13}
- {3226831200 46800 0 +13}
- {3241951200 50400 1 +13}
- {3258280800 46800 0 +13}
- {3273400800 50400 1 +13}
- {3289730400 46800 0 +13}
- {3305455200 50400 1 +13}
- {3321784800 46800 0 +13}
- {3336904800 50400 1 +13}
- {3353234400 46800 0 +13}
- {3368354400 50400 1 +13}
- {3384684000 46800 0 +13}
- {3399804000 50400 1 +13}
- {3416133600 46800 0 +13}
- {3431253600 50400 1 +13}
- {3447583200 46800 0 +13}
- {3462703200 50400 1 +13}
- {3479637600 46800 0 +13}
- {3494757600 50400 1 +13}
- {3511087200 46800 0 +13}
- {3526207200 50400 1 +13}
- {3542536800 46800 0 +13}
- {3557656800 50400 1 +13}
- {3573986400 46800 0 +13}
- {3589106400 50400 1 +13}
- {3605436000 46800 0 +13}
- {3620556000 50400 1 +13}
- {3636885600 46800 0 +13}
- {3652610400 50400 1 +13}
- {3668940000 46800 0 +13}
- {3684060000 50400 1 +13}
- {3700389600 46800 0 +13}
- {3715509600 50400 1 +13}
- {3731839200 46800 0 +13}
- {3746959200 50400 1 +13}
- {3763288800 46800 0 +13}
- {3778408800 50400 1 +13}
- {3794738400 46800 0 +13}
- {3809858400 50400 1 +13}
- {3826188000 46800 0 +13}
- {3841912800 50400 1 +13}
- {3858242400 46800 0 +13}
- {3873362400 50400 1 +13}
- {3889692000 46800 0 +13}
- {3904812000 50400 1 +13}
- {3921141600 46800 0 +13}
- {3936261600 50400 1 +13}
- {3952591200 46800 0 +13}
- {3967711200 50400 1 +13}
- {3984040800 46800 0 +13}
- {3999765600 50400 1 +13}
- {4016095200 46800 0 +13}
- {4031215200 50400 1 +13}
- {4047544800 46800 0 +13}
- {4062664800 50400 1 +13}
- {4078994400 46800 0 +13}
- {4094114400 50400 1 +13}
}
diff --git a/library/tzdata/Pacific/Enderbury b/library/tzdata/Pacific/Enderbury
index 48eaafe..5c4c6d7 100644
--- a/library/tzdata/Pacific/Enderbury
+++ b/library/tzdata/Pacific/Enderbury
@@ -1,8 +1,5 @@
# created by tools/tclZIC.tcl - do not edit
-
-set TZData(:Pacific/Enderbury) {
- {-9223372036854775808 -41060 0 LMT}
- {-2177411740 -43200 0 -12}
- {307627200 -39600 0 -11}
- {788871600 46800 0 +13}
+if {![info exists TZData(Pacific/Kanton)]} {
+ LoadTimeZoneFile Pacific/Kanton
}
+set TZData(:Pacific/Enderbury) $TZData(:Pacific/Kanton)
diff --git a/library/tzdata/Pacific/Kanton b/library/tzdata/Pacific/Kanton
new file mode 100644
index 0000000..061c2b5
--- /dev/null
+++ b/library/tzdata/Pacific/Kanton
@@ -0,0 +1,8 @@
+# created by tools/tclZIC.tcl - do not edit
+
+set TZData(:Pacific/Kanton) {
+ {-9223372036854775808 0 0 -00}
+ {-1020470400 -43200 0 -12}
+ {307627200 -39600 0 -11}
+ {788871600 46800 0 +13}
+}
diff --git a/library/tzdata/Pacific/Niue b/library/tzdata/Pacific/Niue
index fe19c59..752f5b7 100644
--- a/library/tzdata/Pacific/Niue
+++ b/library/tzdata/Pacific/Niue
@@ -2,7 +2,6 @@
set TZData(:Pacific/Niue) {
{-9223372036854775808 -40780 0 LMT}
- {-2177412020 -40800 0 -1120}
- {-599575200 -41400 0 -1130}
- {276089400 -39600 0 -11}
+ {-543069620 -40800 0 -1120}
+ {-173623200 -39600 0 -11}
}
diff --git a/library/tzdata/Pacific/Rarotonga b/library/tzdata/Pacific/Rarotonga
index 2913d68..f8e7954 100644
--- a/library/tzdata/Pacific/Rarotonga
+++ b/library/tzdata/Pacific/Rarotonga
@@ -1,8 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Pacific/Rarotonga) {
- {-9223372036854775808 -38344 0 LMT}
- {-2177414456 -37800 0 -1030}
+ {-9223372036854775808 48056 0 LMT}
+ {-2209555256 -38344 0 LMT}
+ {-543072056 -37800 0 -1030}
{279714600 -34200 0 -10}
{289387800 -36000 0 -10}
{309952800 -34200 1 -10}
diff --git a/library/tzdata/Pacific/Tongatapu b/library/tzdata/Pacific/Tongatapu
index 104888a..f4bb685 100644
--- a/library/tzdata/Pacific/Tongatapu
+++ b/library/tzdata/Pacific/Tongatapu
@@ -1,9 +1,9 @@
# created by tools/tclZIC.tcl - do not edit
set TZData(:Pacific/Tongatapu) {
- {-9223372036854775808 44360 0 LMT}
- {-2177497160 44400 0 +1220}
- {-915193200 46800 0 +13}
+ {-9223372036854775808 44352 0 LMT}
+ {-767189952 44400 0 +1220}
+ {-284041200 46800 0 +13}
{915102000 46800 0 +13}
{939214800 50400 1 +13}
{953384400 46800 0 +13}
diff --git a/libtommath/tommath.h b/libtommath/tommath.h
index 053bf09..5834a89 100644
--- a/libtommath/tommath.h
+++ b/libtommath/tommath.h
@@ -45,7 +45,7 @@ extern "C" {
defined(__ia64) || defined(__ia64__) || defined(__itanium__) || defined(_M_IA64) || \
defined(__LP64__) || defined(_LP64) || defined(__64BIT__)
# if !(defined(MP_64BIT) || defined(MP_32BIT) || defined(MP_16BIT) || defined(MP_8BIT))
-# if defined(__GNUC__) && !defined(__hppa)
+# if defined(__GNUC__) && defined(__SIZEOF_INT128__) && !defined(__hppa)
/* we support 128bit integers only via: __attribute__((mode(TI))) */
# define MP_64BIT
# else
diff --git a/macosx/tclMacOSXFCmd.c b/macosx/tclMacOSXFCmd.c
index a70a789..1717c3c 100644
--- a/macosx/tclMacOSXFCmd.c
+++ b/macosx/tclMacOSXFCmd.c
@@ -577,7 +577,7 @@ GetOSTypeFromObj(
{
int result = TCL_OK;
- if (!TclHasIntRep(objPtr, &tclOSTypeType)) {
+ if (!TclHasInternalRep(objPtr, &tclOSTypeType)) {
result = SetOSTypeFromAny(interp, objPtr);
}
*osTypePtr = (OSType) objPtr->internalRep.wideValue;
@@ -659,7 +659,7 @@ SetOSTypeFromAny(
(OSType) bytes[1] << 16 |
(OSType) bytes[2] << 8 |
(OSType) bytes[3];
- TclFreeIntRep(objPtr);
+ TclFreeInternalRep(objPtr);
objPtr->internalRep.wideValue = (Tcl_WideInt) osType;
objPtr->typePtr = &tclOSTypeType;
}
diff --git a/macosx/tclMacOSXNotify.c b/macosx/tclMacOSXNotify.c
index c870a36..d7c4d7f 100644
--- a/macosx/tclMacOSXNotify.c
+++ b/macosx/tclMacOSXNotify.c
@@ -458,6 +458,20 @@ static int receivePipe = -1; /* Output end of triggerPipe */
static int notifierThreadRunning;
/*
+ * The following static flag indicates that async handlers are pending.
+ */
+
+#if TCL_THREADS
+static int asyncPending = 0;
+#endif
+
+/*
+ * Signal mask information for notifier thread.
+ */
+static sigset_t notifierSigMask;
+static sigset_t allSigMask;
+
+/*
* This is the thread ID of the notifier thread that does select. Only valid
* when notifierThreadRunning is non-zero.
*
@@ -803,6 +817,15 @@ StartNotifierThread(void)
int result;
pthread_attr_t attr;
+ /*
+ * Arrange for the notifier thread to start with all
+ * signals blocked. In its mainloop it unblocks the
+ * signals at safe points.
+ */
+
+ sigfillset(&allSigMask);
+ pthread_sigmask(SIG_BLOCK, &allSigMask, &notifierSigMask);
+
pthread_attr_init(&attr);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM);
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
@@ -814,6 +837,12 @@ StartNotifierThread(void)
Tcl_Panic("StartNotifierThread: unable to start notifier thread");
}
notifierThreadRunning = 1;
+
+ /*
+ * Restore original signal mask.
+ */
+
+ pthread_sigmask(SIG_SETMASK, &notifierSigMask, NULL);
}
UNLOCK_NOTIFIER_INIT;
}
@@ -876,6 +905,14 @@ TclpFinalizeNotifier(
"thread");
}
notifierThreadRunning = 0;
+
+ /*
+ * If async marks are outstanding, perform actions now.
+ */
+ if (asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
}
close(receivePipe);
@@ -1283,6 +1320,29 @@ FileHandlerEventProc(
/*
*----------------------------------------------------------------------
*
+ * TclpNotifierData --
+ *
+ * This function returns a ClientData pointer to be associated
+ * with a Tcl_AsyncHandler.
+ *
+ * Results:
+ * On MacOSX, returns always NULL.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ClientData
+TclpNotifierData(void)
+{
+ return NULL;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* TclpWaitForEvent --
*
* This function is called by Tcl_DoOneEvent to wait for new events on
@@ -1829,6 +1889,61 @@ TclUnixWaitForFile(
/*
*----------------------------------------------------------------------
*
+ * TclAsyncNotifier --
+ *
+ * This procedure sets the async mark of an async handler to a
+ * given value, if it is called from the notifier thread.
+ *
+ * Result:
+ * True, when the handler will be marked, false otherwise.
+ *
+ * Side effetcs:
+ * The trigger pipe is written when called from the notifier
+ * thread.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclAsyncNotifier(
+ int sigNumber, /* Signal number. */
+ TCL_UNUSED(Tcl_ThreadId), /* Target thread. */
+ TCL_UNUSED(ClientData), /* Notifier data. */
+ int *flagPtr, /* Flag to mark. */
+ int value) /* Value of mark. */
+{
+#if TCL_THREADS
+ /*
+ * WARNING:
+ * This code most likely runs in a signal handler. Thus,
+ * only few async-signal-safe system calls are allowed,
+ * e.g. pthread_self(), sem_post(), write().
+ */
+
+ if (pthread_equal(pthread_self(), (pthread_t) notifierThread)) {
+ if (notifierThreadRunning) {
+ *flagPtr = value;
+ if (!asyncPending) {
+ asyncPending = 1;
+ write(triggerPipe, "S", 1);
+ }
+ return 1;
+ }
+ return 0;
+ }
+
+ /*
+ * Re-send the signal to the notifier thread.
+ */
+
+ pthread_kill((pthread_t) notifierThread, sigNumber);
+#endif
+ return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* NotifierThreadProc --
*
* This routine is the initial (and only) function executed by the
@@ -1856,7 +1971,7 @@ NotifierThreadProc(
{
ThreadSpecificData *tsdPtr;
fd_set readableMask, writableMask, exceptionalMask;
- int i, numFdBits = 0, polling;
+ int i, ret, numFdBits = 0, polling;
struct timeval poll = {0., 0.}, *timePtr;
char buf[2];
@@ -1909,8 +2024,25 @@ NotifierThreadProc(
}
FD_SET(receivePipe, &readableMask);
- if (select(numFdBits, &readableMask, &writableMask, &exceptionalMask,
- timePtr) == -1) {
+ /*
+ * Signals are unblocked only during select().
+ */
+
+ pthread_sigmask(SIG_SETMASK, &notifierSigMask, NULL);
+ ret = select(numFdBits, &readableMask, &writableMask, &exceptionalMask,
+ timePtr);
+ pthread_sigmask(SIG_BLOCK, &allSigMask, NULL);
+
+ if (ret == -1) {
+ /*
+ * In case a signal was caught during select(),
+ * perform work on async handlers now.
+ */
+ if (errno == EINTR && asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
+
/*
* Try again immediately on an error.
*/
@@ -1998,6 +2130,11 @@ NotifierThreadProc(
break;
}
+
+ if (asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
}
}
pthread_exit(0);
@@ -2084,12 +2221,17 @@ AtForkChild(void)
*/
#if defined(USE_OS_UNFAIR_LOCK)
- tsdPtr->tsdLock = OS_UNFAIR_LOCK_INIT;
+ notifierInitLock = OS_UNFAIR_LOCK_INIT;
+ notifierLock = OS_UNFAIR_LOCK_INIT;
+ tsdPtr->tsdLock = OS_UNFAIR_LOCK_INIT;
#else
- UNLOCK_NOTIFIER_TSD;
- UNLOCK_NOTIFIER;
- UNLOCK_NOTIFIER_INIT;
+ UNLOCK_NOTIFIER_TSD;
+ UNLOCK_NOTIFIER;
+ UNLOCK_NOTIFIER_INIT;
#endif
+
+ asyncPending = 0;
+
if (tsdPtr->runLoop) {
tsdPtr->runLoop = NULL;
if (!noCFafterFork) {
@@ -2119,6 +2261,12 @@ AtForkChild(void)
if (!noCFafterFork) {
Tcl_InitNotifier();
}
+
+ /*
+ * Restart the notifier thread for signal handling.
+ */
+
+ StartNotifierThread();
}
}
#endif /* HAVE_PTHREAD_ATFORK */
diff --git a/tests/async.test b/tests/async.test
index 0f0af0e..2d8f678 100644
--- a/tests/async.test
+++ b/tests/async.test
@@ -19,6 +19,7 @@ if {"::tcltest" ni [namespace children]} {
::tcltest::loadTestedCommands
catch [list package require -exact tcl::test [info patchlevel]]
+testConstraint thread [expr {0 == [catch {package require Thread 2.7-}]}]
testConstraint testasync [llength [info commands testasync]]
testConstraint knownMsvcBug [expr {![info exists ::env(CI_BUILD_WITH_MSVC)]}]
@@ -149,7 +150,7 @@ test async-3.1 {deleting handlers} testasync {
} {3 del2 {0 0 0 del1 del2}}
test async-4.1 {async interrupting bytecode sequence} -constraints {
- testasync
+ testasync thread
} -setup {
set hm [testasync create async3]
proc nothing {} {
@@ -178,7 +179,7 @@ test async-4.1 {async interrupting bytecode sequence} -constraints {
testasync delete $hm
}
test async-4.2 {async interrupting straight bytecode sequence} -constraints {
- testasync
+ testasync thread
} -setup {
set hm [testasync create async3]
} -body {
@@ -203,7 +204,7 @@ test async-4.2 {async interrupting straight bytecode sequence} -constraints {
testasync delete $hm
}
test async-4.3 {async interrupting loop-less bytecode sequence} -constraints {
- testasync knownMsvcBug
+ testasync thread knownMsvcBug
} -setup {
set hm [testasync create async3]
} -body {
diff --git a/tests/cmdAH.test b/tests/cmdAH.test
index 19ec9ec..7f86275 100644
--- a/tests/cmdAH.test
+++ b/tests/cmdAH.test
@@ -178,7 +178,7 @@ test cmdAH-4.2 {Tcl_EncodingObjCmd} -returnCodes error -body {
} -result {unknown or ambiguous subcommand "foo": must be convertfrom, convertto, dirs, names, or system}
test cmdAH-4.3 {Tcl_EncodingObjCmd} -returnCodes error -body {
encoding convertto
-} -result {wrong # args: should be "encoding convertto ?-nothrow|-stoponerror? ?encoding? data"}
+} -result {wrong # args: should be "encoding convertto ?-nothrow? ?encoding? data"}
test cmdAH-4.4 {Tcl_EncodingObjCmd} -returnCodes error -body {
encoding convertto foo bar
} -result {unknown encoding "foo"}
@@ -200,7 +200,7 @@ test cmdAH-4.6 {Tcl_EncodingObjCmd} -setup {
} -result 8C
test cmdAH-4.7 {Tcl_EncodingObjCmd} -returnCodes error -body {
encoding convertfrom
-} -result {wrong # args: should be "encoding convertfrom ?-nothrow|-stoponerror? ?encoding? data"}
+} -result {wrong # args: should be "encoding convertfrom ?-nothrow? ?encoding? data"}
test cmdAH-4.8 {Tcl_EncodingObjCmd} -returnCodes error -body {
encoding convertfrom foo bar
} -result {unknown encoding "foo"}
diff --git a/tests/encoding.test b/tests/encoding.test
index 08c00f2..5f9557b 100644
--- a/tests/encoding.test
+++ b/tests/encoding.test
@@ -22,6 +22,8 @@ catch {
package require -exact tcl::test [info patchlevel]
}
+testConstraint deprecated [expr {![info exists tcl_precision]}]
+
proc toutf {args} {
variable x
lappend x "toutf $args"
@@ -287,6 +289,12 @@ test encoding-11.8 {encoding: extended Unicode UTF-16} {
test encoding-11.9 {encoding: extended Unicode UTF-16} {
viewable [encoding convertto utf-16be 😹]
} {Ø=Þ9 (\u00D8=\u00DE9)}
+test encoding-11.10 {encoding: extended Unicode UTF-32} {
+ viewable [encoding convertto utf-32le 😹]
+} "9\xF6\x01\x00 (9\\u00F6\\u0001\\u0000)"
+test encoding-11.11 {encoding: extended Unicode UTF-32} {
+ viewable [encoding convertto utf-32be 😹]
+} "\x00\x01\xF69 (\\u0000\\u0001\\u00F69)"
# OpenEncodingFile is fully tested by the rest of the tests in this file.
test encoding-12.1 {LoadTableEncoding: normal encoding} {
@@ -461,10 +469,18 @@ test encoding-16.4 {Ucs2ToUtfProc} -body {
set val [encoding convertfrom ucs-2 NN]
list $val [format %x [scan $val %c]]
} -result "乎 4e4e"
-test encoding-16.4 {Ucs2ToUtfProc} -body {
+test encoding-16.5 {Ucs2ToUtfProc} -body {
set val [encoding convertfrom ucs-2 "\xD8\xD8\xDC\xDC"]
list $val [format %x [scan $val %c]]
} -result "\U460DC 460dc"
+test encoding-16.6 {Utf32ToUtfProc} -body {
+ set val [encoding convertfrom utf-32le NN\0\0]
+ list $val [format %x [scan $val %c]]
+} -result "乎 4e4e"
+test encoding-16.7 {Utf32ToUtfProc} -body {
+ set val [encoding convertfrom utf-32be \0\0NN]
+ list $val [format %x [scan $val %c]]
+} -result "乎 4e4e"
test encoding-17.1 {UtfToUtf16Proc} -body {
encoding convertto utf-16 "\U460DC"
@@ -478,6 +494,12 @@ test encoding-17.3 {UtfToUtf16Proc} -body {
test encoding-17.4 {UtfToUtf16Proc} -body {
encoding convertto -nothrow utf-16le "\uD8D8"
} -result "\xFD\xFF"
+test encoding-17.5 {UtfToUtf16Proc} -body {
+ encoding convertto utf-32le "\U460DC"
+} -result "\xDC\x60\x04\x00"
+test encoding-17.6 {UtfToUtf16Proc} -body {
+ encoding convertto utf-32be "\U460DC"
+} -result "\x00\x04\x60\xDC"
test encoding-18.1 {TableToUtfProc} {
} {}
@@ -615,51 +637,42 @@ test encoding-24.10 {Parse valid or invalid utf-8} {
test encoding-24.11 {Parse valid or invalid utf-8} {
string length [encoding convertfrom -nothrow utf-8 "\xEF\xBF\xBF"]
} 1
-test encoding-24.12 {Parse valid or invalid utf-8} {
- string length [encoding convertfrom -stoponerror utf-8 "\xC0\x80"]
-} 1
-test encoding-24.13 {Parse valid or invalid utf-8} -body {
- encoding convertfrom -stoponerror utf-8 "\xC0\x81"
+test encoding-24.12 {Parse valid or invalid utf-8} -constraints deprecated -body {
+ encoding convertfrom utf-8 "\xC0\x81"
} -returnCodes 1 -result {unexpected byte sequence starting at index 0: '\xC0'}
-test encoding-24.14 {Parse valid or invalid utf-8} -body {
- encoding convertfrom -stoponerror utf-8 "\xC1\xBF"
+test encoding-24.13 {Parse valid or invalid utf-8} -constraints deprecated -body {
+ encoding convertfrom utf-8 "\xC1\xBF"
} -returnCodes 1 -result {unexpected byte sequence starting at index 0: '\xC1'}
-test encoding-24.15 {Parse valid or invalid utf-8} {
- string length [encoding convertfrom -stoponerror utf-8 "\xC2\x80"]
+test encoding-24.14 {Parse valid or invalid utf-8} {
+ string length [encoding convertfrom utf-8 "\xC2\x80"]
} 1
-test encoding-24.16 {Parse valid or invalid utf-8} -body {
- encoding convertfrom -stoponerror utf-8 "Z\xE0\x80"
+test encoding-24.15 {Parse valid or invalid utf-8} -constraints deprecated -body {
+ encoding convertfrom utf-8 "Z\xE0\x80"
} -returnCodes 1 -result {unexpected byte sequence starting at index 1: '\xE0'}
-test encoding-24.17 {Parse valid or invalid utf-8} -constraints testbytestring -body {
- encoding convertto -stoponerror utf-8 [testbytestring "Z\u4343\x80"]
+test encoding-24.16 {Parse valid or invalid utf-8} -constraints {testbytestring deprecated} -body {
+ encoding convertto utf-8 [testbytestring "Z\u4343\x80"]
} -returnCodes 1 -result {expected byte sequence but character 1 was '䍃€' (U+004343)}
-test encoding-24.18 {Parse valid or invalid utf-8} -constraints testbytestring -body {
- encoding convertto -stoponerror utf-8 [testbytestring "Z\xE0\x80"]
+test encoding-24.17 {Parse valid or invalid utf-8} -constraints {testbytestring deprecated} -body {
+ encoding convertto utf-8 [testbytestring "Z\xE0\x80"]
} -result "Z\xC3\xA0\xE2\x82\xAC"
-test encoding-24.19 {Parse valid or invalid utf-8} -constraints testbytestring -body {
- encoding convertto -stoponerror utf-8 [testbytestring "Z\xE0\x80xxxxxx"]
+test encoding-24.18 {Parse valid or invalid utf-8} -constraints {testbytestring deprecated} -body {
+ encoding convertto utf-8 [testbytestring "Z\xE0\x80xxxxxx"]
} -result "Z\xC3\xA0\xE2\x82\xACxxxxxx"
-test encoding-24.20 {Parse valid or invalid utf-8} -body {
- encoding convertto -stoponerror utf-8 "ZX\uD800"
+test encoding-24.19 {Parse valid or invalid utf-8} -constraints deprecated -body {
+ encoding convertto utf-8 "ZX\uD800"
} -returnCodes 1 -match glob -result "unexpected character at index 2: 'U+00D800'"
-test encoding-24.21 {Parse with -nothrow but without providing encoding} {
+test encoding-24.20 {Parse with -nothrow but without providing encoding} {
string length [encoding convertfrom -nothrow "\x20"]
} 1
-test encoding-24.22 {Parse with -nothrow but without providing encoding} {
+test encoding-24.21 {Parse with -nothrow but without providing encoding} {
string length [encoding convertto -nothrow "\x20"]
} 1
-test encoding-24.23 {Syntax error, two encodings} -body {
+test encoding-24.22 {Syntax error, two encodings} -body {
encoding convertfrom iso8859-1 utf-8 "ZX\uD800"
-} -returnCodes 1 -result {wrong # args: should be "::tcl::encoding::convertfrom ?-nothrow|-stoponerror? ?encoding? data"}
-test encoding-24.24 {Syntax error, two encodings} -body {
+} -returnCodes 1 -result {wrong # args: should be "::tcl::encoding::convertfrom ?-nothrow? ?encoding? data"}
+test encoding-24.23 {Syntax error, two encodings} -body {
encoding convertto iso8859-1 utf-8 "ZX\uD800"
-} -returnCodes 1 -result {wrong # args: should be "::tcl::encoding::convertto ?-nothrow|-stoponerror? ?encoding? data"}
-test encoding-24.25 {Syntax error, two options} -body {
- encoding convertfrom -nothrow -stoponerror "ZX\uD800"
-} -returnCodes 1 -result {unknown encoding "-stoponerror"}
-test encoding-24.26 {Syntax error, two options} -body {
- encoding convertto -nothrow -stoponerror "ZX\uD800"
-} -returnCodes 1 -result {unknown encoding "-stoponerror"}
+} -returnCodes 1 -result {wrong # args: should be "::tcl::encoding::convertto ?-nothrow? ?encoding? data"}
file delete [file join [temporaryDirectory] iso2022.txt]
@@ -822,7 +835,7 @@ test encoding-28.0 {all encodings load} -body {
llength $name
}
return $count
-} -result [expr {[info exists ::tcl_precision] ? 88 : 87}]
+} -result [expr {[info exists ::tcl_precision] ? 92 : 91}]
runtests
diff --git a/tests/http11.test b/tests/http11.test
index f243e56..4f6fb92 100644
--- a/tests/http11.test
+++ b/tests/http11.test
@@ -2,7 +2,7 @@
#
# Test HTTP/1.1 features.
#
-# Copyright (C) 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
+# Copyright © 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tests/httpPipeline.test b/tests/httpPipeline.test
index 4306149..4e55a10 100644
--- a/tests/httpPipeline.test
+++ b/tests/httpPipeline.test
@@ -3,7 +3,7 @@
# Test HTTP/1.1 concurrent requests including
# queueing, pipelining and retries.
#
-# Copyright (C) 2018 Keith Nash <kjnash@users.sourceforge.net>
+# Copyright © 2018 Keith Nash <kjnash@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tests/httpTest.tcl b/tests/httpTest.tcl
index 8a96d95..1dc6772 100644
--- a/tests/httpTest.tcl
+++ b/tests/httpTest.tcl
@@ -3,7 +3,7 @@
# Test HTTP/1.1 concurrent requests including
# queueing, pipelining and retries.
#
-# Copyright (C) 2018 Keith Nash <kjnash@users.sourceforge.net>
+# Copyright © 2018 Keith Nash <kjnash@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tests/httpTestScript.tcl b/tests/httpTestScript.tcl
index a40449a..5437bf6 100644
--- a/tests/httpTestScript.tcl
+++ b/tests/httpTestScript.tcl
@@ -3,7 +3,7 @@
# Test HTTP/1.1 concurrent requests including
# queueing, pipelining and retries.
#
-# Copyright (C) 2018 Keith Nash <kjnash@users.sourceforge.net>
+# Copyright © 2018 Keith Nash <kjnash@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tests/httpd11.tcl b/tests/httpd11.tcl
index c7dde43..d0624f8 100644
--- a/tests/httpd11.tcl
+++ b/tests/httpd11.tcl
@@ -3,7 +3,7 @@
# A simple httpd for testing HTTP/1.1 client features.
# Not suitable for use on a internet connected port.
#
-# Copyright (C) 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
+# Copyright © 2009 Pat Thoyts <patthoyts@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tests/info.test b/tests/info.test
index ced4435..46f85e7 100644
--- a/tests/info.test
+++ b/tests/info.test
@@ -20,9 +20,9 @@ if {{::tcltest} ni [namespace children]} {
namespace import -force ::tcltest::*
}
::tcltest::loadTestedCommands
+package require tcltests
catch [list package require -exact tcl::test [info patchlevel]]
testConstraint zlib [llength [info commands zlib]]
-testConstraint nodep [info exists tcl_precision]
# Set up namespaces needed to test operation of "info args", "info body",
# "info default", and "info procs" with imported procedures.
diff --git a/tests/namespace.test b/tests/namespace.test
index 6eabf61..c98ad4a 100644
--- a/tests/namespace.test
+++ b/tests/namespace.test
@@ -1908,6 +1908,24 @@ test namespace-42.10 {
unset -nocomplain lst
} -returnCodes error -match glob -result {invalid command name *three*}
+
+test namespace-42.11 {
+ ensembles: prefix matching segmentation fault
+
+ issue ccc448a6bfd59cbd
+} -body {
+ namespace eval n1 {
+ namespace ensemble create
+ namespace export *
+ proc p1 args {error success}
+ }
+ # segmentation fault only occurs in the non-byte-compiled path, so avoid
+ # byte compilation
+ set cmd {namespace eva n1 {[namespace parent]::n1 p1}}
+ {*}$cmd
+} -returnCodes error -result success
+
+
test namespace-43.1 {ensembles: dict-driven} {
namespace eval ns {
namespace export x*
diff --git a/tests/proc.test b/tests/proc.test
index ab32567..b87af57 100644
--- a/tests/proc.test
+++ b/tests/proc.test
@@ -325,6 +325,15 @@ test proc-4.8 {TclCreateProc, procbody obj, no leak on multiple iterations} -set
test proc-4.9 {[39fed4dae5] Valid Tcl_PkgPresent return} tcl::test {
tcl::procbodytest::check
} 1
+test proc-4.10 {
+ TclCreateProc, issue a8579d906a28, argument with no name
+} -body {
+ catch {
+ proc p1 [list [list [expr {1 + 2}] default]] {}
+ }
+} -cleanup {
+ catch {rename p1 {}}
+} -result 0
test proc-5.1 {Bytecompiling noop; test for correct argument substitution} -body {
proc p args {} ; # this will be bytecompiled into t
diff --git a/tests/regexp.test b/tests/regexp.test
index 6bed21e..a44f2e3 100644
--- a/tests/regexp.test
+++ b/tests/regexp.test
@@ -17,9 +17,8 @@ if {"::tcltest" ni [namespace children]} {
}
unset -nocomplain foo
-
+package require tcltests
testConstraint exec [llength [info commands exec]]
-testConstraint nodep [info exists tcl_precision]
# Used for constraining memory leak tests
testConstraint memory [llength [info commands memory]]
diff --git a/tests/regexpComp.test b/tests/regexpComp.test
index 1587c72..e78c0df 100644
--- a/tests/regexpComp.test
+++ b/tests/regexpComp.test
@@ -16,7 +16,7 @@ if {"::tcltest" ni [namespace children]} {
namespace import -force ::tcltest::*
}
-testConstraint nodep [info exists tcl_precision]
+package require tcltests
# Procedure to evaluate a script within a proc, to test compilation
# functionality
diff --git a/tests/safe.test b/tests/safe.test
index 4d65ba3..d5e2f00 100644
--- a/tests/safe.test
+++ b/tests/safe.test
@@ -1269,7 +1269,7 @@ test safe-11.7 {testing safe encoding} -setup {
interp eval $i encoding convertfrom
} -returnCodes error -cleanup {
safe::interpDelete $i
-} -result {wrong # args: should be "encoding convertfrom ?-nothrow|-stoponerror? ?encoding? data"}
+} -result {wrong # args: should be "encoding convertfrom ?-nothrow? ?encoding? data"}
test safe-11.7.1 {testing safe encoding} -setup {
set i [safe::interpCreate]
} -body {
@@ -1278,7 +1278,7 @@ test safe-11.7.1 {testing safe encoding} -setup {
} -returnCodes ok -match glob -cleanup {
unset -nocomplain m o
safe::interpDelete $i
-} -result {wrong # args: should be "encoding convertfrom ?-nothrow|-stoponerror? ?encoding? data"
+} -result {wrong # args: should be "encoding convertfrom ?-nothrow? ?encoding? data"
while executing
"encoding convertfrom"
invoked from within
@@ -1291,7 +1291,7 @@ test safe-11.8 {testing safe encoding} -setup {
interp eval $i encoding convertto
} -returnCodes error -cleanup {
safe::interpDelete $i
-} -result {wrong # args: should be "encoding convertto ?-nothrow|-stoponerror? ?encoding? data"}
+} -result {wrong # args: should be "encoding convertto ?-nothrow? ?encoding? data"}
test safe-11.8.1 {testing safe encoding} -setup {
set i [safe::interpCreate]
} -body {
@@ -1300,7 +1300,7 @@ test safe-11.8.1 {testing safe encoding} -setup {
} -returnCodes ok -match glob -cleanup {
unset -nocomplain m o
safe::interpDelete $i
-} -result {wrong # args: should be "encoding convertto ?-nothrow|-stoponerror? ?encoding? data"
+} -result {wrong # args: should be "encoding convertto ?-nothrow? ?encoding? data"
while executing
"encoding convertto"
invoked from within
diff --git a/tests/string.test b/tests/string.test
index 822899c..6750a5c 100644
--- a/tests/string.test
+++ b/tests/string.test
@@ -19,6 +19,7 @@ if {"::tcltest" ni [namespace children]} {
::tcltest::loadTestedCommands
catch [list package require -exact tcl::test [info patchlevel]]
+package require tcltests
# Helper commands to test various optimizations, code paths, and special cases.
proc makeByteArray {s} {binary format a* $s}
@@ -33,7 +34,6 @@ testConstraint testindexobj [expr {[info commands testindexobj] ne {}}]
testConstraint testevalex [expr {[info commands testevalex] ne {}}]
testConstraint utf16 [expr {[string length \U010000] == 2}]
testConstraint testbytestring [llength [info commands testbytestring]]
-testConstraint nodep [info exists tcl_precision]
# Used for constraining memory leak tests
testConstraint memory [llength [info commands memory]]
diff --git a/tests/stringObj.test b/tests/stringObj.test
index 135830c..4402185 100644
--- a/tests/stringObj.test
+++ b/tests/stringObj.test
@@ -19,12 +19,12 @@ if {"::tcltest" ni [namespace children]} {
::tcltest::loadTestedCommands
catch [list package require -exact tcl::test [info patchlevel]]
+package require tcltests
testConstraint testobj [llength [info commands testobj]]
testConstraint testbytestring [llength [info commands testbytestring]]
testConstraint testdstring [llength [info commands testdstring]]
testConstraint tip389 [expr {[string length \U010000] == 2}]
-testConstraint nodep [info exists tcl_precision]
test stringObj-1.1 {string type registration} testobj {
set t [testobj types]
diff --git a/tests/tcltests.tcl b/tests/tcltests.tcl
index 1ee37d3..f7407b4 100644
--- a/tests/tcltests.tcl
+++ b/tests/tcltests.tcl
@@ -15,6 +15,7 @@ if {[namespace which testdebug] ne {}} {
[testConstraint purify]
}]
}
+testConstraint nodep [info exists tcl_precision]
testConstraint fcopy [llength [info commands fcopy]]
testConstraint fileevent [llength [info commands fileevent]]
testConstraint thread [
diff --git a/tools/checkLibraryDoc.tcl b/tools/checkLibraryDoc.tcl
index 4e4d6e7..36d82b2 100644
--- a/tools/checkLibraryDoc.tcl
+++ b/tools/checkLibraryDoc.tcl
@@ -16,7 +16,7 @@
# non-standard code, this script will produce erroneous results. Each
# list should be carefully checked for accuracy.
#
-# Copyright (c) 1998-1999 Scriptics Corporation.
+# Copyright © 1998-1999 Scriptics Corporation.
# All rights reserved.
diff --git a/tools/encoding/big5.txt b/tools/encoding/big5.txt
index dca0191..58cdfe2 100644
--- a/tools/encoding/big5.txt
+++ b/tools/encoding/big5.txt
@@ -1,44 +1,25 @@
-# big5.txt --
-#
-# BIG5 to Unicode table (modified)
-#
-# Copyright (c) 1998-1999 Scriptics Corporation.
-#
-# See the file "license.terms" for information on usage and redistribution
-# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# NOTE: this table has been modified to include the 7-bit ASCII
-# characters that are allowed in BIG5 files.
-#
+# BIG5.TXT
+# Date: 2015-12-02 23:52:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Name: BIG5 to Unicode table (complete)
# Unicode version: 1.1
-# Table version: 0.0d3
+# Table version: 2.0
# Table format: Format A
-# Date: 11 February 1994
-# Authors: Glenn Adams <glenn@metis.com>
-# John H. Jenkins <John_Jenkins@taligent.com>
-#
-# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
-#
-# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-# No claims are made as to fitness for any particular purpose. No
-# warranties of any kind are expressed or implied. The recipient
-# agrees to determine applicability of information provided. If this
-# file has been provided on magnetic media by Unicode, Inc., the sole
-# remedy for any claim will be exchange of defective media within 90
-# days of receipt.
-#
-# Recipient is granted the right to make copies in any form for
-# internal distribution and to freely use the information supplied
-# in the creation of products supporting Unicode. Unicode, Inc.
-# specifically excludes the right to re-distribute this file directly
-# to third parties or other organizations whether for profit or not.
+# Date: 2011 October 14 (header updated: 2015 December 02)
#
# General notes:
#
-# This table contains the data Metis and Taligent currently have on how
-# BIG5 characters map into Unicode.
+# NOTE: this table has been modified to include the 7-bit ASCII
+# characters that are allowed in BIG5 files.
+#
+# This table contains one set of mappings from BIG5 into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of BIG5 and Unicode, consult the
+# VENDORS mapping data.
#
# WARNING! It is currently impossible to provide round-trip compatibility
# between BIG5 and Unicode.
@@ -64,38 +45,50 @@
#
# 1. In addition to the above, there is some uncertainty about the
# mappings in the range C6A1 - C8FE, and F9DD - F9FE. The ETEN
-# version of BIG5 organizes the former range differently, and adds
-# additional characters in the latter range. The correct mappings
-# these ranges need to be determined.
+# version of BIG5 organizes the former range differently, and adds
+# additional characters in the latter range. The correct mappings
+# these ranges need to be determined.
#
# 2. There is an uncertainty in the mapping of the Big Five character
-# 0xA3BC. This character occurs within the Big Five block of tone marks
-# for bopomofo and is intended to be the tone mark for the first tone in
-# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER
-# MACRON (Mandarin Chinese first tone) to reflect this semantic.
-# However, because bopomofo uses the absense of a tone mark to indicate
-# the first Mandarin tone, most implementations of Big Five represent
-# this character with a blank space, and so a mapping such as U+2003 EM SPACE
-# might be preferred.
-#
-#
+# 0xA3BC. This character occurs within the Big Five block of tone marks
+# for bopomofo and is intended to be the tone mark for the first tone in
+# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER
+# MACRON (Mandarin Chinese first tone) to reflect this semantic.
+# However, because bopomofo uses the absense of a tone mark to indicate
+# the first Mandarin tone, most implementations of Big Five represent
+# this character with a blank space, and so a mapping such as U+2003 EM
+# SPACE might be preferred.
#
# Format: Three tab-separated columns
# Column #1 is the BIG5 code (in hex as 0xXXXX)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 is the Unicode name (follows a comment sign, '#')
-# The official names for Unicode characters U+4E00
-# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
-# where XXXX is the code point. Including all these
-# names in this file increases its size substantially
-# and needlessly. The token "<CJK>" is used for the
-# name of these characters. If necessary, it can be
-# expanded algorithmically by a parser or editor.
+# The official names for Unicode characters U+4E00
+# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
+# where XXXX is the code point. Including all these
+# names in this file increases its size substantially
+# and needlessly. The token "<CJK>" is used for the
+# name of these characters. If necessary, it can be
+# expanded algorithmically by a parser or editor.
#
# The entries are in BIG5 order
#
-# Any comments or problems, contact <John_Jenkins@taligent.com>
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
+#
+# [v0.0d3, 11 February 1994]
+# First release.
#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
#
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
diff --git a/tools/encoding/cns11643.txt b/tools/encoding/cns11643.txt
new file mode 100644
index 0000000..d6ce3c1
--- /dev/null
+++ b/tools/encoding/cns11643.txt
@@ -0,0 +1,17796 @@
+# CNS11643.TXT
+# Date: 2015-12-02 23:53:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
+#
+# Name: CNS 11643-1986 to Unicode table (complete)
+# Unicode version: 1.1
+# Table version: 2.0
+# Table format: Format A
+# Date: 2011 October 14 (header updated: 2015 December 02)
+#
+# General notes:
+#
+#
+# This table contains one set of mappings from CNS 11643-1986 into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of CNS 11643-1986 and Unicode, consult the
+# VENDORS mapping data.
+#
+#
+# WARNING! It is currently impossible to provide round-trip compatibility
+# between CNS 11643-1986 and Unicode.
+#
+# (1) Some characters are not currently mapped because
+# of conflicts with other mappings. They include the following:
+#
+# CNS Description Comments
+#
+# 0x12224 SPACING HEAVY OVERSCORE not in Unicode
+# 0x12226 SPACING HEAVY UNDERSCORE not in Unicode
+#
+# (2) Some characters are not currently mapped because CNS 11643-1986 includes
+# duplicate versions of some ideographs which are included in Unicode only
+# once. They include the following:
+#
+# 0x1243E through 0x12440, HANGZHOU NUMERAL TEN, TWENTY, and THIRTY
+# 0x12721 through 0x12939, KangXi radical set
+#
+# Entries for these characters are not included in this table.
+#
+# Notes:
+#
+# 1. There is an uncertainty in the mapping of the CNS 11643-1986 character
+# 0x1256D. This character occurs within the CNS 11643-1986 block of tone marks
+# for bopomofo and is intended to be the tone mark for the first tone in
+# Mandarin Chinese. We have selected the mapping U+02C9 MODIFIER LETTER
+# MACRON (Mandarin Chinese first tone) to reflect this semantic.
+# However, because bopomofo uses the absense of a tone mark to indicate
+# the first Mandarin tone, most implementations of CNS 11643-1986
+# represent this character with a blank space, and so a mapping such as
+# U+2003 EM SPACE might be preferred.
+#
+# Format: Three tab-separated columns
+# Column #1 is the CNS 11643-1986 code (in hex as 0xXXXXX)
+# Column #2 is the Unicode (in hex as 0xXXXX)
+# Column #3 is the Unicode name (follows a comment sign, '#')
+# The official names for Unicode characters U+4E00
+# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
+# where XXXX is the code point. Including all these
+# names in this file increases its size substantially
+# and needlessly. The token "<CJK>" is used for the
+# name of these characters. If necessary, it can be
+# expanded algorithmically by a parser or editor.
+#
+# The entries are in CNS 11643-1986 order
+#
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
+#
+# [v0.0d1, 21 October 1994]
+# First release.
+#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
+#
+0x12121 0x3000 # IDEOGRAPHIC SPACE
+0x12122 0xFF0C # FULLWIDTH COMMA
+0x12123 0x3001 # IDEOGRAPHIC COMMA
+0x12124 0x3002 # IDEOGRAPHIC FULL STOP
+0x12125 0xFF0E # FULLWIDTH FULL STOP
+0x12126 0x30FB # KATAKANA MIDDLE DOT
+0x12127 0xFF1B # FULLWIDTH SEMICOLON
+0x12128 0xFF1A # FULLWIDTH COLON
+0x12129 0xFF1F # FULLWIDTH QUESTION MARK
+0x1212A 0xFF01 # FULLWIDTH EXCLAMATION MARK
+0x1212B 0xFE30 # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+0x1212C 0x2026 # HORIZONTAL ELLIPSIS
+0x1212D 0x2025 # TWO DOT LEADER
+0x1212E 0xFE50 # SMALL COMMA
+0x1212F 0xFE51 # SMALL IDEOGRAPHIC COMMA
+0x12130 0xFE52 # SMALL FULL STOP
+0x12131 0x00B7 # MIDDLE DOT
+0x12132 0xFE54 # SMALL SEMICOLON
+0x12133 0xFE55 # SMALL COLON
+0x12134 0xFE56 # SMALL QUESTION MARK
+0x12135 0xFE57 # SMALL EXCLAMATION MARK
+0x12136 0xFE31 # PRESENTATION FORM FOR VERTICAL EM DASH
+0x12137 0x2014 # EM DASH
+0x12138 0xFE32 # PRESENTATION FORM FOR VERTICAL EN DASH
+0x12139 0x2013 # EN DASH
+0x1213E 0xFF08 # FULLWIDTH LEFT PARENTHESIS
+0x1213F 0xFF09 # FULLWIDTH RIGHT PARENTHESIS
+0x12140 0xFE35 # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+0x12141 0xFE36 # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+0x12142 0xFF5B # FULLWIDTH LEFT CURLY BRACKET
+0x12143 0xFF5D # FULLWIDTH RIGHT CURLY BRACKET
+0x12144 0xFE37 # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+0x12145 0xFE38 # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+0x12146 0x3014 # LEFT TORTOISE SHELL BRACKET
+0x12147 0x3015 # RIGHT TORTOISE SHELL BRACKET
+0x12148 0xFE39 # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+0x12149 0xFE3A # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+0x1214A 0x3010 # LEFT BLACK LENTICULAR BRACKET
+0x1214B 0x3011 # RIGHT BLACK LENTICULAR BRACKET
+0x1214C 0xFE3B # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+0x1214D 0xFE3C # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+0x1214E 0x300A # LEFT DOUBLE ANGLE BRACKET
+0x1214F 0x300B # RIGHT DOUBLE ANGLE BRACKET
+0x12150 0xFE3D # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+0x12151 0xFE3E # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+0x12152 0x3008 # LEFT ANGLE BRACKET
+0x12153 0x3009 # RIGHT ANGLE BRACKET
+0x12154 0xFE3F # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+0x12155 0xFE40 # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+0x12156 0x300C # LEFT CORNER BRACKET
+0x12157 0x300D # RIGHT CORNER BRACKET
+0x12158 0xFE41 # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+0x12159 0xFE42 # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+0x1215A 0x300E # LEFT WHITE CORNER BRACKET
+0x1215B 0x300F # RIGHT WHITE CORNER BRACKET
+0x1215C 0xFE43 # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+0x1215D 0xFE44 # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+0x1215E 0xFE59 # SMALL LEFT PARENTHESIS
+0x1215F 0xFE5A # SMALL RIGHT PARENTHESIS
+0x12160 0xFE5B # SMALL LEFT CURLY BRACKET
+0x12161 0xFE5C # SMALL RIGHT CURLY BRACKET
+0x12162 0xFE5D # SMALL LEFT TORTOISE SHELL BRACKET
+0x12163 0xFE5E # SMALL RIGHT TORTOISE SHELL BRACKET
+0x12164 0x2018 # LEFT SINGLE QUOTATION MARK
+0x12165 0x2019 # RIGHT SINGLE QUOTATION MARK
+0x12166 0x201C # LEFT DOUBLE QUOTATION MARK
+0x12167 0x201D # RIGHT DOUBLE QUOTATION MARK
+0x12168 0x301D # REVERSED DOUBLE PRIME QUOTATION MARK
+0x12169 0x301E # DOUBLE PRIME QUOTATION MARK
+0x1216A 0x2032 # PRIME
+0x1216B 0x2035 # REVERSED PRIME
+0x1216C 0xFF03 # FULLWIDTH NUMBER SIGN
+0x1216D 0xFF06 # FULLWIDTH AMPERSAND
+0x1216E 0xFF0A # FULLWIDTH ASTERISK
+0x1216F 0x203B # REFERENCE MARK
+0x12170 0x00A7 # SECTION SIGN
+0x12171 0x3003 # DITTO MARK
+0x12172 0x25CB # WHITE CIRCLE
+0x12173 0x25CF # BLACK CIRCLE
+0x12174 0x25B3 # WHITE UP-POINTING TRIANGLE
+0x12175 0x25B2 # BLACK UP-POINTING TRIANGLE
+0x12176 0x25CE # BULLSEYE
+0x12177 0x2606 # WHITE STAR
+0x12178 0x2605 # BLACK STAR
+0x12179 0x25C7 # WHITE DIAMOND
+0x1217A 0x25C6 # BLACK DIAMOND
+0x1217B 0x25A1 # WHITE SQUARE
+0x1217C 0x25A0 # BLACK SQUARE
+0x1217D 0x25BD # WHITE DOWN-POINTING TRIANGLE
+0x1217E 0x25BC # BLACK DOWN-POINTING TRIANGLE
+0x12221 0x32A3 # CIRCLED IDEOGRAPH CORRECT
+0x12222 0x2105 # CARE OF
+0x12223 0x203E # OVERLINE
+0x12225 0xFF3F # FULLWIDTH LOW LINE
+0x12227 0xFE49 # DASHED OVERLINE
+0x12228 0xFE4A # CENTRELINE OVERLINE
+0x12229 0xFE4D # DASHED LOW LINE
+0x1222A 0xFE4E # CENTRELINE LOW LINE
+0x1222B 0xFE4B # WAVY OVERLINE
+0x1222C 0xFE4C # DOUBLE WAVY OVERLINE
+0x1222D 0xFE5F # SMALL NUMBER SIGN
+0x1222E 0xFE60 # SMALL AMPERSAND
+0x1222F 0xFE61 # SMALL ASTERISK
+0x12230 0xFF0B # FULLWIDTH PLUS SIGN
+0x12231 0xFF0D # FULLWIDTH HYPHEN-MINUS
+0x12232 0x00D7 # MULTIPLICATION SIGN
+0x12233 0x00F7 # DIVISION SIGN
+0x12234 0x00B1 # PLUS-MINUS SIGN
+0x12235 0x221A # SQUARE ROOT
+0x12236 0xFF1C # FULLWIDTH LESS-THAN SIGN
+0x12237 0xFF1E # FULLWIDTH GREATER-THAN SIGN
+0x12238 0xFF1D # FULLWIDTH EQUALS SIGN
+0x12239 0x2266 # LESS-THAN OVER EQUAL TO
+0x1223A 0x2267 # GREATER-THAN OVER EQUAL TO
+0x1223B 0x2260 # NOT EQUAL TO
+0x1223C 0x221E # INFINITY
+0x1223D 0x2252 # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+0x1223E 0x2261 # IDENTICAL TO
+0x1223F 0xFE62 # SMALL PLUS SIGN
+0x12240 0xFE63 # SMALL HYPHEN-MINUS
+0x12241 0xFE64 # SMALL LESS-THAN SIGN
+0x12242 0xFE66 # SMALL EQUALS SIGN
+0x12243 0xFE65 # SMALL GREATER-THAN SIGN
+0x12244 0x223C # TILDE OPERATOR
+0x12245 0x2229 # INTERSECTION
+0x12246 0x222A # UNION
+0x12247 0x22A5 # UP TACK
+0x12248 0x2220 # ANGLE
+0x12249 0x221F # RIGHT ANGLE
+0x1224A 0x22BF # RIGHT TRIANGLE
+0x1224B 0x33D2 # SQUARE LOG
+0x1224C 0x33D1 # SQUARE LN
+0x1224D 0x222B # INTEGRAL
+0x1224E 0x222E # CONTOUR INTEGRAL
+0x1224F 0x2235 # BECAUSE
+0x12250 0x2234 # THEREFORE
+0x12251 0x2640 # FEMALE SIGN
+0x12252 0x2642 # MALE SIGN
+0x12253 0x2641 # EARTH
+0x12254 0x2609 # SUN
+0x12255 0x2191 # UPWARDS ARROW
+0x12256 0x2193 # DOWNWARDS ARROW
+0x12257 0x2192 # RIGHTWARDS ARROW
+0x12258 0x2190 # LEFTWARDS ARROW
+0x12259 0x2196 # NORTH WEST ARROW
+0x1225A 0x2197 # NORTH EAST ARROW
+0x1225B 0x2199 # SOUTH WEST ARROW
+0x1225C 0x2198 # SOUTH EAST ARROW
+0x1225D 0x2016 # DOUBLE VERTICAL LINE
+0x1225E 0xFF5C # FULLWIDTH VERTICAL LINE
+0x1225F 0xFF0F # FULLWIDTH SOLIDUS
+0x12260 0xFF3C # FULLWIDTH REVERSE SOLIDUS
+0x12261 0x2215 # DIVISION SLASH
+0x12262 0xFE68 # SMALL REVERSE SOLIDUS
+0x12263 0xFF04 # FULLWIDTH DOLLAR SIGN
+0x12264 0xFFE5 # FULLWIDTH YEN SIGN
+0x12265 0x3012 # POSTAL MARK
+0x12266 0xFFE0 # FULLWIDTH CENT SIGN
+0x12267 0xFFE1 # FULLWIDTH POUND SIGN
+0x12268 0xFF05 # FULLWIDTH PERCENT SIGN
+0x12269 0xFF20 # FULLWIDTH COMMERCIAL AT
+0x1226A 0x2103 # DEGREE CELSIUS
+0x1226B 0x2109 # DEGREE FAHRENHEIT
+0x1226C 0xFE69 # SMALL DOLLAR SIGN
+0x1226D 0xFE6A # SMALL PERCENT SIGN
+0x1226E 0xFE6B # SMALL COMMERCIAL AT
+0x1226F 0x33D5 # SQUARE MIL
+0x12270 0x339C # SQUARE MM
+0x12271 0x339D # SQUARE CM
+0x12272 0x339E # SQUARE KM
+0x12273 0x33CE # SQUARE KM CAPITAL
+0x12274 0x33A1 # SQUARE M SQUARED
+0x12275 0x338E # SQUARE MG
+0x12276 0x338F # SQUARE KG
+0x12277 0x33C4 # SQUARE CC
+0x12278 0x00B0 # DEGREE SIGN
+0x12279 0x5159 # <CJK>
+0x1227A 0x515B # <CJK>
+0x1227B 0x515E # <CJK>
+0x1227C 0x515D # <CJK>
+0x1227D 0x5161 # <CJK>
+0x1227E 0x5163 # <CJK>
+0x12321 0x55E7 # <CJK>
+0x12322 0x74E9 # <CJK>
+0x12323 0x7CCE # <CJK>
+0x12324 0x2581 # LOWER ONE EIGHTH BLOCK
+0x12325 0x2582 # LOWER ONE QUARTER BLOCK
+0x12326 0x2583 # LOWER THREE EIGHTHS BLOCK
+0x12327 0x2584 # LOWER HALF BLOCK
+0x12328 0x2585 # LOWER FIVE EIGHTHS BLOCK
+0x12329 0x2586 # LOWER THREE QUARTERS BLOCK
+0x1232A 0x2587 # LOWER SEVEN EIGHTHS BLOCK
+0x1232B 0x2588 # FULL BLOCK
+0x1232C 0x258F # LEFT ONE EIGHTH BLOCK
+0x1232D 0x258E # LEFT ONE QUARTER BLOCK
+0x1232E 0x258D # LEFT THREE EIGHTHS BLOCK
+0x1232F 0x258C # LEFT HALF BLOCK
+0x12330 0x258B # LEFT FIVE EIGHTHS BLOCK
+0x12331 0x258A # LEFT THREE QUARTERS BLOCK
+0x12332 0x2589 # LEFT SEVEN EIGHTHS BLOCK
+0x12333 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0x12334 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0x12335 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0x12336 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0x12337 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0x12338 0x2594 # UPPER ONE EIGHTH BLOCK
+0x12339 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
+0x1233A 0x2502 # BOX DRAWINGS LIGHT VERTICAL
+0x1233B 0x2595 # RIGHT ONE EIGHTH BLOCK
+0x1233C 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0x1233D 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
+0x1233E 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
+0x1233F 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
+0x12340 0x256D # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+0x12341 0x256E # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0x12342 0x2570 # BOX DRAWINGS LIGHT ARC UP AND RIGHT
+0x12343 0x256F # BOX DRAWINGS LIGHT ARC UP AND LEFT
+0x12344 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
+0x12345 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0x12346 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0x12347 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0x12348 0x25E2 # BLACK LOWER RIGHT TRIANGLE
+0x12349 0x25E3 # BLACK LOWER LEFT TRIANGLE
+0x1234A 0x25E5 # BLACK UPPER RIGHT TRIANGLE
+0x1234B 0x25E4 # BLACK UPPER LEFT TRIANGLE
+0x1234C 0x2571 # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT
+0x1234D 0x2572 # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT
+0x1234E 0x2573 # BOX DRAWINGS LIGHT DIAGONAL CROSS
+0x12421 0xFF10 # FULLWIDTH DIGIT ZERO
+0x12422 0xFF11 # FULLWIDTH DIGIT ONE
+0x12423 0xFF12 # FULLWIDTH DIGIT TWO
+0x12424 0xFF13 # FULLWIDTH DIGIT THREE
+0x12425 0xFF14 # FULLWIDTH DIGIT FOUR
+0x12426 0xFF15 # FULLWIDTH DIGIT FIVE
+0x12427 0xFF16 # FULLWIDTH DIGIT SIX
+0x12428 0xFF17 # FULLWIDTH DIGIT SEVEN
+0x12429 0xFF18 # FULLWIDTH DIGIT EIGHT
+0x1242A 0xFF19 # FULLWIDTH DIGIT NINE
+0x1242B 0x2160 # ROMAN NUMERAL ONE
+0x1242C 0x2161 # ROMAN NUMERAL TWO
+0x1242D 0x2162 # ROMAN NUMERAL THREE
+0x1242E 0x2163 # ROMAN NUMERAL FOUR
+0x1242F 0x2164 # ROMAN NUMERAL FIVE
+0x12430 0x2165 # ROMAN NUMERAL SIX
+0x12431 0x2166 # ROMAN NUMERAL SEVEN
+0x12432 0x2167 # ROMAN NUMERAL EIGHT
+0x12433 0x2168 # ROMAN NUMERAL NINE
+0x12434 0x2169 # ROMAN NUMERAL TEN
+0x12435 0x3021 # HANGZHOU NUMERAL ONE
+0x12436 0x3022 # HANGZHOU NUMERAL TWO
+0x12437 0x3023 # HANGZHOU NUMERAL THREE
+0x12438 0x3024 # HANGZHOU NUMERAL FOUR
+0x12439 0x3025 # HANGZHOU NUMERAL FIVE
+0x1243A 0x3026 # HANGZHOU NUMERAL SIX
+0x1243B 0x3027 # HANGZHOU NUMERAL SEVEN
+0x1243C 0x3028 # HANGZHOU NUMERAL EIGHT
+0x1243D 0x3029 # HANGZHOU NUMERAL NINE
+0x1243F 0x5344 # <CJK>
+0x12441 0xFF21 # FULLWIDTH LATIN CAPITAL LETTER A
+0x12442 0xFF22 # FULLWIDTH LATIN CAPITAL LETTER B
+0x12443 0xFF23 # FULLWIDTH LATIN CAPITAL LETTER C
+0x12444 0xFF24 # FULLWIDTH LATIN CAPITAL LETTER D
+0x12445 0xFF25 # FULLWIDTH LATIN CAPITAL LETTER E
+0x12446 0xFF26 # FULLWIDTH LATIN CAPITAL LETTER F
+0x12447 0xFF27 # FULLWIDTH LATIN CAPITAL LETTER G
+0x12448 0xFF28 # FULLWIDTH LATIN CAPITAL LETTER H
+0x12449 0xFF29 # FULLWIDTH LATIN CAPITAL LETTER I
+0x1244A 0xFF2A # FULLWIDTH LATIN CAPITAL LETTER J
+0x1244B 0xFF2B # FULLWIDTH LATIN CAPITAL LETTER K
+0x1244C 0xFF2C # FULLWIDTH LATIN CAPITAL LETTER L
+0x1244D 0xFF2D # FULLWIDTH LATIN CAPITAL LETTER M
+0x1244E 0xFF2E # FULLWIDTH LATIN CAPITAL LETTER N
+0x1244F 0xFF2F # FULLWIDTH LATIN CAPITAL LETTER O
+0x12450 0xFF30 # FULLWIDTH LATIN CAPITAL LETTER P
+0x12451 0xFF31 # FULLWIDTH LATIN CAPITAL LETTER Q
+0x12452 0xFF32 # FULLWIDTH LATIN CAPITAL LETTER R
+0x12453 0xFF33 # FULLWIDTH LATIN CAPITAL LETTER S
+0x12454 0xFF34 # FULLWIDTH LATIN CAPITAL LETTER T
+0x12455 0xFF35 # FULLWIDTH LATIN CAPITAL LETTER U
+0x12456 0xFF36 # FULLWIDTH LATIN CAPITAL LETTER V
+0x12457 0xFF37 # FULLWIDTH LATIN CAPITAL LETTER W
+0x12458 0xFF38 # FULLWIDTH LATIN CAPITAL LETTER X
+0x12459 0xFF39 # FULLWIDTH LATIN CAPITAL LETTER Y
+0x1245A 0xFF3A # FULLWIDTH LATIN CAPITAL LETTER Z
+0x1245B 0xFF41 # FULLWIDTH LATIN SMALL LETTER A
+0x1245C 0xFF42 # FULLWIDTH LATIN SMALL LETTER B
+0x1245D 0xFF43 # FULLWIDTH LATIN SMALL LETTER C
+0x1245E 0xFF44 # FULLWIDTH LATIN SMALL LETTER D
+0x1245F 0xFF45 # FULLWIDTH LATIN SMALL LETTER E
+0x12460 0xFF46 # FULLWIDTH LATIN SMALL LETTER F
+0x12461 0xFF47 # FULLWIDTH LATIN SMALL LETTER G
+0x12462 0xFF48 # FULLWIDTH LATIN SMALL LETTER H
+0x12463 0xFF49 # FULLWIDTH LATIN SMALL LETTER I
+0x12464 0xFF4A # FULLWIDTH LATIN SMALL LETTER J
+0x12465 0xFF4B # FULLWIDTH LATIN SMALL LETTER K
+0x12466 0xFF4C # FULLWIDTH LATIN SMALL LETTER L
+0x12467 0xFF4D # FULLWIDTH LATIN SMALL LETTER M
+0x12468 0xFF4E # FULLWIDTH LATIN SMALL LETTER N
+0x12469 0xFF4F # FULLWIDTH LATIN SMALL LETTER O
+0x1246A 0xFF50 # FULLWIDTH LATIN SMALL LETTER P
+0x1246B 0xFF51 # FULLWIDTH LATIN SMALL LETTER Q
+0x1246C 0xFF52 # FULLWIDTH LATIN SMALL LETTER R
+0x1246D 0xFF53 # FULLWIDTH LATIN SMALL LETTER S
+0x1246E 0xFF54 # FULLWIDTH LATIN SMALL LETTER T
+0x1246F 0xFF55 # FULLWIDTH LATIN SMALL LETTER U
+0x12470 0xFF56 # FULLWIDTH LATIN SMALL LETTER V
+0x12471 0xFF57 # FULLWIDTH LATIN SMALL LETTER W
+0x12472 0xFF58 # FULLWIDTH LATIN SMALL LETTER X
+0x12473 0xFF59 # FULLWIDTH LATIN SMALL LETTER Y
+0x12474 0xFF5A # FULLWIDTH LATIN SMALL LETTER Z
+0x12475 0x0391 # GREEK CAPITAL LETTER ALPHA
+0x12476 0x0392 # GREEK CAPITAL LETTER BETA
+0x12477 0x0393 # GREEK CAPITAL LETTER GAMMA
+0x12478 0x0394 # GREEK CAPITAL LETTER DELTA
+0x12479 0x0395 # GREEK CAPITAL LETTER EPSILON
+0x1247A 0x0396 # GREEK CAPITAL LETTER ZETA
+0x1247B 0x0397 # GREEK CAPITAL LETTER ETA
+0x1247C 0x0398 # GREEK CAPITAL LETTER THETA
+0x1247D 0x0399 # GREEK CAPITAL LETTER IOTA
+0x1247E 0x039A # GREEK CAPITAL LETTER KAPPA
+0x12521 0x039B # GREEK CAPITAL LETTER LAMDA
+0x12522 0x039C # GREEK CAPITAL LETTER MU
+0x12523 0x039D # GREEK CAPITAL LETTER NU
+0x12524 0x039E # GREEK CAPITAL LETTER XI
+0x12525 0x039F # GREEK CAPITAL LETTER OMICRON
+0x12526 0x03A0 # GREEK CAPITAL LETTER PI
+0x12527 0x03A1 # GREEK CAPITAL LETTER RHO
+0x12528 0x03A3 # GREEK CAPITAL LETTER SIGMA
+0x12529 0x03A4 # GREEK CAPITAL LETTER TAU
+0x1252A 0x03A5 # GREEK CAPITAL LETTER UPSILON
+0x1252B 0x03A6 # GREEK CAPITAL LETTER PHI
+0x1252C 0x03A7 # GREEK CAPITAL LETTER CHI
+0x1252D 0x03A8 # GREEK CAPITAL LETTER PSI
+0x1252E 0x03A9 # GREEK CAPITAL LETTER OMEGA
+0x1252F 0x03B1 # GREEK SMALL LETTER ALPHA
+0x12530 0x03B2 # GREEK SMALL LETTER BETA
+0x12531 0x03B3 # GREEK SMALL LETTER GAMMA
+0x12532 0x03B4 # GREEK SMALL LETTER DELTA
+0x12533 0x03B5 # GREEK SMALL LETTER EPSILON
+0x12534 0x03B6 # GREEK SMALL LETTER ZETA
+0x12535 0x03B7 # GREEK SMALL LETTER ETA
+0x12536 0x03B8 # GREEK SMALL LETTER THETA
+0x12537 0x03B9 # GREEK SMALL LETTER IOTA
+0x12538 0x03BA # GREEK SMALL LETTER KAPPA
+0x12539 0x03BB # GREEK SMALL LETTER LAMDA
+0x1253A 0x03BC # GREEK SMALL LETTER MU
+0x1253B 0x03BD # GREEK SMALL LETTER NU
+0x1253C 0x03BE # GREEK SMALL LETTER XI
+0x1253D 0x03BF # GREEK SMALL LETTER OMICRON
+0x1253E 0x03C0 # GREEK SMALL LETTER PI
+0x1253F 0x03C1 # GREEK SMALL LETTER RHO
+0x12540 0x03C3 # GREEK SMALL LETTER SIGMA
+0x12541 0x03C4 # GREEK SMALL LETTER TAU
+0x12542 0x03C5 # GREEK SMALL LETTER UPSILON
+0x12543 0x03C6 # GREEK SMALL LETTER PHI
+0x12544 0x03C7 # GREEK SMALL LETTER CHI
+0x12545 0x03C8 # GREEK SMALL LETTER PSI
+0x12546 0x03C9 # GREEK SMALL LETTER OMEGA
+0x12547 0x3105 # BOPOMOFO LETTER B
+0x12548 0x3106 # BOPOMOFO LETTER P
+0x12549 0x3107 # BOPOMOFO LETTER M
+0x1254A 0x3108 # BOPOMOFO LETTER F
+0x1254B 0x3109 # BOPOMOFO LETTER D
+0x1254C 0x310A # BOPOMOFO LETTER T
+0x1254D 0x310B # BOPOMOFO LETTER N
+0x1254E 0x310C # BOPOMOFO LETTER L
+0x1254F 0x310D # BOPOMOFO LETTER G
+0x12550 0x310E # BOPOMOFO LETTER K
+0x12551 0x310F # BOPOMOFO LETTER H
+0x12552 0x3110 # BOPOMOFO LETTER J
+0x12553 0x3111 # BOPOMOFO LETTER Q
+0x12554 0x3112 # BOPOMOFO LETTER X
+0x12555 0x3113 # BOPOMOFO LETTER ZH
+0x12556 0x3114 # BOPOMOFO LETTER CH
+0x12557 0x3115 # BOPOMOFO LETTER SH
+0x12558 0x3116 # BOPOMOFO LETTER R
+0x12559 0x3117 # BOPOMOFO LETTER Z
+0x1255A 0x3118 # BOPOMOFO LETTER C
+0x1255B 0x3119 # BOPOMOFO LETTER S
+0x1255C 0x311A # BOPOMOFO LETTER A
+0x1255D 0x311B # BOPOMOFO LETTER O
+0x1255E 0x311C # BOPOMOFO LETTER E
+0x1255F 0x311D # BOPOMOFO LETTER EH
+0x12560 0x311E # BOPOMOFO LETTER AI
+0x12561 0x311F # BOPOMOFO LETTER EI
+0x12562 0x3120 # BOPOMOFO LETTER AU
+0x12563 0x3121 # BOPOMOFO LETTER OU
+0x12564 0x3122 # BOPOMOFO LETTER AN
+0x12565 0x3123 # BOPOMOFO LETTER EN
+0x12566 0x3124 # BOPOMOFO LETTER ANG
+0x12567 0x3125 # BOPOMOFO LETTER ENG
+0x12568 0x3126 # BOPOMOFO LETTER ER
+0x12569 0x3127 # BOPOMOFO LETTER I
+0x1256A 0x3128 # BOPOMOFO LETTER U
+0x1256B 0x3129 # BOPOMOFO LETTER IU
+0x1256C 0x02D9 # DOT ABOVE
+0x1256D 0x02C9 # MODIFIER LETTER MACRON
+0x1256E 0x02CA # MODIFIER LETTER ACUTE ACCENT
+0x1256F 0x02C7 # CARON
+0x12570 0x02CB # MODIFIER LETTER GRAVE ACCENT
+0x12621 0x2460 # CIRCLED DIGIT ONE
+0x12622 0x2461 # CIRCLED DIGIT TWO
+0x12623 0x2462 # CIRCLED DIGIT THREE
+0x12624 0x2463 # CIRCLED DIGIT FOUR
+0x12625 0x2464 # CIRCLED DIGIT FIVE
+0x12626 0x2465 # CIRCLED DIGIT SIX
+0x12627 0x2466 # CIRCLED DIGIT SEVEN
+0x12628 0x2467 # CIRCLED DIGIT EIGHT
+0x12629 0x2468 # CIRCLED DIGIT NINE
+0x1262A 0x2469 # CIRCLED NUMBER TEN
+0x1262B 0x2474 # PARENTHESIZED DIGIT ONE
+0x1262C 0x2475 # PARENTHESIZED DIGIT TWO
+0x1262D 0x2476 # PARENTHESIZED DIGIT THREE
+0x1262E 0x2477 # PARENTHESIZED DIGIT FOUR
+0x1262F 0x2478 # PARENTHESIZED DIGIT FIVE
+0x12630 0x2479 # PARENTHESIZED DIGIT SIX
+0x12631 0x247A # PARENTHESIZED DIGIT SEVEN
+0x12632 0x247B # PARENTHESIZED DIGIT EIGHT
+0x12633 0x247C # PARENTHESIZED DIGIT NINE
+0x12634 0x247D # PARENTHESIZED NUMBER TEN
+0x12635 0x2170 # SMALL ROMAN NUMERAL ONE
+0x12636 0x2171 # SMALL ROMAN NUMERAL TWO
+0x12637 0x2172 # SMALL ROMAN NUMERAL THREE
+0x12638 0x2173 # SMALL ROMAN NUMERAL FOUR
+0x12639 0x2174 # SMALL ROMAN NUMERAL FIVE
+0x1263A 0x2175 # SMALL ROMAN NUMERAL SIX
+0x1263B 0x2176 # SMALL ROMAN NUMERAL SEVEN
+0x1263C 0x2177 # SMALL ROMAN NUMERAL EIGHT
+0x1263D 0x2178 # SMALL ROMAN NUMERAL NINE
+0x1263E 0x2179 # SMALL ROMAN NUMERAL TEN
+0x14221 0x2400 # SYMBOL FOR NULL
+0x14222 0x2401 # SYMBOL FOR START OF HEADING
+0x14223 0x2402 # SYMBOL FOR START OF TEXT
+0x14224 0x2403 # SYMBOL FOR END OF TEXT
+0x14225 0x2404 # SYMBOL FOR END OF TRANSMISSION
+0x14226 0x2405 # SYMBOL FOR ENQUIRY
+0x14227 0x2406 # SYMBOL FOR ACKNOWLEDGE
+0x14228 0x2407 # SYMBOL FOR BELL
+0x14229 0x2408 # SYMBOL FOR BACKSPACE
+0x1422A 0x2409 # SYMBOL FOR HORIZONTAL TABULATION
+0x1422B 0x240A # SYMBOL FOR LINE FEED
+0x1422C 0x240B # SYMBOL FOR VERTICAL TABULATION
+0x1422D 0x240C # SYMBOL FOR FORM FEED
+0x1422E 0x240D # SYMBOL FOR CARRIAGE RETURN
+0x1422F 0x240E # SYMBOL FOR SHIFT OUT
+0x14230 0x240F # SYMBOL FOR SHIFT IN
+0x14231 0x2410 # SYMBOL FOR DATA LINK ESCAPE
+0x14232 0x2411 # SYMBOL FOR DEVICE CONTROL ONE
+0x14233 0x2412 # SYMBOL FOR DEVICE CONTROL TWO
+0x14234 0x2413 # SYMBOL FOR DEVICE CONTROL THREE
+0x14235 0x2414 # SYMBOL FOR DEVICE CONTROL FOUR
+0x14236 0x2415 # SYMBOL FOR NEGATIVE ACKNOWLEDGE
+0x14237 0x2416 # SYMBOL FOR SYNCHRONOUS IDLE
+0x14238 0x2417 # SYMBOL FOR END OF TRANSMISSION BLOCK
+0x14239 0x2418 # SYMBOL FOR CANCEL
+0x1423A 0x2419 # SYMBOL FOR END OF MEDIUM
+0x1423B 0x241A # SYMBOL FOR SUBSTITUTE
+0x1423C 0x241B # SYMBOL FOR ESCAPE
+0x1423D 0x241C # SYMBOL FOR FILE SEPARATOR
+0x1423E 0x241D # SYMBOL FOR GROUP SEPARATOR
+0x1423F 0x241E # SYMBOL FOR RECORD SEPARATOR
+0x14240 0x241F # SYMBOL FOR UNIT SEPARATOR
+0x14241 0x2421 # SYMBOL FOR DELETE
+0x14421 0x4E00 # <CJK>
+0x14422 0x4E59 # <CJK>
+0x14423 0x4E01 # <CJK>
+0x14424 0x4E03 # <CJK>
+0x14425 0x4E43 # <CJK>
+0x14426 0x4E5D # <CJK>
+0x14427 0x4E86 # <CJK>
+0x14428 0x4E8C # <CJK>
+0x14429 0x4EBA # <CJK>
+0x1442A 0x513F # <CJK>
+0x1442B 0x5165 # <CJK>
+0x1442C 0x516B # <CJK>
+0x1442D 0x51E0 # <CJK>
+0x1442E 0x5200 # <CJK>
+0x1442F 0x5201 # <CJK>
+0x14430 0x529B # <CJK>
+0x14431 0x5315 # <CJK>
+0x14432 0x5341 # <CJK>
+0x14433 0x535C # <CJK>
+0x14434 0x53C8 # <CJK>
+0x14435 0x4E09 # <CJK>
+0x14436 0x4E0B # <CJK>
+0x14437 0x4E08 # <CJK>
+0x14438 0x4E0A # <CJK>
+0x14439 0x4E2B # <CJK>
+0x1443A 0x4E38 # <CJK>
+0x1443B 0x51E1 # <CJK>
+0x1443C 0x4E45 # <CJK>
+0x1443D 0x4E48 # <CJK>
+0x1443E 0x4E5F # <CJK>
+0x1443F 0x4E5E # <CJK>
+0x14440 0x4E8E # <CJK>
+0x14441 0x4EA1 # <CJK>
+0x14442 0x5140 # <CJK>
+0x14443 0x5203 # <CJK>
+0x14444 0x52FA # <CJK>
+0x14445 0x5343 # <CJK>
+0x14446 0x53C9 # <CJK>
+0x14447 0x53E3 # <CJK>
+0x14448 0x571F # <CJK>
+0x14449 0x58EB # <CJK>
+0x1444A 0x5915 # <CJK>
+0x1444B 0x5927 # <CJK>
+0x1444C 0x5973 # <CJK>
+0x1444D 0x5B50 # <CJK>
+0x1444E 0x5B51 # <CJK>
+0x1444F 0x5B53 # <CJK>
+0x14450 0x5BF8 # <CJK>
+0x14451 0x5C0F # <CJK>
+0x14452 0x5C22 # <CJK>
+0x14453 0x5C38 # <CJK>
+0x14454 0x5C71 # <CJK>
+0x14455 0x5DDD # <CJK>
+0x14456 0x5DE5 # <CJK>
+0x14457 0x5DF1 # <CJK>
+0x14458 0x5DF2 # <CJK>
+0x14459 0x5DF3 # <CJK>
+0x1445A 0x5DFE # <CJK>
+0x1445B 0x5E72 # <CJK>
+0x1445C 0x5EFE # <CJK>
+0x1445D 0x5F0B # <CJK>
+0x1445E 0x5F13 # <CJK>
+0x1445F 0x624D # <CJK>
+0x14460 0x4E11 # <CJK>
+0x14461 0x4E10 # <CJK>
+0x14462 0x4E0D # <CJK>
+0x14463 0x4E2D # <CJK>
+0x14464 0x4E30 # <CJK>
+0x14465 0x4E39 # <CJK>
+0x14466 0x4E4B # <CJK>
+0x14467 0x5C39 # <CJK>
+0x14468 0x4E88 # <CJK>
+0x14469 0x4E91 # <CJK>
+0x1446A 0x4E95 # <CJK>
+0x1446B 0x4E92 # <CJK>
+0x1446C 0x4E94 # <CJK>
+0x1446D 0x4EA2 # <CJK>
+0x1446E 0x4EC1 # <CJK>
+0x1446F 0x4EC0 # <CJK>
+0x14470 0x4EC3 # <CJK>
+0x14471 0x4EC6 # <CJK>
+0x14472 0x4EC7 # <CJK>
+0x14473 0x4ECD # <CJK>
+0x14474 0x4ECA # <CJK>
+0x14475 0x4ECB # <CJK>
+0x14476 0x4EC4 # <CJK>
+0x14477 0x5143 # <CJK>
+0x14478 0x5141 # <CJK>
+0x14479 0x5167 # <CJK>
+0x1447A 0x516D # <CJK>
+0x1447B 0x516E # <CJK>
+0x1447C 0x516C # <CJK>
+0x1447D 0x5197 # <CJK>
+0x1447E 0x51F6 # <CJK>
+0x14521 0x5206 # <CJK>
+0x14522 0x5207 # <CJK>
+0x14523 0x5208 # <CJK>
+0x14524 0x52FB # <CJK>
+0x14525 0x52FE # <CJK>
+0x14526 0x52FF # <CJK>
+0x14527 0x5316 # <CJK>
+0x14528 0x5339 # <CJK>
+0x14529 0x5348 # <CJK>
+0x1452A 0x5347 # <CJK>
+0x1452B 0x5345 # <CJK>
+0x1452C 0x535E # <CJK>
+0x1452D 0x5384 # <CJK>
+0x1452E 0x53CB # <CJK>
+0x1452F 0x53CA # <CJK>
+0x14530 0x53CD # <CJK>
+0x14531 0x58EC # <CJK>
+0x14532 0x5929 # <CJK>
+0x14533 0x592B # <CJK>
+0x14534 0x592A # <CJK>
+0x14535 0x592D # <CJK>
+0x14536 0x5B54 # <CJK>
+0x14537 0x5C11 # <CJK>
+0x14538 0x5C24 # <CJK>
+0x14539 0x5C3A # <CJK>
+0x1453A 0x5C6F # <CJK>
+0x1453B 0x5DF4 # <CJK>
+0x1453C 0x5E7B # <CJK>
+0x1453D 0x5EFF # <CJK>
+0x1453E 0x5F14 # <CJK>
+0x1453F 0x5F15 # <CJK>
+0x14540 0x5FC3 # <CJK>
+0x14541 0x6208 # <CJK>
+0x14542 0x6236 # <CJK>
+0x14543 0x624B # <CJK>
+0x14544 0x624E # <CJK>
+0x14545 0x652F # <CJK>
+0x14546 0x6587 # <CJK>
+0x14547 0x6597 # <CJK>
+0x14548 0x65A4 # <CJK>
+0x14549 0x65B9 # <CJK>
+0x1454A 0x65E5 # <CJK>
+0x1454B 0x66F0 # <CJK>
+0x1454C 0x6708 # <CJK>
+0x1454D 0x6728 # <CJK>
+0x1454E 0x6B20 # <CJK>
+0x1454F 0x6B62 # <CJK>
+0x14550 0x6B79 # <CJK>
+0x14551 0x6BCB # <CJK>
+0x14552 0x6BD4 # <CJK>
+0x14553 0x6BDB # <CJK>
+0x14554 0x6C0F # <CJK>
+0x14555 0x6C34 # <CJK>
+0x14556 0x706B # <CJK>
+0x14557 0x722A # <CJK>
+0x14558 0x7236 # <CJK>
+0x14559 0x723B # <CJK>
+0x1455A 0x7247 # <CJK>
+0x1455B 0x7259 # <CJK>
+0x1455C 0x725B # <CJK>
+0x1455D 0x72AC # <CJK>
+0x1455E 0x738B # <CJK>
+0x1455F 0x4E19 # <CJK>
+0x14560 0x4E16 # <CJK>
+0x14561 0x4E15 # <CJK>
+0x14562 0x4E14 # <CJK>
+0x14563 0x4E18 # <CJK>
+0x14564 0x4E3B # <CJK>
+0x14565 0x4E4D # <CJK>
+0x14566 0x4E4F # <CJK>
+0x14567 0x4E4E # <CJK>
+0x14568 0x4EE5 # <CJK>
+0x14569 0x4ED8 # <CJK>
+0x1456A 0x4ED4 # <CJK>
+0x1456B 0x4ED5 # <CJK>
+0x1456C 0x4ED6 # <CJK>
+0x1456D 0x4ED7 # <CJK>
+0x1456E 0x4EE3 # <CJK>
+0x1456F 0x4EE4 # <CJK>
+0x14570 0x4ED9 # <CJK>
+0x14571 0x4EDE # <CJK>
+0x14572 0x5145 # <CJK>
+0x14573 0x5144 # <CJK>
+0x14574 0x5189 # <CJK>
+0x14575 0x518A # <CJK>
+0x14576 0x51AC # <CJK>
+0x14577 0x51F9 # <CJK>
+0x14578 0x51FA # <CJK>
+0x14579 0x51F8 # <CJK>
+0x1457A 0x520A # <CJK>
+0x1457B 0x52A0 # <CJK>
+0x1457C 0x529F # <CJK>
+0x1457D 0x5305 # <CJK>
+0x1457E 0x5306 # <CJK>
+0x14621 0x5317 # <CJK>
+0x14622 0x531D # <CJK>
+0x14623 0x4EDF # <CJK>
+0x14624 0x534A # <CJK>
+0x14625 0x5349 # <CJK>
+0x14626 0x5361 # <CJK>
+0x14627 0x5360 # <CJK>
+0x14628 0x536F # <CJK>
+0x14629 0x536E # <CJK>
+0x1462A 0x53BB # <CJK>
+0x1462B 0x53EF # <CJK>
+0x1462C 0x53E4 # <CJK>
+0x1462D 0x53F3 # <CJK>
+0x1462E 0x53EC # <CJK>
+0x1462F 0x53EE # <CJK>
+0x14630 0x53E9 # <CJK>
+0x14631 0x53E8 # <CJK>
+0x14632 0x53FC # <CJK>
+0x14633 0x53F8 # <CJK>
+0x14634 0x53F5 # <CJK>
+0x14635 0x53EB # <CJK>
+0x14636 0x53E6 # <CJK>
+0x14637 0x53EA # <CJK>
+0x14638 0x53F2 # <CJK>
+0x14639 0x53F1 # <CJK>
+0x1463A 0x53F0 # <CJK>
+0x1463B 0x53E5 # <CJK>
+0x1463C 0x53ED # <CJK>
+0x1463D 0x53FB # <CJK>
+0x1463E 0x56DB # <CJK>
+0x1463F 0x56DA # <CJK>
+0x14640 0x5916 # <CJK>
+0x14641 0x592E # <CJK>
+0x14642 0x5931 # <CJK>
+0x14643 0x5974 # <CJK>
+0x14644 0x5976 # <CJK>
+0x14645 0x5B55 # <CJK>
+0x14646 0x5B83 # <CJK>
+0x14647 0x5C3C # <CJK>
+0x14648 0x5DE8 # <CJK>
+0x14649 0x5DE7 # <CJK>
+0x1464A 0x5DE6 # <CJK>
+0x1464B 0x5E02 # <CJK>
+0x1464C 0x5E03 # <CJK>
+0x1464D 0x5E73 # <CJK>
+0x1464E 0x5E7C # <CJK>
+0x1464F 0x5F01 # <CJK>
+0x14650 0x5F18 # <CJK>
+0x14651 0x5F17 # <CJK>
+0x14652 0x5FC5 # <CJK>
+0x14653 0x620A # <CJK>
+0x14654 0x6253 # <CJK>
+0x14655 0x6254 # <CJK>
+0x14656 0x6252 # <CJK>
+0x14657 0x6251 # <CJK>
+0x14658 0x65A5 # <CJK>
+0x14659 0x65E6 # <CJK>
+0x1465A 0x672E # <CJK>
+0x1465B 0x672C # <CJK>
+0x1465C 0x672A # <CJK>
+0x1465D 0x672B # <CJK>
+0x1465E 0x672D # <CJK>
+0x1465F 0x6B63 # <CJK>
+0x14660 0x6BCD # <CJK>
+0x14661 0x6C11 # <CJK>
+0x14662 0x6C10 # <CJK>
+0x14663 0x6C38 # <CJK>
+0x14664 0x6C41 # <CJK>
+0x14665 0x6C40 # <CJK>
+0x14666 0x6C3E # <CJK>
+0x14667 0x72AF # <CJK>
+0x14668 0x7384 # <CJK>
+0x14669 0x7389 # <CJK>
+0x1466A 0x74DC # <CJK>
+0x1466B 0x74E6 # <CJK>
+0x1466C 0x7518 # <CJK>
+0x1466D 0x751F # <CJK>
+0x1466E 0x7528 # <CJK>
+0x1466F 0x7529 # <CJK>
+0x14670 0x7530 # <CJK>
+0x14671 0x7531 # <CJK>
+0x14672 0x7532 # <CJK>
+0x14673 0x7533 # <CJK>
+0x14674 0x758B # <CJK>
+0x14675 0x767D # <CJK>
+0x14676 0x76AE # <CJK>
+0x14677 0x76BF # <CJK>
+0x14678 0x76EE # <CJK>
+0x14679 0x77DB # <CJK>
+0x1467A 0x77E2 # <CJK>
+0x1467B 0x77F3 # <CJK>
+0x1467C 0x793A # <CJK>
+0x1467D 0x79BE # <CJK>
+0x1467E 0x7A74 # <CJK>
+0x14721 0x7ACB # <CJK>
+0x14722 0x4E1E # <CJK>
+0x14723 0x4E1F # <CJK>
+0x14724 0x4E52 # <CJK>
+0x14725 0x4E53 # <CJK>
+0x14726 0x4E69 # <CJK>
+0x14727 0x4E99 # <CJK>
+0x14728 0x4EA4 # <CJK>
+0x14729 0x4EA6 # <CJK>
+0x1472A 0x4EA5 # <CJK>
+0x1472B 0x4EFF # <CJK>
+0x1472C 0x4F09 # <CJK>
+0x1472D 0x4F19 # <CJK>
+0x1472E 0x4F0A # <CJK>
+0x1472F 0x4F15 # <CJK>
+0x14730 0x4F0D # <CJK>
+0x14731 0x4F10 # <CJK>
+0x14732 0x4F11 # <CJK>
+0x14733 0x4F0F # <CJK>
+0x14734 0x4EF2 # <CJK>
+0x14735 0x4EF6 # <CJK>
+0x14736 0x4EFB # <CJK>
+0x14737 0x4EF0 # <CJK>
+0x14738 0x4EF3 # <CJK>
+0x14739 0x4EFD # <CJK>
+0x1473A 0x4F01 # <CJK>
+0x1473B 0x4F0B # <CJK>
+0x1473C 0x5149 # <CJK>
+0x1473D 0x5147 # <CJK>
+0x1473E 0x5146 # <CJK>
+0x1473F 0x5148 # <CJK>
+0x14740 0x5168 # <CJK>
+0x14741 0x5171 # <CJK>
+0x14742 0x518D # <CJK>
+0x14743 0x51B0 # <CJK>
+0x14744 0x5217 # <CJK>
+0x14745 0x5211 # <CJK>
+0x14746 0x5212 # <CJK>
+0x14747 0x520E # <CJK>
+0x14748 0x5216 # <CJK>
+0x14749 0x52A3 # <CJK>
+0x1474A 0x5308 # <CJK>
+0x1474B 0x5321 # <CJK>
+0x1474C 0x5320 # <CJK>
+0x1474D 0x5370 # <CJK>
+0x1474E 0x5371 # <CJK>
+0x1474F 0x5409 # <CJK>
+0x14750 0x540F # <CJK>
+0x14751 0x540C # <CJK>
+0x14752 0x540A # <CJK>
+0x14753 0x5410 # <CJK>
+0x14754 0x5401 # <CJK>
+0x14755 0x540B # <CJK>
+0x14756 0x5404 # <CJK>
+0x14757 0x5411 # <CJK>
+0x14758 0x540D # <CJK>
+0x14759 0x5408 # <CJK>
+0x1475A 0x5403 # <CJK>
+0x1475B 0x540E # <CJK>
+0x1475C 0x5406 # <CJK>
+0x1475D 0x5412 # <CJK>
+0x1475E 0x56E0 # <CJK>
+0x1475F 0x56DE # <CJK>
+0x14760 0x56DD # <CJK>
+0x14761 0x5733 # <CJK>
+0x14762 0x5730 # <CJK>
+0x14763 0x5728 # <CJK>
+0x14764 0x572D # <CJK>
+0x14765 0x572C # <CJK>
+0x14766 0x572F # <CJK>
+0x14767 0x5729 # <CJK>
+0x14768 0x5919 # <CJK>
+0x14769 0x591A # <CJK>
+0x1476A 0x5937 # <CJK>
+0x1476B 0x5938 # <CJK>
+0x1476C 0x5984 # <CJK>
+0x1476D 0x5978 # <CJK>
+0x1476E 0x5983 # <CJK>
+0x1476F 0x597D # <CJK>
+0x14770 0x5979 # <CJK>
+0x14771 0x5982 # <CJK>
+0x14772 0x5981 # <CJK>
+0x14773 0x5B57 # <CJK>
+0x14774 0x5B58 # <CJK>
+0x14775 0x5B87 # <CJK>
+0x14776 0x5B88 # <CJK>
+0x14777 0x5B85 # <CJK>
+0x14778 0x5B89 # <CJK>
+0x14779 0x5BFA # <CJK>
+0x1477A 0x5C16 # <CJK>
+0x1477B 0x5C79 # <CJK>
+0x1477C 0x5DDE # <CJK>
+0x1477D 0x5E06 # <CJK>
+0x1477E 0x5E76 # <CJK>
+0x14821 0x5E74 # <CJK>
+0x14822 0x5F0F # <CJK>
+0x14823 0x5F1B # <CJK>
+0x14824 0x5FD9 # <CJK>
+0x14825 0x5FD6 # <CJK>
+0x14826 0x620E # <CJK>
+0x14827 0x620C # <CJK>
+0x14828 0x620D # <CJK>
+0x14829 0x6210 # <CJK>
+0x1482A 0x6263 # <CJK>
+0x1482B 0x625B # <CJK>
+0x1482C 0x6258 # <CJK>
+0x1482D 0x6536 # <CJK>
+0x1482E 0x65E9 # <CJK>
+0x1482F 0x65E8 # <CJK>
+0x14830 0x65EC # <CJK>
+0x14831 0x65ED # <CJK>
+0x14832 0x66F2 # <CJK>
+0x14833 0x66F3 # <CJK>
+0x14834 0x6709 # <CJK>
+0x14835 0x673D # <CJK>
+0x14836 0x6734 # <CJK>
+0x14837 0x6731 # <CJK>
+0x14838 0x6735 # <CJK>
+0x14839 0x6B21 # <CJK>
+0x1483A 0x6B64 # <CJK>
+0x1483B 0x6B7B # <CJK>
+0x1483C 0x6C16 # <CJK>
+0x1483D 0x6C5D # <CJK>
+0x1483E 0x6C57 # <CJK>
+0x1483F 0x6C59 # <CJK>
+0x14840 0x6C5F # <CJK>
+0x14841 0x6C60 # <CJK>
+0x14842 0x6C50 # <CJK>
+0x14843 0x6C55 # <CJK>
+0x14844 0x6C61 # <CJK>
+0x14845 0x6C5B # <CJK>
+0x14846 0x6C4D # <CJK>
+0x14847 0x6C4E # <CJK>
+0x14848 0x7070 # <CJK>
+0x14849 0x725F # <CJK>
+0x1484A 0x725D # <CJK>
+0x1484B 0x767E # <CJK>
+0x1484C 0x7AF9 # <CJK>
+0x1484D 0x7C73 # <CJK>
+0x1484E 0x7CF8 # <CJK>
+0x1484F 0x7F36 # <CJK>
+0x14850 0x7F8A # <CJK>
+0x14851 0x7FBD # <CJK>
+0x14852 0x8001 # <CJK>
+0x14853 0x8003 # <CJK>
+0x14854 0x800C # <CJK>
+0x14855 0x8012 # <CJK>
+0x14856 0x8033 # <CJK>
+0x14857 0x807F # <CJK>
+0x14858 0x8089 # <CJK>
+0x14859 0x808B # <CJK>
+0x1485A 0x808C # <CJK>
+0x1485B 0x81E3 # <CJK>
+0x1485C 0x81EA # <CJK>
+0x1485D 0x81F3 # <CJK>
+0x1485E 0x81FC # <CJK>
+0x1485F 0x820C # <CJK>
+0x14860 0x821B # <CJK>
+0x14861 0x821F # <CJK>
+0x14862 0x826E # <CJK>
+0x14863 0x8272 # <CJK>
+0x14864 0x827E # <CJK>
+0x14865 0x866B # <CJK>
+0x14866 0x8840 # <CJK>
+0x14867 0x884C # <CJK>
+0x14868 0x8863 # <CJK>
+0x14869 0x897F # <CJK>
+0x1486A 0x9621 # <CJK>
+0x1486B 0x4E32 # <CJK>
+0x1486C 0x4EA8 # <CJK>
+0x1486D 0x4F4D # <CJK>
+0x1486E 0x4F4F # <CJK>
+0x1486F 0x4F47 # <CJK>
+0x14870 0x4F57 # <CJK>
+0x14871 0x4F5E # <CJK>
+0x14872 0x4F34 # <CJK>
+0x14873 0x4F5B # <CJK>
+0x14874 0x4F55 # <CJK>
+0x14875 0x4F30 # <CJK>
+0x14876 0x4F50 # <CJK>
+0x14877 0x4F51 # <CJK>
+0x14878 0x4F3D # <CJK>
+0x14879 0x4F3A # <CJK>
+0x1487A 0x4F38 # <CJK>
+0x1487B 0x4F43 # <CJK>
+0x1487C 0x4F54 # <CJK>
+0x1487D 0x4F3C # <CJK>
+0x1487E 0x4F46 # <CJK>
+0x14921 0x4F63 # <CJK>
+0x14922 0x4F5C # <CJK>
+0x14923 0x4F60 # <CJK>
+0x14924 0x4F2F # <CJK>
+0x14925 0x4F4E # <CJK>
+0x14926 0x4F36 # <CJK>
+0x14927 0x4F59 # <CJK>
+0x14928 0x4F5D # <CJK>
+0x14929 0x4F48 # <CJK>
+0x1492A 0x4F5A # <CJK>
+0x1492B 0x514C # <CJK>
+0x1492C 0x514B # <CJK>
+0x1492D 0x514D # <CJK>
+0x1492E 0x5175 # <CJK>
+0x1492F 0x51B6 # <CJK>
+0x14930 0x51B7 # <CJK>
+0x14931 0x5225 # <CJK>
+0x14932 0x5224 # <CJK>
+0x14933 0x5229 # <CJK>
+0x14934 0x522A # <CJK>
+0x14935 0x5228 # <CJK>
+0x14936 0x52AB # <CJK>
+0x14937 0x52A9 # <CJK>
+0x14938 0x52AA # <CJK>
+0x14939 0x52AC # <CJK>
+0x1493A 0x5323 # <CJK>
+0x1493B 0x5373 # <CJK>
+0x1493C 0x5375 # <CJK>
+0x1493D 0x541D # <CJK>
+0x1493E 0x542D # <CJK>
+0x1493F 0x541E # <CJK>
+0x14940 0x543E # <CJK>
+0x14941 0x5426 # <CJK>
+0x14942 0x544E # <CJK>
+0x14943 0x5427 # <CJK>
+0x14944 0x5446 # <CJK>
+0x14945 0x5443 # <CJK>
+0x14946 0x5433 # <CJK>
+0x14947 0x5448 # <CJK>
+0x14948 0x5442 # <CJK>
+0x14949 0x541B # <CJK>
+0x1494A 0x5429 # <CJK>
+0x1494B 0x544A # <CJK>
+0x1494C 0x5439 # <CJK>
+0x1494D 0x543B # <CJK>
+0x1494E 0x5438 # <CJK>
+0x1494F 0x542E # <CJK>
+0x14950 0x5435 # <CJK>
+0x14951 0x5436 # <CJK>
+0x14952 0x5420 # <CJK>
+0x14953 0x543C # <CJK>
+0x14954 0x5440 # <CJK>
+0x14955 0x5431 # <CJK>
+0x14956 0x542B # <CJK>
+0x14957 0x541F # <CJK>
+0x14958 0x542C # <CJK>
+0x14959 0x56EA # <CJK>
+0x1495A 0x56F0 # <CJK>
+0x1495B 0x56E4 # <CJK>
+0x1495C 0x56EB # <CJK>
+0x1495D 0x574A # <CJK>
+0x1495E 0x5751 # <CJK>
+0x1495F 0x5740 # <CJK>
+0x14960 0x574D # <CJK>
+0x14961 0x5747 # <CJK>
+0x14962 0x574E # <CJK>
+0x14963 0x573E # <CJK>
+0x14964 0x5750 # <CJK>
+0x14965 0x574F # <CJK>
+0x14966 0x573B # <CJK>
+0x14967 0x58EF # <CJK>
+0x14968 0x593E # <CJK>
+0x14969 0x599D # <CJK>
+0x1496A 0x5992 # <CJK>
+0x1496B 0x59A8 # <CJK>
+0x1496C 0x599E # <CJK>
+0x1496D 0x59A3 # <CJK>
+0x1496E 0x5999 # <CJK>
+0x1496F 0x5996 # <CJK>
+0x14970 0x598D # <CJK>
+0x14971 0x59A4 # <CJK>
+0x14972 0x5993 # <CJK>
+0x14973 0x598A # <CJK>
+0x14974 0x59A5 # <CJK>
+0x14975 0x5B5D # <CJK>
+0x14976 0x5B5C # <CJK>
+0x14977 0x5B5A # <CJK>
+0x14978 0x5B5B # <CJK>
+0x14979 0x5B8C # <CJK>
+0x1497A 0x5B8B # <CJK>
+0x1497B 0x5B8F # <CJK>
+0x1497C 0x5C2C # <CJK>
+0x1497D 0x5C40 # <CJK>
+0x1497E 0x5C41 # <CJK>
+0x14A21 0x5C3F # <CJK>
+0x14A22 0x5C3E # <CJK>
+0x14A23 0x5C90 # <CJK>
+0x14A24 0x5C91 # <CJK>
+0x14A25 0x5C94 # <CJK>
+0x14A26 0x5C8C # <CJK>
+0x14A27 0x5DEB # <CJK>
+0x14A28 0x5E0C # <CJK>
+0x14A29 0x5E8F # <CJK>
+0x14A2A 0x5E87 # <CJK>
+0x14A2B 0x5E8A # <CJK>
+0x14A2C 0x5EF7 # <CJK>
+0x14A2D 0x5F04 # <CJK>
+0x14A2E 0x5F1F # <CJK>
+0x14A2F 0x5F64 # <CJK>
+0x14A30 0x5F62 # <CJK>
+0x14A31 0x5F77 # <CJK>
+0x14A32 0x5F79 # <CJK>
+0x14A33 0x5FD8 # <CJK>
+0x14A34 0x5FCC # <CJK>
+0x14A35 0x5FD7 # <CJK>
+0x14A36 0x5FCD # <CJK>
+0x14A37 0x5FF1 # <CJK>
+0x14A38 0x5FEB # <CJK>
+0x14A39 0x5FF8 # <CJK>
+0x14A3A 0x5FEA # <CJK>
+0x14A3B 0x6212 # <CJK>
+0x14A3C 0x6211 # <CJK>
+0x14A3D 0x6284 # <CJK>
+0x14A3E 0x6297 # <CJK>
+0x14A3F 0x6296 # <CJK>
+0x14A40 0x6280 # <CJK>
+0x14A41 0x6276 # <CJK>
+0x14A42 0x6289 # <CJK>
+0x14A43 0x626D # <CJK>
+0x14A44 0x628A # <CJK>
+0x14A45 0x627C # <CJK>
+0x14A46 0x627E # <CJK>
+0x14A47 0x6279 # <CJK>
+0x14A48 0x6273 # <CJK>
+0x14A49 0x6292 # <CJK>
+0x14A4A 0x626F # <CJK>
+0x14A4B 0x6298 # <CJK>
+0x14A4C 0x626E # <CJK>
+0x14A4D 0x6295 # <CJK>
+0x14A4E 0x6293 # <CJK>
+0x14A4F 0x6291 # <CJK>
+0x14A50 0x6286 # <CJK>
+0x14A51 0x6539 # <CJK>
+0x14A52 0x653B # <CJK>
+0x14A53 0x6538 # <CJK>
+0x14A54 0x65F1 # <CJK>
+0x14A55 0x66F4 # <CJK>
+0x14A56 0x675F # <CJK>
+0x14A57 0x674E # <CJK>
+0x14A58 0x674F # <CJK>
+0x14A59 0x6750 # <CJK>
+0x14A5A 0x6751 # <CJK>
+0x14A5B 0x675C # <CJK>
+0x14A5C 0x6756 # <CJK>
+0x14A5D 0x675E # <CJK>
+0x14A5E 0x6749 # <CJK>
+0x14A5F 0x6746 # <CJK>
+0x14A60 0x6760 # <CJK>
+0x14A61 0x6753 # <CJK>
+0x14A62 0x6757 # <CJK>
+0x14A63 0x6B65 # <CJK>
+0x14A64 0x6BCF # <CJK>
+0x14A65 0x6C42 # <CJK>
+0x14A66 0x6C5E # <CJK>
+0x14A67 0x6C99 # <CJK>
+0x14A68 0x6C81 # <CJK>
+0x14A69 0x6C88 # <CJK>
+0x14A6A 0x6C89 # <CJK>
+0x14A6B 0x6C85 # <CJK>
+0x14A6C 0x6C9B # <CJK>
+0x14A6D 0x6C6A # <CJK>
+0x14A6E 0x6C7A # <CJK>
+0x14A6F 0x6C90 # <CJK>
+0x14A70 0x6C70 # <CJK>
+0x14A71 0x6C8C # <CJK>
+0x14A72 0x6C68 # <CJK>
+0x14A73 0x6C96 # <CJK>
+0x14A74 0x6C92 # <CJK>
+0x14A75 0x6C7D # <CJK>
+0x14A76 0x6C83 # <CJK>
+0x14A77 0x6C72 # <CJK>
+0x14A78 0x6C7E # <CJK>
+0x14A79 0x6C74 # <CJK>
+0x14A7A 0x6C86 # <CJK>
+0x14A7B 0x6C76 # <CJK>
+0x14A7C 0x6C8D # <CJK>
+0x14A7D 0x6C94 # <CJK>
+0x14A7E 0x6C98 # <CJK>
+0x14B21 0x6C82 # <CJK>
+0x14B22 0x7076 # <CJK>
+0x14B23 0x707C # <CJK>
+0x14B24 0x707D # <CJK>
+0x14B25 0x7078 # <CJK>
+0x14B26 0x7262 # <CJK>
+0x14B27 0x7261 # <CJK>
+0x14B28 0x7260 # <CJK>
+0x14B29 0x72C4 # <CJK>
+0x14B2A 0x72C2 # <CJK>
+0x14B2B 0x7396 # <CJK>
+0x14B2C 0x752C # <CJK>
+0x14B2D 0x752B # <CJK>
+0x14B2E 0x7537 # <CJK>
+0x14B2F 0x7538 # <CJK>
+0x14B30 0x7682 # <CJK>
+0x14B31 0x76EF # <CJK>
+0x14B32 0x77E3 # <CJK>
+0x14B33 0x79C1 # <CJK>
+0x14B34 0x79C0 # <CJK>
+0x14B35 0x79BF # <CJK>
+0x14B36 0x7A76 # <CJK>
+0x14B37 0x7CFB # <CJK>
+0x14B38 0x7F55 # <CJK>
+0x14B39 0x8096 # <CJK>
+0x14B3A 0x8093 # <CJK>
+0x14B3B 0x809D # <CJK>
+0x14B3C 0x8098 # <CJK>
+0x14B3D 0x809B # <CJK>
+0x14B3E 0x809A # <CJK>
+0x14B3F 0x80B2 # <CJK>
+0x14B40 0x826F # <CJK>
+0x14B41 0x8292 # <CJK>
+0x14B42 0x828B # <CJK>
+0x14B43 0x828D # <CJK>
+0x14B44 0x898B # <CJK>
+0x14B45 0x89D2 # <CJK>
+0x14B46 0x8A00 # <CJK>
+0x14B47 0x8C37 # <CJK>
+0x14B48 0x8C46 # <CJK>
+0x14B49 0x8C55 # <CJK>
+0x14B4A 0x8C9D # <CJK>
+0x14B4B 0x8D64 # <CJK>
+0x14B4C 0x8D70 # <CJK>
+0x14B4D 0x8DB3 # <CJK>
+0x14B4E 0x8EAB # <CJK>
+0x14B4F 0x8ECA # <CJK>
+0x14B50 0x8F9B # <CJK>
+0x14B51 0x8FB0 # <CJK>
+0x14B52 0x8FC2 # <CJK>
+0x14B53 0x8FC6 # <CJK>
+0x14B54 0x8FC5 # <CJK>
+0x14B55 0x8FC4 # <CJK>
+0x14B56 0x5DE1 # <CJK>
+0x14B57 0x9091 # <CJK>
+0x14B58 0x90A2 # <CJK>
+0x14B59 0x90AA # <CJK>
+0x14B5A 0x90A6 # <CJK>
+0x14B5B 0x90A3 # <CJK>
+0x14B5C 0x9149 # <CJK>
+0x14B5D 0x91C6 # <CJK>
+0x14B5E 0x91CC # <CJK>
+0x14B5F 0x9632 # <CJK>
+0x14B60 0x962E # <CJK>
+0x14B61 0x9631 # <CJK>
+0x14B62 0x962A # <CJK>
+0x14B63 0x962C # <CJK>
+0x14B64 0x4E26 # <CJK>
+0x14B65 0x4E56 # <CJK>
+0x14B66 0x4E73 # <CJK>
+0x14B67 0x4E8B # <CJK>
+0x14B68 0x4E9B # <CJK>
+0x14B69 0x4E9E # <CJK>
+0x14B6A 0x4EAB # <CJK>
+0x14B6B 0x4EAC # <CJK>
+0x14B6C 0x4F6F # <CJK>
+0x14B6D 0x4F9D # <CJK>
+0x14B6E 0x4F8D # <CJK>
+0x14B6F 0x4F73 # <CJK>
+0x14B70 0x4F7F # <CJK>
+0x14B71 0x4F6C # <CJK>
+0x14B72 0x4F9B # <CJK>
+0x14B73 0x4F8B # <CJK>
+0x14B74 0x4F86 # <CJK>
+0x14B75 0x4F83 # <CJK>
+0x14B76 0x4F70 # <CJK>
+0x14B77 0x4F75 # <CJK>
+0x14B78 0x4F88 # <CJK>
+0x14B79 0x4F69 # <CJK>
+0x14B7A 0x4F7B # <CJK>
+0x14B7B 0x4F96 # <CJK>
+0x14B7C 0x4F7E # <CJK>
+0x14B7D 0x4F8F # <CJK>
+0x14B7E 0x4F91 # <CJK>
+0x14C21 0x4F7A # <CJK>
+0x14C22 0x5154 # <CJK>
+0x14C23 0x5152 # <CJK>
+0x14C24 0x5155 # <CJK>
+0x14C25 0x5169 # <CJK>
+0x14C26 0x5177 # <CJK>
+0x14C27 0x5176 # <CJK>
+0x14C28 0x5178 # <CJK>
+0x14C29 0x51BD # <CJK>
+0x14C2A 0x51FD # <CJK>
+0x14C2B 0x523B # <CJK>
+0x14C2C 0x5238 # <CJK>
+0x14C2D 0x5237 # <CJK>
+0x14C2E 0x523A # <CJK>
+0x14C2F 0x5230 # <CJK>
+0x14C30 0x522E # <CJK>
+0x14C31 0x5236 # <CJK>
+0x14C32 0x5241 # <CJK>
+0x14C33 0x52BE # <CJK>
+0x14C34 0x52BB # <CJK>
+0x14C35 0x5352 # <CJK>
+0x14C36 0x5354 # <CJK>
+0x14C37 0x5353 # <CJK>
+0x14C38 0x5351 # <CJK>
+0x14C39 0x5366 # <CJK>
+0x14C3A 0x5377 # <CJK>
+0x14C3B 0x5378 # <CJK>
+0x14C3C 0x5379 # <CJK>
+0x14C3D 0x53D6 # <CJK>
+0x14C3E 0x53D4 # <CJK>
+0x14C3F 0x53D7 # <CJK>
+0x14C40 0x5473 # <CJK>
+0x14C41 0x5475 # <CJK>
+0x14C42 0x5496 # <CJK>
+0x14C43 0x5478 # <CJK>
+0x14C44 0x5495 # <CJK>
+0x14C45 0x5480 # <CJK>
+0x14C46 0x547B # <CJK>
+0x14C47 0x5477 # <CJK>
+0x14C48 0x5484 # <CJK>
+0x14C49 0x5492 # <CJK>
+0x14C4A 0x5486 # <CJK>
+0x14C4B 0x547C # <CJK>
+0x14C4C 0x5490 # <CJK>
+0x14C4D 0x5471 # <CJK>
+0x14C4E 0x5476 # <CJK>
+0x14C4F 0x548C # <CJK>
+0x14C50 0x549A # <CJK>
+0x14C51 0x5462 # <CJK>
+0x14C52 0x5468 # <CJK>
+0x14C53 0x548B # <CJK>
+0x14C54 0x547D # <CJK>
+0x14C55 0x548E # <CJK>
+0x14C56 0x56FA # <CJK>
+0x14C57 0x5783 # <CJK>
+0x14C58 0x5777 # <CJK>
+0x14C59 0x576A # <CJK>
+0x14C5A 0x5769 # <CJK>
+0x14C5B 0x5761 # <CJK>
+0x14C5C 0x5766 # <CJK>
+0x14C5D 0x5764 # <CJK>
+0x14C5E 0x577C # <CJK>
+0x14C5F 0x591C # <CJK>
+0x14C60 0x5949 # <CJK>
+0x14C61 0x5947 # <CJK>
+0x14C62 0x5948 # <CJK>
+0x14C63 0x5944 # <CJK>
+0x14C64 0x5954 # <CJK>
+0x14C65 0x59BE # <CJK>
+0x14C66 0x59BB # <CJK>
+0x14C67 0x59D4 # <CJK>
+0x14C68 0x59B9 # <CJK>
+0x14C69 0x59AE # <CJK>
+0x14C6A 0x59D1 # <CJK>
+0x14C6B 0x59C6 # <CJK>
+0x14C6C 0x59D0 # <CJK>
+0x14C6D 0x59CD # <CJK>
+0x14C6E 0x59CB # <CJK>
+0x14C6F 0x59D3 # <CJK>
+0x14C70 0x59CA # <CJK>
+0x14C71 0x59AF # <CJK>
+0x14C72 0x59B3 # <CJK>
+0x14C73 0x59D2 # <CJK>
+0x14C74 0x59C5 # <CJK>
+0x14C75 0x5B5F # <CJK>
+0x14C76 0x5B64 # <CJK>
+0x14C77 0x5B63 # <CJK>
+0x14C78 0x5B97 # <CJK>
+0x14C79 0x5B9A # <CJK>
+0x14C7A 0x5B98 # <CJK>
+0x14C7B 0x5B9C # <CJK>
+0x14C7C 0x5B99 # <CJK>
+0x14C7D 0x5B9B # <CJK>
+0x14C7E 0x5C1A # <CJK>
+0x14D21 0x5C48 # <CJK>
+0x14D22 0x5C45 # <CJK>
+0x14D23 0x5C46 # <CJK>
+0x14D24 0x5CB7 # <CJK>
+0x14D25 0x5CA1 # <CJK>
+0x14D26 0x5CB8 # <CJK>
+0x14D27 0x5CA9 # <CJK>
+0x14D28 0x5CAB # <CJK>
+0x14D29 0x5CB1 # <CJK>
+0x14D2A 0x5CB3 # <CJK>
+0x14D2B 0x5E18 # <CJK>
+0x14D2C 0x5E1A # <CJK>
+0x14D2D 0x5E16 # <CJK>
+0x14D2E 0x5E15 # <CJK>
+0x14D2F 0x5E1B # <CJK>
+0x14D30 0x5E11 # <CJK>
+0x14D31 0x5E78 # <CJK>
+0x14D32 0x5E9A # <CJK>
+0x14D33 0x5E97 # <CJK>
+0x14D34 0x5E9C # <CJK>
+0x14D35 0x5E95 # <CJK>
+0x14D36 0x5E96 # <CJK>
+0x14D37 0x5EF6 # <CJK>
+0x14D38 0x5F26 # <CJK>
+0x14D39 0x5F27 # <CJK>
+0x14D3A 0x5F29 # <CJK>
+0x14D3B 0x5F80 # <CJK>
+0x14D3C 0x5F81 # <CJK>
+0x14D3D 0x5F7F # <CJK>
+0x14D3E 0x5F7C # <CJK>
+0x14D3F 0x5FDD # <CJK>
+0x14D40 0x5FE0 # <CJK>
+0x14D41 0x5FFD # <CJK>
+0x14D42 0x5FF5 # <CJK>
+0x14D43 0x5FFF # <CJK>
+0x14D44 0x600F # <CJK>
+0x14D45 0x6014 # <CJK>
+0x14D46 0x602F # <CJK>
+0x14D47 0x6035 # <CJK>
+0x14D48 0x6016 # <CJK>
+0x14D49 0x602A # <CJK>
+0x14D4A 0x6015 # <CJK>
+0x14D4B 0x6021 # <CJK>
+0x14D4C 0x6027 # <CJK>
+0x14D4D 0x6029 # <CJK>
+0x14D4E 0x602B # <CJK>
+0x14D4F 0x601B # <CJK>
+0x14D50 0x6216 # <CJK>
+0x14D51 0x6215 # <CJK>
+0x14D52 0x623F # <CJK>
+0x14D53 0x623E # <CJK>
+0x14D54 0x6240 # <CJK>
+0x14D55 0x627F # <CJK>
+0x14D56 0x62C9 # <CJK>
+0x14D57 0x62CC # <CJK>
+0x14D58 0x62C4 # <CJK>
+0x14D59 0x62BF # <CJK>
+0x14D5A 0x62C2 # <CJK>
+0x14D5B 0x62B9 # <CJK>
+0x14D5C 0x62D2 # <CJK>
+0x14D5D 0x62DB # <CJK>
+0x14D5E 0x62AB # <CJK>
+0x14D5F 0x62D3 # <CJK>
+0x14D60 0x62D4 # <CJK>
+0x14D61 0x62CB # <CJK>
+0x14D62 0x62C8 # <CJK>
+0x14D63 0x62A8 # <CJK>
+0x14D64 0x62BD # <CJK>
+0x14D65 0x62BC # <CJK>
+0x14D66 0x62D0 # <CJK>
+0x14D67 0x62D9 # <CJK>
+0x14D68 0x62C7 # <CJK>
+0x14D69 0x62CD # <CJK>
+0x14D6A 0x62B5 # <CJK>
+0x14D6B 0x62DA # <CJK>
+0x14D6C 0x62B1 # <CJK>
+0x14D6D 0x62D8 # <CJK>
+0x14D6E 0x62D6 # <CJK>
+0x14D6F 0x62D7 # <CJK>
+0x14D70 0x62C6 # <CJK>
+0x14D71 0x62AC # <CJK>
+0x14D72 0x62CE # <CJK>
+0x14D73 0x653E # <CJK>
+0x14D74 0x65A7 # <CJK>
+0x14D75 0x65BC # <CJK>
+0x14D76 0x65FA # <CJK>
+0x14D77 0x6614 # <CJK>
+0x14D78 0x6613 # <CJK>
+0x14D79 0x660C # <CJK>
+0x14D7A 0x6606 # <CJK>
+0x14D7B 0x6602 # <CJK>
+0x14D7C 0x660E # <CJK>
+0x14D7D 0x6600 # <CJK>
+0x14D7E 0x660F # <CJK>
+0x14E21 0x6615 # <CJK>
+0x14E22 0x660A # <CJK>
+0x14E23 0x6607 # <CJK>
+0x14E24 0x670D # <CJK>
+0x14E25 0x670B # <CJK>
+0x14E26 0x676D # <CJK>
+0x14E27 0x678B # <CJK>
+0x14E28 0x6795 # <CJK>
+0x14E29 0x6771 # <CJK>
+0x14E2A 0x679C # <CJK>
+0x14E2B 0x6773 # <CJK>
+0x14E2C 0x6777 # <CJK>
+0x14E2D 0x6787 # <CJK>
+0x14E2E 0x679D # <CJK>
+0x14E2F 0x6797 # <CJK>
+0x14E30 0x676F # <CJK>
+0x14E31 0x6770 # <CJK>
+0x14E32 0x677F # <CJK>
+0x14E33 0x6789 # <CJK>
+0x14E34 0x677E # <CJK>
+0x14E35 0x6790 # <CJK>
+0x14E36 0x6775 # <CJK>
+0x14E37 0x679A # <CJK>
+0x14E38 0x6793 # <CJK>
+0x14E39 0x677C # <CJK>
+0x14E3A 0x676A # <CJK>
+0x14E3B 0x6772 # <CJK>
+0x14E3C 0x6B23 # <CJK>
+0x14E3D 0x6B66 # <CJK>
+0x14E3E 0x6B67 # <CJK>
+0x14E3F 0x6B7F # <CJK>
+0x14E40 0x6C13 # <CJK>
+0x14E41 0x6C1B # <CJK>
+0x14E42 0x6CE3 # <CJK>
+0x14E43 0x6CE8 # <CJK>
+0x14E44 0x6CF3 # <CJK>
+0x14E45 0x6CB1 # <CJK>
+0x14E46 0x6CCC # <CJK>
+0x14E47 0x6CE5 # <CJK>
+0x14E48 0x6CB3 # <CJK>
+0x14E49 0x6CBD # <CJK>
+0x14E4A 0x6CBE # <CJK>
+0x14E4B 0x6CBC # <CJK>
+0x14E4C 0x6CE2 # <CJK>
+0x14E4D 0x6CAB # <CJK>
+0x14E4E 0x6CD5 # <CJK>
+0x14E4F 0x6CD3 # <CJK>
+0x14E50 0x6CB8 # <CJK>
+0x14E51 0x6CC4 # <CJK>
+0x14E52 0x6CB9 # <CJK>
+0x14E53 0x6CC1 # <CJK>
+0x14E54 0x6CAE # <CJK>
+0x14E55 0x6CD7 # <CJK>
+0x14E56 0x6CC5 # <CJK>
+0x14E57 0x6CF1 # <CJK>
+0x14E58 0x6CBF # <CJK>
+0x14E59 0x6CBB # <CJK>
+0x14E5A 0x6CE1 # <CJK>
+0x14E5B 0x6CDB # <CJK>
+0x14E5C 0x6CCA # <CJK>
+0x14E5D 0x6CAC # <CJK>
+0x14E5E 0x6CEF # <CJK>
+0x14E5F 0x6CDC # <CJK>
+0x14E60 0x6CD6 # <CJK>
+0x14E61 0x6CE0 # <CJK>
+0x14E62 0x7095 # <CJK>
+0x14E63 0x708E # <CJK>
+0x14E64 0x7092 # <CJK>
+0x14E65 0x708A # <CJK>
+0x14E66 0x7099 # <CJK>
+0x14E67 0x722C # <CJK>
+0x14E68 0x722D # <CJK>
+0x14E69 0x7238 # <CJK>
+0x14E6A 0x7248 # <CJK>
+0x14E6B 0x7267 # <CJK>
+0x14E6C 0x7269 # <CJK>
+0x14E6D 0x72C0 # <CJK>
+0x14E6E 0x72CE # <CJK>
+0x14E6F 0x72D9 # <CJK>
+0x14E70 0x72D7 # <CJK>
+0x14E71 0x72D0 # <CJK>
+0x14E72 0x73A9 # <CJK>
+0x14E73 0x73A8 # <CJK>
+0x14E74 0x739F # <CJK>
+0x14E75 0x73AB # <CJK>
+0x14E76 0x73A5 # <CJK>
+0x14E77 0x753D # <CJK>
+0x14E78 0x759D # <CJK>
+0x14E79 0x7599 # <CJK>
+0x14E7A 0x759A # <CJK>
+0x14E7B 0x7684 # <CJK>
+0x14E7C 0x76C2 # <CJK>
+0x14E7D 0x76F2 # <CJK>
+0x14E7E 0x76F4 # <CJK>
+0x14F21 0x77E5 # <CJK>
+0x14F22 0x77FD # <CJK>
+0x14F23 0x793E # <CJK>
+0x14F24 0x7940 # <CJK>
+0x14F25 0x7941 # <CJK>
+0x14F26 0x79C9 # <CJK>
+0x14F27 0x79C8 # <CJK>
+0x14F28 0x7A7A # <CJK>
+0x14F29 0x7A79 # <CJK>
+0x14F2A 0x7AFA # <CJK>
+0x14F2B 0x7CFE # <CJK>
+0x14F2C 0x7F54 # <CJK>
+0x14F2D 0x7F8C # <CJK>
+0x14F2E 0x7F8B # <CJK>
+0x14F2F 0x8005 # <CJK>
+0x14F30 0x80BA # <CJK>
+0x14F31 0x80A5 # <CJK>
+0x14F32 0x80A2 # <CJK>
+0x14F33 0x80B1 # <CJK>
+0x14F34 0x80A1 # <CJK>
+0x14F35 0x80AB # <CJK>
+0x14F36 0x80A9 # <CJK>
+0x14F37 0x80B4 # <CJK>
+0x14F38 0x80AA # <CJK>
+0x14F39 0x80AF # <CJK>
+0x14F3A 0x81E5 # <CJK>
+0x14F3B 0x81FE # <CJK>
+0x14F3C 0x820D # <CJK>
+0x14F3D 0x82B3 # <CJK>
+0x14F3E 0x829D # <CJK>
+0x14F3F 0x8299 # <CJK>
+0x14F40 0x82AD # <CJK>
+0x14F41 0x82BD # <CJK>
+0x14F42 0x829F # <CJK>
+0x14F43 0x82B9 # <CJK>
+0x14F44 0x82B1 # <CJK>
+0x14F45 0x82AC # <CJK>
+0x14F46 0x82A5 # <CJK>
+0x14F47 0x82AF # <CJK>
+0x14F48 0x82B8 # <CJK>
+0x14F49 0x82A3 # <CJK>
+0x14F4A 0x82B0 # <CJK>
+0x14F4B 0x82BE # <CJK>
+0x14F4C 0x82B7 # <CJK>
+0x14F4D 0x864E # <CJK>
+0x14F4E 0x8671 # <CJK>
+0x14F4F 0x521D # <CJK>
+0x14F50 0x8868 # <CJK>
+0x14F51 0x8ECB # <CJK>
+0x14F52 0x8FCE # <CJK>
+0x14F53 0x8FD4 # <CJK>
+0x14F54 0x8FD1 # <CJK>
+0x14F55 0x90B5 # <CJK>
+0x14F56 0x90B8 # <CJK>
+0x14F57 0x90B1 # <CJK>
+0x14F58 0x90B6 # <CJK>
+0x14F59 0x91C7 # <CJK>
+0x14F5A 0x91D1 # <CJK>
+0x14F5B 0x9577 # <CJK>
+0x14F5C 0x9580 # <CJK>
+0x14F5D 0x961C # <CJK>
+0x14F5E 0x9640 # <CJK>
+0x14F5F 0x963F # <CJK>
+0x14F60 0x963B # <CJK>
+0x14F61 0x9644 # <CJK>
+0x14F62 0x9642 # <CJK>
+0x14F63 0x96B9 # <CJK>
+0x14F64 0x96E8 # <CJK>
+0x14F65 0x9752 # <CJK>
+0x14F66 0x975E # <CJK>
+0x14F67 0x4E9F # <CJK>
+0x14F68 0x4EAD # <CJK>
+0x14F69 0x4EAE # <CJK>
+0x14F6A 0x4FE1 # <CJK>
+0x14F6B 0x4FB5 # <CJK>
+0x14F6C 0x4FAF # <CJK>
+0x14F6D 0x4FBF # <CJK>
+0x14F6E 0x4FE0 # <CJK>
+0x14F6F 0x4FD1 # <CJK>
+0x14F70 0x4FCF # <CJK>
+0x14F71 0x4FDD # <CJK>
+0x14F72 0x4FC3 # <CJK>
+0x14F73 0x4FB6 # <CJK>
+0x14F74 0x4FD8 # <CJK>
+0x14F75 0x4FDF # <CJK>
+0x14F76 0x4FCA # <CJK>
+0x14F77 0x4FD7 # <CJK>
+0x14F78 0x4FAE # <CJK>
+0x14F79 0x4FD0 # <CJK>
+0x14F7A 0x4FC4 # <CJK>
+0x14F7B 0x4FC2 # <CJK>
+0x14F7C 0x4FDA # <CJK>
+0x14F7D 0x4FCE # <CJK>
+0x14F7E 0x4FDE # <CJK>
+0x15021 0x4FB7 # <CJK>
+0x15022 0x5157 # <CJK>
+0x15023 0x5192 # <CJK>
+0x15024 0x5191 # <CJK>
+0x15025 0x51A0 # <CJK>
+0x15026 0x524E # <CJK>
+0x15027 0x5243 # <CJK>
+0x15028 0x524A # <CJK>
+0x15029 0x524D # <CJK>
+0x1502A 0x524C # <CJK>
+0x1502B 0x524B # <CJK>
+0x1502C 0x5247 # <CJK>
+0x1502D 0x52C7 # <CJK>
+0x1502E 0x52C9 # <CJK>
+0x1502F 0x52C3 # <CJK>
+0x15030 0x52C1 # <CJK>
+0x15031 0x530D # <CJK>
+0x15032 0x5357 # <CJK>
+0x15033 0x537B # <CJK>
+0x15034 0x539A # <CJK>
+0x15035 0x53DB # <CJK>
+0x15036 0x54AC # <CJK>
+0x15037 0x54C0 # <CJK>
+0x15038 0x54A8 # <CJK>
+0x15039 0x54CE # <CJK>
+0x1503A 0x54C9 # <CJK>
+0x1503B 0x54B8 # <CJK>
+0x1503C 0x54A6 # <CJK>
+0x1503D 0x54B3 # <CJK>
+0x1503E 0x54C7 # <CJK>
+0x1503F 0x54C2 # <CJK>
+0x15040 0x54BD # <CJK>
+0x15041 0x54AA # <CJK>
+0x15042 0x54C1 # <CJK>
+0x15043 0x54C4 # <CJK>
+0x15044 0x54C8 # <CJK>
+0x15045 0x54AF # <CJK>
+0x15046 0x54AB # <CJK>
+0x15047 0x54B1 # <CJK>
+0x15048 0x54BB # <CJK>
+0x15049 0x54A9 # <CJK>
+0x1504A 0x54A7 # <CJK>
+0x1504B 0x54BF # <CJK>
+0x1504C 0x56FF # <CJK>
+0x1504D 0x5782 # <CJK>
+0x1504E 0x578B # <CJK>
+0x1504F 0x57A0 # <CJK>
+0x15050 0x57A3 # <CJK>
+0x15051 0x57A2 # <CJK>
+0x15052 0x57CE # <CJK>
+0x15053 0x57AE # <CJK>
+0x15054 0x5793 # <CJK>
+0x15055 0x5955 # <CJK>
+0x15056 0x5951 # <CJK>
+0x15057 0x594F # <CJK>
+0x15058 0x594E # <CJK>
+0x15059 0x5950 # <CJK>
+0x1505A 0x59DC # <CJK>
+0x1505B 0x59D8 # <CJK>
+0x1505C 0x59FF # <CJK>
+0x1505D 0x59E3 # <CJK>
+0x1505E 0x59E8 # <CJK>
+0x1505F 0x5A03 # <CJK>
+0x15060 0x59E5 # <CJK>
+0x15061 0x59EA # <CJK>
+0x15062 0x59DA # <CJK>
+0x15063 0x59E6 # <CJK>
+0x15064 0x5A01 # <CJK>
+0x15065 0x59FB # <CJK>
+0x15066 0x5B69 # <CJK>
+0x15067 0x5BA3 # <CJK>
+0x15068 0x5BA6 # <CJK>
+0x15069 0x5BA4 # <CJK>
+0x1506A 0x5BA2 # <CJK>
+0x1506B 0x5BA5 # <CJK>
+0x1506C 0x5C01 # <CJK>
+0x1506D 0x5C4E # <CJK>
+0x1506E 0x5C4F # <CJK>
+0x1506F 0x5C4D # <CJK>
+0x15070 0x5C4B # <CJK>
+0x15071 0x5CD9 # <CJK>
+0x15072 0x5CD2 # <CJK>
+0x15073 0x5DF7 # <CJK>
+0x15074 0x5E1D # <CJK>
+0x15075 0x5E25 # <CJK>
+0x15076 0x5E1F # <CJK>
+0x15077 0x5E7D # <CJK>
+0x15078 0x5EA0 # <CJK>
+0x15079 0x5EA6 # <CJK>
+0x1507A 0x5EFA # <CJK>
+0x1507B 0x5F08 # <CJK>
+0x1507C 0x5F2D # <CJK>
+0x1507D 0x5F65 # <CJK>
+0x1507E 0x5F88 # <CJK>
+0x15121 0x5F85 # <CJK>
+0x15122 0x5F8A # <CJK>
+0x15123 0x5F8B # <CJK>
+0x15124 0x5F87 # <CJK>
+0x15125 0x5F8C # <CJK>
+0x15126 0x5F89 # <CJK>
+0x15127 0x6012 # <CJK>
+0x15128 0x601D # <CJK>
+0x15129 0x6020 # <CJK>
+0x1512A 0x6025 # <CJK>
+0x1512B 0x600E # <CJK>
+0x1512C 0x6028 # <CJK>
+0x1512D 0x604D # <CJK>
+0x1512E 0x6070 # <CJK>
+0x1512F 0x6068 # <CJK>
+0x15130 0x6062 # <CJK>
+0x15131 0x6046 # <CJK>
+0x15132 0x6043 # <CJK>
+0x15133 0x606C # <CJK>
+0x15134 0x606B # <CJK>
+0x15135 0x606A # <CJK>
+0x15136 0x6064 # <CJK>
+0x15137 0x6241 # <CJK>
+0x15138 0x62DC # <CJK>
+0x15139 0x6316 # <CJK>
+0x1513A 0x6309 # <CJK>
+0x1513B 0x62FC # <CJK>
+0x1513C 0x62ED # <CJK>
+0x1513D 0x6301 # <CJK>
+0x1513E 0x62EE # <CJK>
+0x1513F 0x62FD # <CJK>
+0x15140 0x6307 # <CJK>
+0x15141 0x62F1 # <CJK>
+0x15142 0x62F7 # <CJK>
+0x15143 0x62EF # <CJK>
+0x15144 0x62EC # <CJK>
+0x15145 0x62FE # <CJK>
+0x15146 0x62F4 # <CJK>
+0x15147 0x6311 # <CJK>
+0x15148 0x6302 # <CJK>
+0x15149 0x653F # <CJK>
+0x1514A 0x6545 # <CJK>
+0x1514B 0x65AB # <CJK>
+0x1514C 0x65BD # <CJK>
+0x1514D 0x65E2 # <CJK>
+0x1514E 0x6625 # <CJK>
+0x1514F 0x662D # <CJK>
+0x15150 0x6620 # <CJK>
+0x15151 0x6627 # <CJK>
+0x15152 0x662F # <CJK>
+0x15153 0x661F # <CJK>
+0x15154 0x6628 # <CJK>
+0x15155 0x6631 # <CJK>
+0x15156 0x6624 # <CJK>
+0x15157 0x66F7 # <CJK>
+0x15158 0x67FF # <CJK>
+0x15159 0x67D3 # <CJK>
+0x1515A 0x67F1 # <CJK>
+0x1515B 0x67D4 # <CJK>
+0x1515C 0x67D0 # <CJK>
+0x1515D 0x67EC # <CJK>
+0x1515E 0x67B6 # <CJK>
+0x1515F 0x67AF # <CJK>
+0x15160 0x67F5 # <CJK>
+0x15161 0x67E9 # <CJK>
+0x15162 0x67EF # <CJK>
+0x15163 0x67C4 # <CJK>
+0x15164 0x67D1 # <CJK>
+0x15165 0x67B4 # <CJK>
+0x15166 0x67DA # <CJK>
+0x15167 0x67E5 # <CJK>
+0x15168 0x67B8 # <CJK>
+0x15169 0x67CF # <CJK>
+0x1516A 0x67DE # <CJK>
+0x1516B 0x67F3 # <CJK>
+0x1516C 0x67B0 # <CJK>
+0x1516D 0x67D9 # <CJK>
+0x1516E 0x67E2 # <CJK>
+0x1516F 0x67DD # <CJK>
+0x15170 0x67D2 # <CJK>
+0x15171 0x6B6A # <CJK>
+0x15172 0x6B83 # <CJK>
+0x15173 0x6B86 # <CJK>
+0x15174 0x6BB5 # <CJK>
+0x15175 0x6BD2 # <CJK>
+0x15176 0x6BD7 # <CJK>
+0x15177 0x6C1F # <CJK>
+0x15178 0x6CC9 # <CJK>
+0x15179 0x6D0B # <CJK>
+0x1517A 0x6D32 # <CJK>
+0x1517B 0x6D2A # <CJK>
+0x1517C 0x6D41 # <CJK>
+0x1517D 0x6D25 # <CJK>
+0x1517E 0x6D0C # <CJK>
+0x15221 0x6D31 # <CJK>
+0x15222 0x6D1E # <CJK>
+0x15223 0x6D17 # <CJK>
+0x15224 0x6D3B # <CJK>
+0x15225 0x6D3D # <CJK>
+0x15226 0x6D3E # <CJK>
+0x15227 0x6D36 # <CJK>
+0x15228 0x6D1B # <CJK>
+0x15229 0x6CF5 # <CJK>
+0x1522A 0x6D39 # <CJK>
+0x1522B 0x6D27 # <CJK>
+0x1522C 0x6D38 # <CJK>
+0x1522D 0x6D29 # <CJK>
+0x1522E 0x6D2E # <CJK>
+0x1522F 0x6D35 # <CJK>
+0x15230 0x6D0E # <CJK>
+0x15231 0x6D2B # <CJK>
+0x15232 0x70AB # <CJK>
+0x15233 0x70BA # <CJK>
+0x15234 0x70B3 # <CJK>
+0x15235 0x70AC # <CJK>
+0x15236 0x70AF # <CJK>
+0x15237 0x70AD # <CJK>
+0x15238 0x70B8 # <CJK>
+0x15239 0x70AE # <CJK>
+0x1523A 0x70A4 # <CJK>
+0x1523B 0x7230 # <CJK>
+0x1523C 0x7272 # <CJK>
+0x1523D 0x726F # <CJK>
+0x1523E 0x7274 # <CJK>
+0x1523F 0x72E9 # <CJK>
+0x15240 0x72E0 # <CJK>
+0x15241 0x72E1 # <CJK>
+0x15242 0x73B7 # <CJK>
+0x15243 0x73CA # <CJK>
+0x15244 0x73BB # <CJK>
+0x15245 0x73B2 # <CJK>
+0x15246 0x73CD # <CJK>
+0x15247 0x73C0 # <CJK>
+0x15248 0x73B3 # <CJK>
+0x15249 0x751A # <CJK>
+0x1524A 0x752D # <CJK>
+0x1524B 0x754F # <CJK>
+0x1524C 0x754C # <CJK>
+0x1524D 0x754E # <CJK>
+0x1524E 0x754B # <CJK>
+0x1524F 0x75AB # <CJK>
+0x15250 0x75A4 # <CJK>
+0x15251 0x75A5 # <CJK>
+0x15252 0x75A2 # <CJK>
+0x15253 0x75A3 # <CJK>
+0x15254 0x7678 # <CJK>
+0x15255 0x7686 # <CJK>
+0x15256 0x7687 # <CJK>
+0x15257 0x7688 # <CJK>
+0x15258 0x76C8 # <CJK>
+0x15259 0x76C6 # <CJK>
+0x1525A 0x76C3 # <CJK>
+0x1525B 0x76C5 # <CJK>
+0x1525C 0x7701 # <CJK>
+0x1525D 0x76F9 # <CJK>
+0x1525E 0x76F8 # <CJK>
+0x1525F 0x7709 # <CJK>
+0x15260 0x770B # <CJK>
+0x15261 0x76FE # <CJK>
+0x15262 0x76FC # <CJK>
+0x15263 0x7707 # <CJK>
+0x15264 0x77DC # <CJK>
+0x15265 0x7802 # <CJK>
+0x15266 0x7814 # <CJK>
+0x15267 0x780C # <CJK>
+0x15268 0x780D # <CJK>
+0x15269 0x7946 # <CJK>
+0x1526A 0x7949 # <CJK>
+0x1526B 0x7948 # <CJK>
+0x1526C 0x7947 # <CJK>
+0x1526D 0x79B9 # <CJK>
+0x1526E 0x79BA # <CJK>
+0x1526F 0x79D1 # <CJK>
+0x15270 0x79D2 # <CJK>
+0x15271 0x79CB # <CJK>
+0x15272 0x7A7F # <CJK>
+0x15273 0x7A81 # <CJK>
+0x15274 0x7AFF # <CJK>
+0x15275 0x7AFD # <CJK>
+0x15276 0x7C7D # <CJK>
+0x15277 0x7D02 # <CJK>
+0x15278 0x7D05 # <CJK>
+0x15279 0x7D00 # <CJK>
+0x1527A 0x7D09 # <CJK>
+0x1527B 0x7D07 # <CJK>
+0x1527C 0x7D04 # <CJK>
+0x1527D 0x7D06 # <CJK>
+0x1527E 0x7F38 # <CJK>
+0x15321 0x7F8E # <CJK>
+0x15322 0x7FBF # <CJK>
+0x15323 0x8010 # <CJK>
+0x15324 0x800D # <CJK>
+0x15325 0x8011 # <CJK>
+0x15326 0x8036 # <CJK>
+0x15327 0x80D6 # <CJK>
+0x15328 0x80E5 # <CJK>
+0x15329 0x80DA # <CJK>
+0x1532A 0x80C3 # <CJK>
+0x1532B 0x80C4 # <CJK>
+0x1532C 0x80CC # <CJK>
+0x1532D 0x80E1 # <CJK>
+0x1532E 0x80DB # <CJK>
+0x1532F 0x80CE # <CJK>
+0x15330 0x80DE # <CJK>
+0x15331 0x80E4 # <CJK>
+0x15332 0x80DD # <CJK>
+0x15333 0x81F4 # <CJK>
+0x15334 0x8222 # <CJK>
+0x15335 0x82E7 # <CJK>
+0x15336 0x8303 # <CJK>
+0x15337 0x8305 # <CJK>
+0x15338 0x82E3 # <CJK>
+0x15339 0x82DB # <CJK>
+0x1533A 0x82E6 # <CJK>
+0x1533B 0x8304 # <CJK>
+0x1533C 0x82E5 # <CJK>
+0x1533D 0x8302 # <CJK>
+0x1533E 0x8309 # <CJK>
+0x1533F 0x82D2 # <CJK>
+0x15340 0x82D7 # <CJK>
+0x15341 0x82F1 # <CJK>
+0x15342 0x8301 # <CJK>
+0x15343 0x82DC # <CJK>
+0x15344 0x82D4 # <CJK>
+0x15345 0x82D1 # <CJK>
+0x15346 0x82DE # <CJK>
+0x15347 0x82D3 # <CJK>
+0x15348 0x82DF # <CJK>
+0x15349 0x82EF # <CJK>
+0x1534A 0x8306 # <CJK>
+0x1534B 0x8650 # <CJK>
+0x1534C 0x8679 # <CJK>
+0x1534D 0x867B # <CJK>
+0x1534E 0x867A # <CJK>
+0x1534F 0x884D # <CJK>
+0x15350 0x886B # <CJK>
+0x15351 0x8981 # <CJK>
+0x15352 0x89D4 # <CJK>
+0x15353 0x8A08 # <CJK>
+0x15354 0x8A02 # <CJK>
+0x15355 0x8A03 # <CJK>
+0x15356 0x8C9E # <CJK>
+0x15357 0x8CA0 # <CJK>
+0x15358 0x8D74 # <CJK>
+0x15359 0x8D73 # <CJK>
+0x1535A 0x8DB4 # <CJK>
+0x1535B 0x8ECD # <CJK>
+0x1535C 0x8ECC # <CJK>
+0x1535D 0x8FF0 # <CJK>
+0x1535E 0x8FE6 # <CJK>
+0x1535F 0x8FE2 # <CJK>
+0x15360 0x8FEA # <CJK>
+0x15361 0x8FE5 # <CJK>
+0x15362 0x8FED # <CJK>
+0x15363 0x8FEB # <CJK>
+0x15364 0x8FE4 # <CJK>
+0x15365 0x8FE8 # <CJK>
+0x15366 0x90CA # <CJK>
+0x15367 0x90CE # <CJK>
+0x15368 0x90C1 # <CJK>
+0x15369 0x90C3 # <CJK>
+0x1536A 0x914B # <CJK>
+0x1536B 0x914A # <CJK>
+0x1536C 0x91CD # <CJK>
+0x1536D 0x9582 # <CJK>
+0x1536E 0x9650 # <CJK>
+0x1536F 0x964B # <CJK>
+0x15370 0x964C # <CJK>
+0x15371 0x964D # <CJK>
+0x15372 0x9762 # <CJK>
+0x15373 0x9769 # <CJK>
+0x15374 0x97CB # <CJK>
+0x15375 0x97ED # <CJK>
+0x15376 0x97F3 # <CJK>
+0x15377 0x9801 # <CJK>
+0x15378 0x98A8 # <CJK>
+0x15379 0x98DB # <CJK>
+0x1537A 0x98DF # <CJK>
+0x1537B 0x9996 # <CJK>
+0x1537C 0x9999 # <CJK>
+0x1537D 0x4E58 # <CJK>
+0x1537E 0x4EB3 # <CJK>
+0x15421 0x500C # <CJK>
+0x15422 0x500D # <CJK>
+0x15423 0x5023 # <CJK>
+0x15424 0x4FEF # <CJK>
+0x15425 0x5026 # <CJK>
+0x15426 0x5025 # <CJK>
+0x15427 0x4FF8 # <CJK>
+0x15428 0x5029 # <CJK>
+0x15429 0x5016 # <CJK>
+0x1542A 0x5006 # <CJK>
+0x1542B 0x503C # <CJK>
+0x1542C 0x501F # <CJK>
+0x1542D 0x501A # <CJK>
+0x1542E 0x5012 # <CJK>
+0x1542F 0x5011 # <CJK>
+0x15430 0x4FFA # <CJK>
+0x15431 0x5000 # <CJK>
+0x15432 0x5014 # <CJK>
+0x15433 0x5028 # <CJK>
+0x15434 0x4FF1 # <CJK>
+0x15435 0x5021 # <CJK>
+0x15436 0x500B # <CJK>
+0x15437 0x5019 # <CJK>
+0x15438 0x5018 # <CJK>
+0x15439 0x4FF3 # <CJK>
+0x1543A 0x4FEE # <CJK>
+0x1543B 0x502D # <CJK>
+0x1543C 0x502A # <CJK>
+0x1543D 0x4FFE # <CJK>
+0x1543E 0x502B # <CJK>
+0x1543F 0x5009 # <CJK>
+0x15440 0x517C # <CJK>
+0x15441 0x51A4 # <CJK>
+0x15442 0x51A5 # <CJK>
+0x15443 0x51A2 # <CJK>
+0x15444 0x51CD # <CJK>
+0x15445 0x51CC # <CJK>
+0x15446 0x51C6 # <CJK>
+0x15447 0x51CB # <CJK>
+0x15448 0x5256 # <CJK>
+0x15449 0x525C # <CJK>
+0x1544A 0x5254 # <CJK>
+0x1544B 0x525B # <CJK>
+0x1544C 0x525D # <CJK>
+0x1544D 0x532A # <CJK>
+0x1544E 0x537F # <CJK>
+0x1544F 0x539F # <CJK>
+0x15450 0x539D # <CJK>
+0x15451 0x53DF # <CJK>
+0x15452 0x54E8 # <CJK>
+0x15453 0x5510 # <CJK>
+0x15454 0x5501 # <CJK>
+0x15455 0x5537 # <CJK>
+0x15456 0x54FC # <CJK>
+0x15457 0x54E5 # <CJK>
+0x15458 0x54F2 # <CJK>
+0x15459 0x5506 # <CJK>
+0x1545A 0x54FA # <CJK>
+0x1545B 0x5514 # <CJK>
+0x1545C 0x54E9 # <CJK>
+0x1545D 0x54ED # <CJK>
+0x1545E 0x54E1 # <CJK>
+0x1545F 0x5509 # <CJK>
+0x15460 0x54EE # <CJK>
+0x15461 0x54EA # <CJK>
+0x15462 0x54E6 # <CJK>
+0x15463 0x5527 # <CJK>
+0x15464 0x5507 # <CJK>
+0x15465 0x54FD # <CJK>
+0x15466 0x550F # <CJK>
+0x15467 0x5703 # <CJK>
+0x15468 0x5704 # <CJK>
+0x15469 0x57C2 # <CJK>
+0x1546A 0x57D4 # <CJK>
+0x1546B 0x57CB # <CJK>
+0x1546C 0x57C3 # <CJK>
+0x1546D 0x5809 # <CJK>
+0x1546E 0x590F # <CJK>
+0x1546F 0x5957 # <CJK>
+0x15470 0x5958 # <CJK>
+0x15471 0x595A # <CJK>
+0x15472 0x5A11 # <CJK>
+0x15473 0x5A18 # <CJK>
+0x15474 0x5A1C # <CJK>
+0x15475 0x5A1F # <CJK>
+0x15476 0x5A1B # <CJK>
+0x15477 0x5A13 # <CJK>
+0x15478 0x59EC # <CJK>
+0x15479 0x5A20 # <CJK>
+0x1547A 0x5A23 # <CJK>
+0x1547B 0x5A29 # <CJK>
+0x1547C 0x5A25 # <CJK>
+0x1547D 0x5A0C # <CJK>
+0x1547E 0x5A09 # <CJK>
+0x15521 0x5B6B # <CJK>
+0x15522 0x5C58 # <CJK>
+0x15523 0x5BB0 # <CJK>
+0x15524 0x5BB3 # <CJK>
+0x15525 0x5BB6 # <CJK>
+0x15526 0x5BB4 # <CJK>
+0x15527 0x5BAE # <CJK>
+0x15528 0x5BB5 # <CJK>
+0x15529 0x5BB9 # <CJK>
+0x1552A 0x5BB8 # <CJK>
+0x1552B 0x5C04 # <CJK>
+0x1552C 0x5C51 # <CJK>
+0x1552D 0x5C55 # <CJK>
+0x1552E 0x5C50 # <CJK>
+0x1552F 0x5CED # <CJK>
+0x15530 0x5CFD # <CJK>
+0x15531 0x5CFB # <CJK>
+0x15532 0x5CEA # <CJK>
+0x15533 0x5CE8 # <CJK>
+0x15534 0x5CF0 # <CJK>
+0x15535 0x5CF6 # <CJK>
+0x15536 0x5D01 # <CJK>
+0x15537 0x5CF4 # <CJK>
+0x15538 0x5DEE # <CJK>
+0x15539 0x5E2D # <CJK>
+0x1553A 0x5E2B # <CJK>
+0x1553B 0x5EAB # <CJK>
+0x1553C 0x5EAD # <CJK>
+0x1553D 0x5EA7 # <CJK>
+0x1553E 0x5F31 # <CJK>
+0x1553F 0x5F92 # <CJK>
+0x15540 0x5F91 # <CJK>
+0x15541 0x5F90 # <CJK>
+0x15542 0x6059 # <CJK>
+0x15543 0x6063 # <CJK>
+0x15544 0x6065 # <CJK>
+0x15545 0x6050 # <CJK>
+0x15546 0x6055 # <CJK>
+0x15547 0x606D # <CJK>
+0x15548 0x6069 # <CJK>
+0x15549 0x606F # <CJK>
+0x1554A 0x6084 # <CJK>
+0x1554B 0x609F # <CJK>
+0x1554C 0x609A # <CJK>
+0x1554D 0x608D # <CJK>
+0x1554E 0x6094 # <CJK>
+0x1554F 0x608C # <CJK>
+0x15550 0x6085 # <CJK>
+0x15551 0x6096 # <CJK>
+0x15552 0x6247 # <CJK>
+0x15553 0x62F3 # <CJK>
+0x15554 0x6308 # <CJK>
+0x15555 0x62FF # <CJK>
+0x15556 0x634E # <CJK>
+0x15557 0x633E # <CJK>
+0x15558 0x632F # <CJK>
+0x15559 0x6355 # <CJK>
+0x1555A 0x6342 # <CJK>
+0x1555B 0x6346 # <CJK>
+0x1555C 0x634F # <CJK>
+0x1555D 0x6349 # <CJK>
+0x1555E 0x633A # <CJK>
+0x1555F 0x6350 # <CJK>
+0x15560 0x633D # <CJK>
+0x15561 0x632A # <CJK>
+0x15562 0x632B # <CJK>
+0x15563 0x6328 # <CJK>
+0x15564 0x634D # <CJK>
+0x15565 0x634C # <CJK>
+0x15566 0x6548 # <CJK>
+0x15567 0x6549 # <CJK>
+0x15568 0x6599 # <CJK>
+0x15569 0x65C1 # <CJK>
+0x1556A 0x65C5 # <CJK>
+0x1556B 0x6642 # <CJK>
+0x1556C 0x6649 # <CJK>
+0x1556D 0x664F # <CJK>
+0x1556E 0x6643 # <CJK>
+0x1556F 0x6652 # <CJK>
+0x15570 0x664C # <CJK>
+0x15571 0x6645 # <CJK>
+0x15572 0x6641 # <CJK>
+0x15573 0x66F8 # <CJK>
+0x15574 0x6714 # <CJK>
+0x15575 0x6715 # <CJK>
+0x15576 0x6717 # <CJK>
+0x15577 0x6821 # <CJK>
+0x15578 0x6838 # <CJK>
+0x15579 0x6848 # <CJK>
+0x1557A 0x6846 # <CJK>
+0x1557B 0x6853 # <CJK>
+0x1557C 0x6839 # <CJK>
+0x1557D 0x6842 # <CJK>
+0x1557E 0x6854 # <CJK>
+0x15621 0x6829 # <CJK>
+0x15622 0x68B3 # <CJK>
+0x15623 0x6817 # <CJK>
+0x15624 0x684C # <CJK>
+0x15625 0x6851 # <CJK>
+0x15626 0x683D # <CJK>
+0x15627 0x67F4 # <CJK>
+0x15628 0x6850 # <CJK>
+0x15629 0x6840 # <CJK>
+0x1562A 0x683C # <CJK>
+0x1562B 0x6843 # <CJK>
+0x1562C 0x682A # <CJK>
+0x1562D 0x6845 # <CJK>
+0x1562E 0x6813 # <CJK>
+0x1562F 0x6818 # <CJK>
+0x15630 0x6841 # <CJK>
+0x15631 0x6B8A # <CJK>
+0x15632 0x6B89 # <CJK>
+0x15633 0x6BB7 # <CJK>
+0x15634 0x6C23 # <CJK>
+0x15635 0x6C27 # <CJK>
+0x15636 0x6C28 # <CJK>
+0x15637 0x6C26 # <CJK>
+0x15638 0x6C24 # <CJK>
+0x15639 0x6CF0 # <CJK>
+0x1563A 0x6D6A # <CJK>
+0x1563B 0x6D95 # <CJK>
+0x1563C 0x6D88 # <CJK>
+0x1563D 0x6D87 # <CJK>
+0x1563E 0x6D66 # <CJK>
+0x1563F 0x6D78 # <CJK>
+0x15640 0x6D77 # <CJK>
+0x15641 0x6D59 # <CJK>
+0x15642 0x6D93 # <CJK>
+0x15643 0x6D6C # <CJK>
+0x15644 0x6D89 # <CJK>
+0x15645 0x6D6E # <CJK>
+0x15646 0x6D5A # <CJK>
+0x15647 0x6D74 # <CJK>
+0x15648 0x6D69 # <CJK>
+0x15649 0x6D8C # <CJK>
+0x1564A 0x6D8A # <CJK>
+0x1564B 0x6D79 # <CJK>
+0x1564C 0x6D85 # <CJK>
+0x1564D 0x6D65 # <CJK>
+0x1564E 0x6D94 # <CJK>
+0x1564F 0x70CA # <CJK>
+0x15650 0x70D8 # <CJK>
+0x15651 0x70E4 # <CJK>
+0x15652 0x70D9 # <CJK>
+0x15653 0x70C8 # <CJK>
+0x15654 0x70CF # <CJK>
+0x15655 0x7239 # <CJK>
+0x15656 0x7279 # <CJK>
+0x15657 0x72FC # <CJK>
+0x15658 0x72F9 # <CJK>
+0x15659 0x72FD # <CJK>
+0x1565A 0x72F8 # <CJK>
+0x1565B 0x72F7 # <CJK>
+0x1565C 0x7386 # <CJK>
+0x1565D 0x73ED # <CJK>
+0x1565E 0x7409 # <CJK>
+0x1565F 0x73EE # <CJK>
+0x15660 0x73E0 # <CJK>
+0x15661 0x73EA # <CJK>
+0x15662 0x73DE # <CJK>
+0x15663 0x7554 # <CJK>
+0x15664 0x755D # <CJK>
+0x15665 0x755C # <CJK>
+0x15666 0x755A # <CJK>
+0x15667 0x7559 # <CJK>
+0x15668 0x75BE # <CJK>
+0x15669 0x75C5 # <CJK>
+0x1566A 0x75C7 # <CJK>
+0x1566B 0x75B2 # <CJK>
+0x1566C 0x75B3 # <CJK>
+0x1566D 0x75BD # <CJK>
+0x1566E 0x75BC # <CJK>
+0x1566F 0x75B9 # <CJK>
+0x15670 0x75C2 # <CJK>
+0x15671 0x75B8 # <CJK>
+0x15672 0x768B # <CJK>
+0x15673 0x76B0 # <CJK>
+0x15674 0x76CA # <CJK>
+0x15675 0x76CD # <CJK>
+0x15676 0x76CE # <CJK>
+0x15677 0x7729 # <CJK>
+0x15678 0x771F # <CJK>
+0x15679 0x7720 # <CJK>
+0x1567A 0x7728 # <CJK>
+0x1567B 0x77E9 # <CJK>
+0x1567C 0x7830 # <CJK>
+0x1567D 0x7827 # <CJK>
+0x1567E 0x7838 # <CJK>
+0x15721 0x781D # <CJK>
+0x15722 0x7834 # <CJK>
+0x15723 0x7837 # <CJK>
+0x15724 0x7825 # <CJK>
+0x15725 0x782D # <CJK>
+0x15726 0x7820 # <CJK>
+0x15727 0x781F # <CJK>
+0x15728 0x7832 # <CJK>
+0x15729 0x7955 # <CJK>
+0x1572A 0x7950 # <CJK>
+0x1572B 0x7960 # <CJK>
+0x1572C 0x795F # <CJK>
+0x1572D 0x7956 # <CJK>
+0x1572E 0x795E # <CJK>
+0x1572F 0x795D # <CJK>
+0x15730 0x7957 # <CJK>
+0x15731 0x795A # <CJK>
+0x15732 0x79E4 # <CJK>
+0x15733 0x79E3 # <CJK>
+0x15734 0x79E7 # <CJK>
+0x15735 0x79DF # <CJK>
+0x15736 0x79E6 # <CJK>
+0x15737 0x79E9 # <CJK>
+0x15738 0x79D8 # <CJK>
+0x15739 0x7A84 # <CJK>
+0x1573A 0x7A88 # <CJK>
+0x1573B 0x7AD9 # <CJK>
+0x1573C 0x7B06 # <CJK>
+0x1573D 0x7B11 # <CJK>
+0x1573E 0x7C89 # <CJK>
+0x1573F 0x7D21 # <CJK>
+0x15740 0x7D17 # <CJK>
+0x15741 0x7D0B # <CJK>
+0x15742 0x7D0A # <CJK>
+0x15743 0x7D20 # <CJK>
+0x15744 0x7D22 # <CJK>
+0x15745 0x7D14 # <CJK>
+0x15746 0x7D10 # <CJK>
+0x15747 0x7D15 # <CJK>
+0x15748 0x7D1A # <CJK>
+0x15749 0x7D1C # <CJK>
+0x1574A 0x7D0D # <CJK>
+0x1574B 0x7D19 # <CJK>
+0x1574C 0x7D1B # <CJK>
+0x1574D 0x7F3A # <CJK>
+0x1574E 0x7F5F # <CJK>
+0x1574F 0x7F94 # <CJK>
+0x15750 0x7FC5 # <CJK>
+0x15751 0x7FC1 # <CJK>
+0x15752 0x8006 # <CJK>
+0x15753 0x8004 # <CJK>
+0x15754 0x8018 # <CJK>
+0x15755 0x8015 # <CJK>
+0x15756 0x8019 # <CJK>
+0x15757 0x8017 # <CJK>
+0x15758 0x803D # <CJK>
+0x15759 0x803F # <CJK>
+0x1575A 0x80F1 # <CJK>
+0x1575B 0x8102 # <CJK>
+0x1575C 0x80F0 # <CJK>
+0x1575D 0x8105 # <CJK>
+0x1575E 0x80ED # <CJK>
+0x1575F 0x80F4 # <CJK>
+0x15760 0x8106 # <CJK>
+0x15761 0x80F8 # <CJK>
+0x15762 0x80F3 # <CJK>
+0x15763 0x8108 # <CJK>
+0x15764 0x80FD # <CJK>
+0x15765 0x810A # <CJK>
+0x15766 0x80FC # <CJK>
+0x15767 0x80EF # <CJK>
+0x15768 0x81ED # <CJK>
+0x15769 0x81EC # <CJK>
+0x1576A 0x8200 # <CJK>
+0x1576B 0x8210 # <CJK>
+0x1576C 0x822A # <CJK>
+0x1576D 0x822B # <CJK>
+0x1576E 0x8228 # <CJK>
+0x1576F 0x822C # <CJK>
+0x15770 0x82BB # <CJK>
+0x15771 0x832B # <CJK>
+0x15772 0x8352 # <CJK>
+0x15773 0x8354 # <CJK>
+0x15774 0x834A # <CJK>
+0x15775 0x8338 # <CJK>
+0x15776 0x8350 # <CJK>
+0x15777 0x8349 # <CJK>
+0x15778 0x8335 # <CJK>
+0x15779 0x8334 # <CJK>
+0x1577A 0x834F # <CJK>
+0x1577B 0x8332 # <CJK>
+0x1577C 0x8339 # <CJK>
+0x1577D 0x8336 # <CJK>
+0x1577E 0x8317 # <CJK>
+0x15821 0x8340 # <CJK>
+0x15822 0x8331 # <CJK>
+0x15823 0x8328 # <CJK>
+0x15824 0x8343 # <CJK>
+0x15825 0x8654 # <CJK>
+0x15826 0x868A # <CJK>
+0x15827 0x86AA # <CJK>
+0x15828 0x8693 # <CJK>
+0x15829 0x86A4 # <CJK>
+0x1582A 0x86A9 # <CJK>
+0x1582B 0x868C # <CJK>
+0x1582C 0x86A3 # <CJK>
+0x1582D 0x869C # <CJK>
+0x1582E 0x8870 # <CJK>
+0x1582F 0x8877 # <CJK>
+0x15830 0x8881 # <CJK>
+0x15831 0x8882 # <CJK>
+0x15832 0x887D # <CJK>
+0x15833 0x8879 # <CJK>
+0x15834 0x8A18 # <CJK>
+0x15835 0x8A10 # <CJK>
+0x15836 0x8A0E # <CJK>
+0x15837 0x8A0C # <CJK>
+0x15838 0x8A15 # <CJK>
+0x15839 0x8A0A # <CJK>
+0x1583A 0x8A17 # <CJK>
+0x1583B 0x8A13 # <CJK>
+0x1583C 0x8A16 # <CJK>
+0x1583D 0x8A0F # <CJK>
+0x1583E 0x8A11 # <CJK>
+0x1583F 0x8C48 # <CJK>
+0x15840 0x8C7A # <CJK>
+0x15841 0x8C79 # <CJK>
+0x15842 0x8CA1 # <CJK>
+0x15843 0x8CA2 # <CJK>
+0x15844 0x8D77 # <CJK>
+0x15845 0x8EAC # <CJK>
+0x15846 0x8ED2 # <CJK>
+0x15847 0x8ED4 # <CJK>
+0x15848 0x8ECF # <CJK>
+0x15849 0x8FB1 # <CJK>
+0x1584A 0x9001 # <CJK>
+0x1584B 0x9006 # <CJK>
+0x1584C 0x8FF7 # <CJK>
+0x1584D 0x9000 # <CJK>
+0x1584E 0x8FFA # <CJK>
+0x1584F 0x8FF4 # <CJK>
+0x15850 0x9003 # <CJK>
+0x15851 0x8FFD # <CJK>
+0x15852 0x9005 # <CJK>
+0x15853 0x8FF8 # <CJK>
+0x15854 0x9095 # <CJK>
+0x15855 0x90E1 # <CJK>
+0x15856 0x90DD # <CJK>
+0x15857 0x90E2 # <CJK>
+0x15858 0x9152 # <CJK>
+0x15859 0x914D # <CJK>
+0x1585A 0x914C # <CJK>
+0x1585B 0x91D8 # <CJK>
+0x1585C 0x91DD # <CJK>
+0x1585D 0x91D7 # <CJK>
+0x1585E 0x91DC # <CJK>
+0x1585F 0x91D9 # <CJK>
+0x15860 0x9583 # <CJK>
+0x15861 0x9662 # <CJK>
+0x15862 0x9663 # <CJK>
+0x15863 0x9661 # <CJK>
+0x15864 0x965B # <CJK>
+0x15865 0x965D # <CJK>
+0x15866 0x9664 # <CJK>
+0x15867 0x9658 # <CJK>
+0x15868 0x965E # <CJK>
+0x15869 0x96BB # <CJK>
+0x1586A 0x98E2 # <CJK>
+0x1586B 0x99AC # <CJK>
+0x1586C 0x9AA8 # <CJK>
+0x1586D 0x9AD8 # <CJK>
+0x1586E 0x9B25 # <CJK>
+0x1586F 0x9B32 # <CJK>
+0x15870 0x9B3C # <CJK>
+0x15871 0x4E7E # <CJK>
+0x15872 0x507A # <CJK>
+0x15873 0x507D # <CJK>
+0x15874 0x505C # <CJK>
+0x15875 0x5047 # <CJK>
+0x15876 0x5043 # <CJK>
+0x15877 0x504C # <CJK>
+0x15878 0x505A # <CJK>
+0x15879 0x5049 # <CJK>
+0x1587A 0x5065 # <CJK>
+0x1587B 0x5076 # <CJK>
+0x1587C 0x504E # <CJK>
+0x1587D 0x5055 # <CJK>
+0x1587E 0x5075 # <CJK>
+0x15921 0x5074 # <CJK>
+0x15922 0x5077 # <CJK>
+0x15923 0x504F # <CJK>
+0x15924 0x500F # <CJK>
+0x15925 0x506F # <CJK>
+0x15926 0x506D # <CJK>
+0x15927 0x515C # <CJK>
+0x15928 0x5195 # <CJK>
+0x15929 0x51F0 # <CJK>
+0x1592A 0x526A # <CJK>
+0x1592B 0x526F # <CJK>
+0x1592C 0x52D2 # <CJK>
+0x1592D 0x52D9 # <CJK>
+0x1592E 0x52D8 # <CJK>
+0x1592F 0x52D5 # <CJK>
+0x15930 0x5310 # <CJK>
+0x15931 0x530F # <CJK>
+0x15932 0x5319 # <CJK>
+0x15933 0x533F # <CJK>
+0x15934 0x5340 # <CJK>
+0x15935 0x533E # <CJK>
+0x15936 0x53C3 # <CJK>
+0x15937 0x66FC # <CJK>
+0x15938 0x5546 # <CJK>
+0x15939 0x556A # <CJK>
+0x1593A 0x5566 # <CJK>
+0x1593B 0x5544 # <CJK>
+0x1593C 0x555E # <CJK>
+0x1593D 0x5561 # <CJK>
+0x1593E 0x5543 # <CJK>
+0x1593F 0x554A # <CJK>
+0x15940 0x5531 # <CJK>
+0x15941 0x5556 # <CJK>
+0x15942 0x554F # <CJK>
+0x15943 0x5555 # <CJK>
+0x15944 0x552F # <CJK>
+0x15945 0x5564 # <CJK>
+0x15946 0x5538 # <CJK>
+0x15947 0x552E # <CJK>
+0x15948 0x555C # <CJK>
+0x15949 0x552C # <CJK>
+0x1594A 0x5563 # <CJK>
+0x1594B 0x5533 # <CJK>
+0x1594C 0x5541 # <CJK>
+0x1594D 0x5557 # <CJK>
+0x1594E 0x5708 # <CJK>
+0x1594F 0x570B # <CJK>
+0x15950 0x5709 # <CJK>
+0x15951 0x57DF # <CJK>
+0x15952 0x5805 # <CJK>
+0x15953 0x580A # <CJK>
+0x15954 0x5806 # <CJK>
+0x15955 0x57E0 # <CJK>
+0x15956 0x57E4 # <CJK>
+0x15957 0x57FA # <CJK>
+0x15958 0x5802 # <CJK>
+0x15959 0x5835 # <CJK>
+0x1595A 0x57F7 # <CJK>
+0x1595B 0x57F9 # <CJK>
+0x1595C 0x5920 # <CJK>
+0x1595D 0x5962 # <CJK>
+0x1595E 0x5A36 # <CJK>
+0x1595F 0x5A41 # <CJK>
+0x15960 0x5A49 # <CJK>
+0x15961 0x5A66 # <CJK>
+0x15962 0x5A6A # <CJK>
+0x15963 0x5A40 # <CJK>
+0x15964 0x5A3C # <CJK>
+0x15965 0x5A62 # <CJK>
+0x15966 0x5A5A # <CJK>
+0x15967 0x5A46 # <CJK>
+0x15968 0x5A4A # <CJK>
+0x15969 0x5B70 # <CJK>
+0x1596A 0x5BC7 # <CJK>
+0x1596B 0x5BC5 # <CJK>
+0x1596C 0x5BC4 # <CJK>
+0x1596D 0x5BC2 # <CJK>
+0x1596E 0x5BBF # <CJK>
+0x1596F 0x5BC6 # <CJK>
+0x15970 0x5C09 # <CJK>
+0x15971 0x5C08 # <CJK>
+0x15972 0x5C07 # <CJK>
+0x15973 0x5C60 # <CJK>
+0x15974 0x5C5C # <CJK>
+0x15975 0x5C5D # <CJK>
+0x15976 0x5D07 # <CJK>
+0x15977 0x5D06 # <CJK>
+0x15978 0x5D0E # <CJK>
+0x15979 0x5D1B # <CJK>
+0x1597A 0x5D16 # <CJK>
+0x1597B 0x5D22 # <CJK>
+0x1597C 0x5D11 # <CJK>
+0x1597D 0x5D29 # <CJK>
+0x1597E 0x5D14 # <CJK>
+0x15A21 0x5D19 # <CJK>
+0x15A22 0x5D24 # <CJK>
+0x15A23 0x5D27 # <CJK>
+0x15A24 0x5D17 # <CJK>
+0x15A25 0x5DE2 # <CJK>
+0x15A26 0x5E38 # <CJK>
+0x15A27 0x5E36 # <CJK>
+0x15A28 0x5E33 # <CJK>
+0x15A29 0x5E37 # <CJK>
+0x15A2A 0x5EB7 # <CJK>
+0x15A2B 0x5EB8 # <CJK>
+0x15A2C 0x5EB6 # <CJK>
+0x15A2D 0x5EB5 # <CJK>
+0x15A2E 0x5EBE # <CJK>
+0x15A2F 0x5F35 # <CJK>
+0x15A30 0x5F37 # <CJK>
+0x15A31 0x5F57 # <CJK>
+0x15A32 0x5F6C # <CJK>
+0x15A33 0x5F69 # <CJK>
+0x15A34 0x5F6B # <CJK>
+0x15A35 0x5F97 # <CJK>
+0x15A36 0x5F99 # <CJK>
+0x15A37 0x5F9E # <CJK>
+0x15A38 0x5F98 # <CJK>
+0x15A39 0x5FA1 # <CJK>
+0x15A3A 0x5FA0 # <CJK>
+0x15A3B 0x5F9C # <CJK>
+0x15A3C 0x607F # <CJK>
+0x15A3D 0x60A3 # <CJK>
+0x15A3E 0x6089 # <CJK>
+0x15A3F 0x60A0 # <CJK>
+0x15A40 0x60A8 # <CJK>
+0x15A41 0x60CB # <CJK>
+0x15A42 0x60B4 # <CJK>
+0x15A43 0x60E6 # <CJK>
+0x15A44 0x60BD # <CJK>
+0x15A45 0x60C5 # <CJK>
+0x15A46 0x60BB # <CJK>
+0x15A47 0x60B5 # <CJK>
+0x15A48 0x60DC # <CJK>
+0x15A49 0x60BC # <CJK>
+0x15A4A 0x60D8 # <CJK>
+0x15A4B 0x60D5 # <CJK>
+0x15A4C 0x60C6 # <CJK>
+0x15A4D 0x60DF # <CJK>
+0x15A4E 0x60B8 # <CJK>
+0x15A4F 0x60DA # <CJK>
+0x15A50 0x60C7 # <CJK>
+0x15A51 0x621A # <CJK>
+0x15A52 0x621B # <CJK>
+0x15A53 0x6248 # <CJK>
+0x15A54 0x63A0 # <CJK>
+0x15A55 0x63A7 # <CJK>
+0x15A56 0x6372 # <CJK>
+0x15A57 0x6396 # <CJK>
+0x15A58 0x63A2 # <CJK>
+0x15A59 0x63A5 # <CJK>
+0x15A5A 0x6377 # <CJK>
+0x15A5B 0x6367 # <CJK>
+0x15A5C 0x6398 # <CJK>
+0x15A5D 0x63AA # <CJK>
+0x15A5E 0x6371 # <CJK>
+0x15A5F 0x63A9 # <CJK>
+0x15A60 0x6389 # <CJK>
+0x15A61 0x6383 # <CJK>
+0x15A62 0x639B # <CJK>
+0x15A63 0x636B # <CJK>
+0x15A64 0x63A8 # <CJK>
+0x15A65 0x6384 # <CJK>
+0x15A66 0x6388 # <CJK>
+0x15A67 0x6399 # <CJK>
+0x15A68 0x63A1 # <CJK>
+0x15A69 0x63AC # <CJK>
+0x15A6A 0x6392 # <CJK>
+0x15A6B 0x638F # <CJK>
+0x15A6C 0x6380 # <CJK>
+0x15A6D 0x637B # <CJK>
+0x15A6E 0x6369 # <CJK>
+0x15A6F 0x6368 # <CJK>
+0x15A70 0x637A # <CJK>
+0x15A71 0x655D # <CJK>
+0x15A72 0x6556 # <CJK>
+0x15A73 0x6551 # <CJK>
+0x15A74 0x6559 # <CJK>
+0x15A75 0x6557 # <CJK>
+0x15A76 0x555F # <CJK>
+0x15A77 0x654F # <CJK>
+0x15A78 0x6558 # <CJK>
+0x15A79 0x6555 # <CJK>
+0x15A7A 0x6554 # <CJK>
+0x15A7B 0x659C # <CJK>
+0x15A7C 0x659B # <CJK>
+0x15A7D 0x65AC # <CJK>
+0x15A7E 0x65CF # <CJK>
+0x15B21 0x65CB # <CJK>
+0x15B22 0x65CC # <CJK>
+0x15B23 0x65CE # <CJK>
+0x15B24 0x665D # <CJK>
+0x15B25 0x665A # <CJK>
+0x15B26 0x6664 # <CJK>
+0x15B27 0x6668 # <CJK>
+0x15B28 0x6666 # <CJK>
+0x15B29 0x665E # <CJK>
+0x15B2A 0x66F9 # <CJK>
+0x15B2B 0x52D7 # <CJK>
+0x15B2C 0x671B # <CJK>
+0x15B2D 0x6881 # <CJK>
+0x15B2E 0x68AF # <CJK>
+0x15B2F 0x68A2 # <CJK>
+0x15B30 0x6893 # <CJK>
+0x15B31 0x68B5 # <CJK>
+0x15B32 0x687F # <CJK>
+0x15B33 0x6876 # <CJK>
+0x15B34 0x68B1 # <CJK>
+0x15B35 0x68A7 # <CJK>
+0x15B36 0x6897 # <CJK>
+0x15B37 0x68B0 # <CJK>
+0x15B38 0x6883 # <CJK>
+0x15B39 0x68C4 # <CJK>
+0x15B3A 0x68AD # <CJK>
+0x15B3B 0x6886 # <CJK>
+0x15B3C 0x6885 # <CJK>
+0x15B3D 0x6894 # <CJK>
+0x15B3E 0x689D # <CJK>
+0x15B3F 0x68A8 # <CJK>
+0x15B40 0x689F # <CJK>
+0x15B41 0x68A1 # <CJK>
+0x15B42 0x6882 # <CJK>
+0x15B43 0x6B32 # <CJK>
+0x15B44 0x6BBA # <CJK>
+0x15B45 0x6BEB # <CJK>
+0x15B46 0x6BEC # <CJK>
+0x15B47 0x6C2B # <CJK>
+0x15B48 0x6D8E # <CJK>
+0x15B49 0x6DBC # <CJK>
+0x15B4A 0x6DF3 # <CJK>
+0x15B4B 0x6DD9 # <CJK>
+0x15B4C 0x6DB2 # <CJK>
+0x15B4D 0x6DE1 # <CJK>
+0x15B4E 0x6DCC # <CJK>
+0x15B4F 0x6DE4 # <CJK>
+0x15B50 0x6DFB # <CJK>
+0x15B51 0x6DFA # <CJK>
+0x15B52 0x6E05 # <CJK>
+0x15B53 0x6DC7 # <CJK>
+0x15B54 0x6DCB # <CJK>
+0x15B55 0x6DAF # <CJK>
+0x15B56 0x6DD1 # <CJK>
+0x15B57 0x6DAE # <CJK>
+0x15B58 0x6DDE # <CJK>
+0x15B59 0x6DF9 # <CJK>
+0x15B5A 0x6DB8 # <CJK>
+0x15B5B 0x6DF7 # <CJK>
+0x15B5C 0x6DF5 # <CJK>
+0x15B5D 0x6DC5 # <CJK>
+0x15B5E 0x6DD2 # <CJK>
+0x15B5F 0x6E1A # <CJK>
+0x15B60 0x6DB5 # <CJK>
+0x15B61 0x6DDA # <CJK>
+0x15B62 0x6DEB # <CJK>
+0x15B63 0x6DD8 # <CJK>
+0x15B64 0x6DEA # <CJK>
+0x15B65 0x6DF1 # <CJK>
+0x15B66 0x6DEE # <CJK>
+0x15B67 0x6DE8 # <CJK>
+0x15B68 0x6DC6 # <CJK>
+0x15B69 0x6DC4 # <CJK>
+0x15B6A 0x6DAA # <CJK>
+0x15B6B 0x6DEC # <CJK>
+0x15B6C 0x6DBF # <CJK>
+0x15B6D 0x6DE6 # <CJK>
+0x15B6E 0x70F9 # <CJK>
+0x15B6F 0x7109 # <CJK>
+0x15B70 0x710A # <CJK>
+0x15B71 0x70FD # <CJK>
+0x15B72 0x70EF # <CJK>
+0x15B73 0x723D # <CJK>
+0x15B74 0x727D # <CJK>
+0x15B75 0x7281 # <CJK>
+0x15B76 0x731C # <CJK>
+0x15B77 0x731B # <CJK>
+0x15B78 0x7316 # <CJK>
+0x15B79 0x7313 # <CJK>
+0x15B7A 0x7319 # <CJK>
+0x15B7B 0x7387 # <CJK>
+0x15B7C 0x7405 # <CJK>
+0x15B7D 0x740A # <CJK>
+0x15B7E 0x7403 # <CJK>
+0x15C21 0x7406 # <CJK>
+0x15C22 0x73FE # <CJK>
+0x15C23 0x740D # <CJK>
+0x15C24 0x74E0 # <CJK>
+0x15C25 0x74F6 # <CJK>
+0x15C26 0x74F7 # <CJK>
+0x15C27 0x751C # <CJK>
+0x15C28 0x7522 # <CJK>
+0x15C29 0x7565 # <CJK>
+0x15C2A 0x7566 # <CJK>
+0x15C2B 0x7562 # <CJK>
+0x15C2C 0x7570 # <CJK>
+0x15C2D 0x758F # <CJK>
+0x15C2E 0x75D4 # <CJK>
+0x15C2F 0x75D5 # <CJK>
+0x15C30 0x75B5 # <CJK>
+0x15C31 0x75CA # <CJK>
+0x15C32 0x75CD # <CJK>
+0x15C33 0x768E # <CJK>
+0x15C34 0x76D4 # <CJK>
+0x15C35 0x76D2 # <CJK>
+0x15C36 0x76DB # <CJK>
+0x15C37 0x7737 # <CJK>
+0x15C38 0x773E # <CJK>
+0x15C39 0x773C # <CJK>
+0x15C3A 0x7736 # <CJK>
+0x15C3B 0x7738 # <CJK>
+0x15C3C 0x773A # <CJK>
+0x15C3D 0x786B # <CJK>
+0x15C3E 0x7843 # <CJK>
+0x15C3F 0x784E # <CJK>
+0x15C40 0x7965 # <CJK>
+0x15C41 0x7968 # <CJK>
+0x15C42 0x796D # <CJK>
+0x15C43 0x79FB # <CJK>
+0x15C44 0x7A92 # <CJK>
+0x15C45 0x7A95 # <CJK>
+0x15C46 0x7B20 # <CJK>
+0x15C47 0x7B28 # <CJK>
+0x15C48 0x7B1B # <CJK>
+0x15C49 0x7B2C # <CJK>
+0x15C4A 0x7B26 # <CJK>
+0x15C4B 0x7B19 # <CJK>
+0x15C4C 0x7B1E # <CJK>
+0x15C4D 0x7B2E # <CJK>
+0x15C4E 0x7C92 # <CJK>
+0x15C4F 0x7C97 # <CJK>
+0x15C50 0x7C95 # <CJK>
+0x15C51 0x7D46 # <CJK>
+0x15C52 0x7D43 # <CJK>
+0x15C53 0x7D71 # <CJK>
+0x15C54 0x7D2E # <CJK>
+0x15C55 0x7D39 # <CJK>
+0x15C56 0x7D3C # <CJK>
+0x15C57 0x7D40 # <CJK>
+0x15C58 0x7D30 # <CJK>
+0x15C59 0x7D33 # <CJK>
+0x15C5A 0x7D44 # <CJK>
+0x15C5B 0x7D2F # <CJK>
+0x15C5C 0x7D42 # <CJK>
+0x15C5D 0x7D32 # <CJK>
+0x15C5E 0x7D31 # <CJK>
+0x15C5F 0x7F3D # <CJK>
+0x15C60 0x7F9E # <CJK>
+0x15C61 0x7F9A # <CJK>
+0x15C62 0x7FCC # <CJK>
+0x15C63 0x7FCE # <CJK>
+0x15C64 0x7FD2 # <CJK>
+0x15C65 0x801C # <CJK>
+0x15C66 0x804A # <CJK>
+0x15C67 0x8046 # <CJK>
+0x15C68 0x812F # <CJK>
+0x15C69 0x8116 # <CJK>
+0x15C6A 0x8123 # <CJK>
+0x15C6B 0x812B # <CJK>
+0x15C6C 0x8129 # <CJK>
+0x15C6D 0x8130 # <CJK>
+0x15C6E 0x8124 # <CJK>
+0x15C6F 0x8202 # <CJK>
+0x15C70 0x8235 # <CJK>
+0x15C71 0x8237 # <CJK>
+0x15C72 0x8236 # <CJK>
+0x15C73 0x8239 # <CJK>
+0x15C74 0x838E # <CJK>
+0x15C75 0x839E # <CJK>
+0x15C76 0x8398 # <CJK>
+0x15C77 0x8378 # <CJK>
+0x15C78 0x83A2 # <CJK>
+0x15C79 0x8396 # <CJK>
+0x15C7A 0x83BD # <CJK>
+0x15C7B 0x83AB # <CJK>
+0x15C7C 0x8392 # <CJK>
+0x15C7D 0x838A # <CJK>
+0x15C7E 0x8393 # <CJK>
+0x15D21 0x8389 # <CJK>
+0x15D22 0x83A0 # <CJK>
+0x15D23 0x8377 # <CJK>
+0x15D24 0x837B # <CJK>
+0x15D25 0x837C # <CJK>
+0x15D26 0x8386 # <CJK>
+0x15D27 0x83A7 # <CJK>
+0x15D28 0x8655 # <CJK>
+0x15D29 0x5F6A # <CJK>
+0x15D2A 0x86C7 # <CJK>
+0x15D2B 0x86C0 # <CJK>
+0x15D2C 0x86B6 # <CJK>
+0x15D2D 0x86C4 # <CJK>
+0x15D2E 0x86B5 # <CJK>
+0x15D2F 0x86C6 # <CJK>
+0x15D30 0x86CB # <CJK>
+0x15D31 0x86B1 # <CJK>
+0x15D32 0x86AF # <CJK>
+0x15D33 0x86C9 # <CJK>
+0x15D34 0x8853 # <CJK>
+0x15D35 0x889E # <CJK>
+0x15D36 0x8888 # <CJK>
+0x15D37 0x88AB # <CJK>
+0x15D38 0x8892 # <CJK>
+0x15D39 0x8896 # <CJK>
+0x15D3A 0x888D # <CJK>
+0x15D3B 0x888B # <CJK>
+0x15D3C 0x8993 # <CJK>
+0x15D3D 0x898F # <CJK>
+0x15D3E 0x8A2A # <CJK>
+0x15D3F 0x8A1D # <CJK>
+0x15D40 0x8A23 # <CJK>
+0x15D41 0x8A25 # <CJK>
+0x15D42 0x8A31 # <CJK>
+0x15D43 0x8A2D # <CJK>
+0x15D44 0x8A1F # <CJK>
+0x15D45 0x8A1B # <CJK>
+0x15D46 0x8A22 # <CJK>
+0x15D47 0x8C49 # <CJK>
+0x15D48 0x8C5A # <CJK>
+0x15D49 0x8CA9 # <CJK>
+0x15D4A 0x8CAC # <CJK>
+0x15D4B 0x8CAB # <CJK>
+0x15D4C 0x8CA8 # <CJK>
+0x15D4D 0x8CAA # <CJK>
+0x15D4E 0x8CA7 # <CJK>
+0x15D4F 0x8D67 # <CJK>
+0x15D50 0x8D66 # <CJK>
+0x15D51 0x8DBE # <CJK>
+0x15D52 0x8DBA # <CJK>
+0x15D53 0x8EDB # <CJK>
+0x15D54 0x8EDF # <CJK>
+0x15D55 0x9019 # <CJK>
+0x15D56 0x900D # <CJK>
+0x15D57 0x901A # <CJK>
+0x15D58 0x9017 # <CJK>
+0x15D59 0x9023 # <CJK>
+0x15D5A 0x901F # <CJK>
+0x15D5B 0x901D # <CJK>
+0x15D5C 0x9010 # <CJK>
+0x15D5D 0x9015 # <CJK>
+0x15D5E 0x901E # <CJK>
+0x15D5F 0x9020 # <CJK>
+0x15D60 0x900F # <CJK>
+0x15D61 0x9022 # <CJK>
+0x15D62 0x9016 # <CJK>
+0x15D63 0x901B # <CJK>
+0x15D64 0x9014 # <CJK>
+0x15D65 0x90E8 # <CJK>
+0x15D66 0x90ED # <CJK>
+0x15D67 0x90FD # <CJK>
+0x15D68 0x9157 # <CJK>
+0x15D69 0x91CE # <CJK>
+0x15D6A 0x91F5 # <CJK>
+0x15D6B 0x91E6 # <CJK>
+0x15D6C 0x91E3 # <CJK>
+0x15D6D 0x91E7 # <CJK>
+0x15D6E 0x91ED # <CJK>
+0x15D6F 0x91E9 # <CJK>
+0x15D70 0x9589 # <CJK>
+0x15D71 0x966A # <CJK>
+0x15D72 0x9675 # <CJK>
+0x15D73 0x9673 # <CJK>
+0x15D74 0x9678 # <CJK>
+0x15D75 0x9670 # <CJK>
+0x15D76 0x9674 # <CJK>
+0x15D77 0x9676 # <CJK>
+0x15D78 0x9677 # <CJK>
+0x15D79 0x966C # <CJK>
+0x15D7A 0x96C0 # <CJK>
+0x15D7B 0x96EA # <CJK>
+0x15D7C 0x96E9 # <CJK>
+0x15D7D 0x7AE0 # <CJK>
+0x15D7E 0x7ADF # <CJK>
+0x15E21 0x9802 # <CJK>
+0x15E22 0x9803 # <CJK>
+0x15E23 0x9B5A # <CJK>
+0x15E24 0x9CE5 # <CJK>
+0x15E25 0x9E75 # <CJK>
+0x15E26 0x9E7F # <CJK>
+0x15E27 0x9EA5 # <CJK>
+0x15E28 0x9EBB # <CJK>
+0x15E29 0x50A2 # <CJK>
+0x15E2A 0x508D # <CJK>
+0x15E2B 0x5085 # <CJK>
+0x15E2C 0x5099 # <CJK>
+0x15E2D 0x5091 # <CJK>
+0x15E2E 0x5080 # <CJK>
+0x15E2F 0x5096 # <CJK>
+0x15E30 0x5098 # <CJK>
+0x15E31 0x509A # <CJK>
+0x15E32 0x6700 # <CJK>
+0x15E33 0x51F1 # <CJK>
+0x15E34 0x5272 # <CJK>
+0x15E35 0x5274 # <CJK>
+0x15E36 0x5275 # <CJK>
+0x15E37 0x5269 # <CJK>
+0x15E38 0x52DE # <CJK>
+0x15E39 0x52DD # <CJK>
+0x15E3A 0x52DB # <CJK>
+0x15E3B 0x535A # <CJK>
+0x15E3C 0x53A5 # <CJK>
+0x15E3D 0x557B # <CJK>
+0x15E3E 0x5580 # <CJK>
+0x15E3F 0x55A7 # <CJK>
+0x15E40 0x557C # <CJK>
+0x15E41 0x558A # <CJK>
+0x15E42 0x559D # <CJK>
+0x15E43 0x5598 # <CJK>
+0x15E44 0x5582 # <CJK>
+0x15E45 0x559C # <CJK>
+0x15E46 0x55AA # <CJK>
+0x15E47 0x5594 # <CJK>
+0x15E48 0x5587 # <CJK>
+0x15E49 0x558B # <CJK>
+0x15E4A 0x5583 # <CJK>
+0x15E4B 0x55B3 # <CJK>
+0x15E4C 0x55AE # <CJK>
+0x15E4D 0x559F # <CJK>
+0x15E4E 0x553E # <CJK>
+0x15E4F 0x55B2 # <CJK>
+0x15E50 0x559A # <CJK>
+0x15E51 0x55BB # <CJK>
+0x15E52 0x55AC # <CJK>
+0x15E53 0x55B1 # <CJK>
+0x15E54 0x557E # <CJK>
+0x15E55 0x5589 # <CJK>
+0x15E56 0x55AB # <CJK>
+0x15E57 0x5599 # <CJK>
+0x15E58 0x570D # <CJK>
+0x15E59 0x582F # <CJK>
+0x15E5A 0x582A # <CJK>
+0x15E5B 0x5834 # <CJK>
+0x15E5C 0x5824 # <CJK>
+0x15E5D 0x5830 # <CJK>
+0x15E5E 0x5831 # <CJK>
+0x15E5F 0x5821 # <CJK>
+0x15E60 0x581D # <CJK>
+0x15E61 0x5820 # <CJK>
+0x15E62 0x58F9 # <CJK>
+0x15E63 0x58FA # <CJK>
+0x15E64 0x5960 # <CJK>
+0x15E65 0x5A77 # <CJK>
+0x15E66 0x5A9A # <CJK>
+0x15E67 0x5A7F # <CJK>
+0x15E68 0x5A92 # <CJK>
+0x15E69 0x5A9B # <CJK>
+0x15E6A 0x5AA7 # <CJK>
+0x15E6B 0x5B73 # <CJK>
+0x15E6C 0x5B71 # <CJK>
+0x15E6D 0x5BD2 # <CJK>
+0x15E6E 0x5BCC # <CJK>
+0x15E6F 0x5BD3 # <CJK>
+0x15E70 0x5BD0 # <CJK>
+0x15E71 0x5C0A # <CJK>
+0x15E72 0x5C0B # <CJK>
+0x15E73 0x5C31 # <CJK>
+0x15E74 0x5D4C # <CJK>
+0x15E75 0x5D50 # <CJK>
+0x15E76 0x5D34 # <CJK>
+0x15E77 0x5D47 # <CJK>
+0x15E78 0x5DFD # <CJK>
+0x15E79 0x5E45 # <CJK>
+0x15E7A 0x5E3D # <CJK>
+0x15E7B 0x5E40 # <CJK>
+0x15E7C 0x5E43 # <CJK>
+0x15E7D 0x5E7E # <CJK>
+0x15E7E 0x5ECA # <CJK>
+0x15F21 0x5EC1 # <CJK>
+0x15F22 0x5EC2 # <CJK>
+0x15F23 0x5EC4 # <CJK>
+0x15F24 0x5F3C # <CJK>
+0x15F25 0x5F6D # <CJK>
+0x15F26 0x5FA9 # <CJK>
+0x15F27 0x5FAA # <CJK>
+0x15F28 0x5FA8 # <CJK>
+0x15F29 0x60D1 # <CJK>
+0x15F2A 0x60E1 # <CJK>
+0x15F2B 0x60B2 # <CJK>
+0x15F2C 0x60B6 # <CJK>
+0x15F2D 0x60E0 # <CJK>
+0x15F2E 0x611C # <CJK>
+0x15F2F 0x6123 # <CJK>
+0x15F30 0x60FA # <CJK>
+0x15F31 0x6115 # <CJK>
+0x15F32 0x60F0 # <CJK>
+0x15F33 0x60FB # <CJK>
+0x15F34 0x60F4 # <CJK>
+0x15F35 0x6168 # <CJK>
+0x15F36 0x60F1 # <CJK>
+0x15F37 0x610E # <CJK>
+0x15F38 0x60F6 # <CJK>
+0x15F39 0x6109 # <CJK>
+0x15F3A 0x6100 # <CJK>
+0x15F3B 0x6112 # <CJK>
+0x15F3C 0x621F # <CJK>
+0x15F3D 0x6249 # <CJK>
+0x15F3E 0x63A3 # <CJK>
+0x15F3F 0x638C # <CJK>
+0x15F40 0x63CF # <CJK>
+0x15F41 0x63C0 # <CJK>
+0x15F42 0x63E9 # <CJK>
+0x15F43 0x63C9 # <CJK>
+0x15F44 0x63C6 # <CJK>
+0x15F45 0x63CD # <CJK>
+0x15F46 0x63D2 # <CJK>
+0x15F47 0x63E3 # <CJK>
+0x15F48 0x63D0 # <CJK>
+0x15F49 0x63E1 # <CJK>
+0x15F4A 0x63D6 # <CJK>
+0x15F4B 0x63ED # <CJK>
+0x15F4C 0x63EE # <CJK>
+0x15F4D 0x6376 # <CJK>
+0x15F4E 0x63F4 # <CJK>
+0x15F4F 0x63EA # <CJK>
+0x15F50 0x63DB # <CJK>
+0x15F51 0x6452 # <CJK>
+0x15F52 0x63DA # <CJK>
+0x15F53 0x63F9 # <CJK>
+0x15F54 0x655E # <CJK>
+0x15F55 0x6566 # <CJK>
+0x15F56 0x6562 # <CJK>
+0x15F57 0x6563 # <CJK>
+0x15F58 0x6591 # <CJK>
+0x15F59 0x6590 # <CJK>
+0x15F5A 0x65AF # <CJK>
+0x15F5B 0x666E # <CJK>
+0x15F5C 0x6670 # <CJK>
+0x15F5D 0x6674 # <CJK>
+0x15F5E 0x6676 # <CJK>
+0x15F5F 0x666F # <CJK>
+0x15F60 0x6691 # <CJK>
+0x15F61 0x667A # <CJK>
+0x15F62 0x667E # <CJK>
+0x15F63 0x6677 # <CJK>
+0x15F64 0x66FE # <CJK>
+0x15F65 0x66FF # <CJK>
+0x15F66 0x671F # <CJK>
+0x15F67 0x671D # <CJK>
+0x15F68 0x68FA # <CJK>
+0x15F69 0x68D5 # <CJK>
+0x15F6A 0x68E0 # <CJK>
+0x15F6B 0x68D8 # <CJK>
+0x15F6C 0x68D7 # <CJK>
+0x15F6D 0x6905 # <CJK>
+0x15F6E 0x68DF # <CJK>
+0x15F6F 0x68F5 # <CJK>
+0x15F70 0x68EE # <CJK>
+0x15F71 0x68E7 # <CJK>
+0x15F72 0x68F9 # <CJK>
+0x15F73 0x68D2 # <CJK>
+0x15F74 0x68F2 # <CJK>
+0x15F75 0x68E3 # <CJK>
+0x15F76 0x68CB # <CJK>
+0x15F77 0x68CD # <CJK>
+0x15F78 0x690D # <CJK>
+0x15F79 0x6912 # <CJK>
+0x15F7A 0x690E # <CJK>
+0x15F7B 0x68C9 # <CJK>
+0x15F7C 0x68DA # <CJK>
+0x15F7D 0x696E # <CJK>
+0x15F7E 0x68FB # <CJK>
+0x16021 0x6B3E # <CJK>
+0x16022 0x6B3A # <CJK>
+0x16023 0x6B3D # <CJK>
+0x16024 0x6B98 # <CJK>
+0x16025 0x6B96 # <CJK>
+0x16026 0x6BBC # <CJK>
+0x16027 0x6BEF # <CJK>
+0x16028 0x6C2E # <CJK>
+0x16029 0x6C2F # <CJK>
+0x1602A 0x6C2C # <CJK>
+0x1602B 0x6E2F # <CJK>
+0x1602C 0x6E38 # <CJK>
+0x1602D 0x6E54 # <CJK>
+0x1602E 0x6E21 # <CJK>
+0x1602F 0x6E32 # <CJK>
+0x16030 0x6E67 # <CJK>
+0x16031 0x6E4A # <CJK>
+0x16032 0x6E20 # <CJK>
+0x16033 0x6E25 # <CJK>
+0x16034 0x6E23 # <CJK>
+0x16035 0x6E1B # <CJK>
+0x16036 0x6E5B # <CJK>
+0x16037 0x6E58 # <CJK>
+0x16038 0x6E24 # <CJK>
+0x16039 0x6E56 # <CJK>
+0x1603A 0x6E6E # <CJK>
+0x1603B 0x6E2D # <CJK>
+0x1603C 0x6E26 # <CJK>
+0x1603D 0x6E6F # <CJK>
+0x1603E 0x6E34 # <CJK>
+0x1603F 0x6E4D # <CJK>
+0x16040 0x6E3A # <CJK>
+0x16041 0x6E2C # <CJK>
+0x16042 0x6E43 # <CJK>
+0x16043 0x6E1D # <CJK>
+0x16044 0x6E3E # <CJK>
+0x16045 0x6ECB # <CJK>
+0x16046 0x6E89 # <CJK>
+0x16047 0x6E19 # <CJK>
+0x16048 0x6E4E # <CJK>
+0x16049 0x6E63 # <CJK>
+0x1604A 0x6E44 # <CJK>
+0x1604B 0x6E72 # <CJK>
+0x1604C 0x6E69 # <CJK>
+0x1604D 0x6E5F # <CJK>
+0x1604E 0x7119 # <CJK>
+0x1604F 0x711A # <CJK>
+0x16050 0x7126 # <CJK>
+0x16051 0x7130 # <CJK>
+0x16052 0x7121 # <CJK>
+0x16053 0x7136 # <CJK>
+0x16054 0x716E # <CJK>
+0x16055 0x711C # <CJK>
+0x16056 0x724C # <CJK>
+0x16057 0x7284 # <CJK>
+0x16058 0x7280 # <CJK>
+0x16059 0x7336 # <CJK>
+0x1605A 0x7325 # <CJK>
+0x1605B 0x7334 # <CJK>
+0x1605C 0x7329 # <CJK>
+0x1605D 0x743A # <CJK>
+0x1605E 0x742A # <CJK>
+0x1605F 0x7433 # <CJK>
+0x16060 0x7422 # <CJK>
+0x16061 0x7425 # <CJK>
+0x16062 0x7435 # <CJK>
+0x16063 0x7436 # <CJK>
+0x16064 0x7434 # <CJK>
+0x16065 0x742F # <CJK>
+0x16066 0x741B # <CJK>
+0x16067 0x7426 # <CJK>
+0x16068 0x7428 # <CJK>
+0x16069 0x7525 # <CJK>
+0x1606A 0x7526 # <CJK>
+0x1606B 0x756B # <CJK>
+0x1606C 0x756A # <CJK>
+0x1606D 0x75E2 # <CJK>
+0x1606E 0x75DB # <CJK>
+0x1606F 0x75E3 # <CJK>
+0x16070 0x75D9 # <CJK>
+0x16071 0x75D8 # <CJK>
+0x16072 0x75DE # <CJK>
+0x16073 0x75E0 # <CJK>
+0x16074 0x767B # <CJK>
+0x16075 0x767C # <CJK>
+0x16076 0x7696 # <CJK>
+0x16077 0x7693 # <CJK>
+0x16078 0x76B4 # <CJK>
+0x16079 0x76DC # <CJK>
+0x1607A 0x774F # <CJK>
+0x1607B 0x77ED # <CJK>
+0x1607C 0x785D # <CJK>
+0x1607D 0x786C # <CJK>
+0x1607E 0x786F # <CJK>
+0x16121 0x7A0D # <CJK>
+0x16122 0x7A08 # <CJK>
+0x16123 0x7A0B # <CJK>
+0x16124 0x7A05 # <CJK>
+0x16125 0x7A00 # <CJK>
+0x16126 0x7A98 # <CJK>
+0x16127 0x7A97 # <CJK>
+0x16128 0x7A96 # <CJK>
+0x16129 0x7AE5 # <CJK>
+0x1612A 0x7AE3 # <CJK>
+0x1612B 0x7B49 # <CJK>
+0x1612C 0x7B56 # <CJK>
+0x1612D 0x7B46 # <CJK>
+0x1612E 0x7B50 # <CJK>
+0x1612F 0x7B52 # <CJK>
+0x16130 0x7B54 # <CJK>
+0x16131 0x7B4D # <CJK>
+0x16132 0x7B4B # <CJK>
+0x16133 0x7B4F # <CJK>
+0x16134 0x7B51 # <CJK>
+0x16135 0x7C9F # <CJK>
+0x16136 0x7CA5 # <CJK>
+0x16137 0x7D5E # <CJK>
+0x16138 0x7D50 # <CJK>
+0x16139 0x7D68 # <CJK>
+0x1613A 0x7D55 # <CJK>
+0x1613B 0x7D2B # <CJK>
+0x1613C 0x7D6E # <CJK>
+0x1613D 0x7D72 # <CJK>
+0x1613E 0x7D61 # <CJK>
+0x1613F 0x7D66 # <CJK>
+0x16140 0x7D62 # <CJK>
+0x16141 0x7D70 # <CJK>
+0x16142 0x7D73 # <CJK>
+0x16143 0x5584 # <CJK>
+0x16144 0x7FD4 # <CJK>
+0x16145 0x7FD5 # <CJK>
+0x16146 0x800B # <CJK>
+0x16147 0x8052 # <CJK>
+0x16148 0x8085 # <CJK>
+0x16149 0x8155 # <CJK>
+0x1614A 0x8154 # <CJK>
+0x1614B 0x814B # <CJK>
+0x1614C 0x8151 # <CJK>
+0x1614D 0x814E # <CJK>
+0x1614E 0x8139 # <CJK>
+0x1614F 0x8146 # <CJK>
+0x16150 0x813E # <CJK>
+0x16151 0x814C # <CJK>
+0x16152 0x8153 # <CJK>
+0x16153 0x8174 # <CJK>
+0x16154 0x8212 # <CJK>
+0x16155 0x821C # <CJK>
+0x16156 0x83E9 # <CJK>
+0x16157 0x8403 # <CJK>
+0x16158 0x83F8 # <CJK>
+0x16159 0x840D # <CJK>
+0x1615A 0x83E0 # <CJK>
+0x1615B 0x83C5 # <CJK>
+0x1615C 0x840B # <CJK>
+0x1615D 0x83C1 # <CJK>
+0x1615E 0x83EF # <CJK>
+0x1615F 0x83F1 # <CJK>
+0x16160 0x83F4 # <CJK>
+0x16161 0x8457 # <CJK>
+0x16162 0x840A # <CJK>
+0x16163 0x83F0 # <CJK>
+0x16164 0x840C # <CJK>
+0x16165 0x83CC # <CJK>
+0x16166 0x83FD # <CJK>
+0x16167 0x83F2 # <CJK>
+0x16168 0x83CA # <CJK>
+0x16169 0x8438 # <CJK>
+0x1616A 0x840E # <CJK>
+0x1616B 0x8404 # <CJK>
+0x1616C 0x83DC # <CJK>
+0x1616D 0x8407 # <CJK>
+0x1616E 0x83D4 # <CJK>
+0x1616F 0x83DF # <CJK>
+0x16170 0x865B # <CJK>
+0x16171 0x86DF # <CJK>
+0x16172 0x86D9 # <CJK>
+0x16173 0x86ED # <CJK>
+0x16174 0x86D4 # <CJK>
+0x16175 0x86DB # <CJK>
+0x16176 0x86E4 # <CJK>
+0x16177 0x86D0 # <CJK>
+0x16178 0x86DE # <CJK>
+0x16179 0x8857 # <CJK>
+0x1617A 0x88C1 # <CJK>
+0x1617B 0x88C2 # <CJK>
+0x1617C 0x88B1 # <CJK>
+0x1617D 0x8983 # <CJK>
+0x1617E 0x8996 # <CJK>
+0x16221 0x8A3B # <CJK>
+0x16222 0x8A60 # <CJK>
+0x16223 0x8A55 # <CJK>
+0x16224 0x8A5E # <CJK>
+0x16225 0x8A3C # <CJK>
+0x16226 0x8A41 # <CJK>
+0x16227 0x8A54 # <CJK>
+0x16228 0x8A5B # <CJK>
+0x16229 0x8A50 # <CJK>
+0x1622A 0x8A46 # <CJK>
+0x1622B 0x8A34 # <CJK>
+0x1622C 0x8A3A # <CJK>
+0x1622D 0x8A36 # <CJK>
+0x1622E 0x8A56 # <CJK>
+0x1622F 0x8C61 # <CJK>
+0x16230 0x8C82 # <CJK>
+0x16231 0x8CAF # <CJK>
+0x16232 0x8CBC # <CJK>
+0x16233 0x8CB3 # <CJK>
+0x16234 0x8CBD # <CJK>
+0x16235 0x8CC1 # <CJK>
+0x16236 0x8CBB # <CJK>
+0x16237 0x8CC0 # <CJK>
+0x16238 0x8CB4 # <CJK>
+0x16239 0x8CB7 # <CJK>
+0x1623A 0x8CB6 # <CJK>
+0x1623B 0x8CBF # <CJK>
+0x1623C 0x8CB8 # <CJK>
+0x1623D 0x8D8A # <CJK>
+0x1623E 0x8D85 # <CJK>
+0x1623F 0x8D81 # <CJK>
+0x16240 0x8DCE # <CJK>
+0x16241 0x8DDD # <CJK>
+0x16242 0x8DCB # <CJK>
+0x16243 0x8DDA # <CJK>
+0x16244 0x8DD1 # <CJK>
+0x16245 0x8DCC # <CJK>
+0x16246 0x8DDB # <CJK>
+0x16247 0x8DC6 # <CJK>
+0x16248 0x8EFB # <CJK>
+0x16249 0x8EF8 # <CJK>
+0x1624A 0x8EFC # <CJK>
+0x1624B 0x8F9C # <CJK>
+0x1624C 0x902E # <CJK>
+0x1624D 0x9035 # <CJK>
+0x1624E 0x9031 # <CJK>
+0x1624F 0x9038 # <CJK>
+0x16250 0x9032 # <CJK>
+0x16251 0x9036 # <CJK>
+0x16252 0x9102 # <CJK>
+0x16253 0x90F5 # <CJK>
+0x16254 0x9109 # <CJK>
+0x16255 0x90FE # <CJK>
+0x16256 0x9163 # <CJK>
+0x16257 0x9165 # <CJK>
+0x16258 0x91CF # <CJK>
+0x16259 0x9214 # <CJK>
+0x1625A 0x9215 # <CJK>
+0x1625B 0x9223 # <CJK>
+0x1625C 0x9209 # <CJK>
+0x1625D 0x921E # <CJK>
+0x1625E 0x920D # <CJK>
+0x1625F 0x9210 # <CJK>
+0x16260 0x9207 # <CJK>
+0x16261 0x9211 # <CJK>
+0x16262 0x9594 # <CJK>
+0x16263 0x958F # <CJK>
+0x16264 0x958B # <CJK>
+0x16265 0x9591 # <CJK>
+0x16266 0x9593 # <CJK>
+0x16267 0x9592 # <CJK>
+0x16268 0x958E # <CJK>
+0x16269 0x968A # <CJK>
+0x1626A 0x968E # <CJK>
+0x1626B 0x968B # <CJK>
+0x1626C 0x967D # <CJK>
+0x1626D 0x9685 # <CJK>
+0x1626E 0x9686 # <CJK>
+0x1626F 0x968D # <CJK>
+0x16270 0x9672 # <CJK>
+0x16271 0x9684 # <CJK>
+0x16272 0x96C1 # <CJK>
+0x16273 0x96C5 # <CJK>
+0x16274 0x96C4 # <CJK>
+0x16275 0x96C6 # <CJK>
+0x16276 0x96C7 # <CJK>
+0x16277 0x96EF # <CJK>
+0x16278 0x96F2 # <CJK>
+0x16279 0x97CC # <CJK>
+0x1627A 0x9805 # <CJK>
+0x1627B 0x9806 # <CJK>
+0x1627C 0x9808 # <CJK>
+0x1627D 0x98E7 # <CJK>
+0x1627E 0x98EA # <CJK>
+0x16321 0x98EF # <CJK>
+0x16322 0x98E9 # <CJK>
+0x16323 0x98F2 # <CJK>
+0x16324 0x98ED # <CJK>
+0x16325 0x99AE # <CJK>
+0x16326 0x99AD # <CJK>
+0x16327 0x9EC3 # <CJK>
+0x16328 0x9ECD # <CJK>
+0x16329 0x9ED1 # <CJK>
+0x1632A 0x4E82 # <CJK>
+0x1632B 0x50AD # <CJK>
+0x1632C 0x50B5 # <CJK>
+0x1632D 0x50B2 # <CJK>
+0x1632E 0x50B3 # <CJK>
+0x1632F 0x50C5 # <CJK>
+0x16330 0x50BE # <CJK>
+0x16331 0x50AC # <CJK>
+0x16332 0x50B7 # <CJK>
+0x16333 0x50BB # <CJK>
+0x16334 0x50AF # <CJK>
+0x16335 0x50C7 # <CJK>
+0x16336 0x527F # <CJK>
+0x16337 0x5277 # <CJK>
+0x16338 0x527D # <CJK>
+0x16339 0x52DF # <CJK>
+0x1633A 0x52E6 # <CJK>
+0x1633B 0x52E4 # <CJK>
+0x1633C 0x52E2 # <CJK>
+0x1633D 0x52E3 # <CJK>
+0x1633E 0x532F # <CJK>
+0x1633F 0x55DF # <CJK>
+0x16340 0x55E8 # <CJK>
+0x16341 0x55D3 # <CJK>
+0x16342 0x55E6 # <CJK>
+0x16343 0x55CE # <CJK>
+0x16344 0x55DC # <CJK>
+0x16345 0x55C7 # <CJK>
+0x16346 0x55D1 # <CJK>
+0x16347 0x55E3 # <CJK>
+0x16348 0x55E4 # <CJK>
+0x16349 0x55EF # <CJK>
+0x1634A 0x55DA # <CJK>
+0x1634B 0x55E1 # <CJK>
+0x1634C 0x55C5 # <CJK>
+0x1634D 0x55C6 # <CJK>
+0x1634E 0x55E5 # <CJK>
+0x1634F 0x55C9 # <CJK>
+0x16350 0x5712 # <CJK>
+0x16351 0x5713 # <CJK>
+0x16352 0x585E # <CJK>
+0x16353 0x5851 # <CJK>
+0x16354 0x5858 # <CJK>
+0x16355 0x5857 # <CJK>
+0x16356 0x585A # <CJK>
+0x16357 0x5854 # <CJK>
+0x16358 0x586B # <CJK>
+0x16359 0x584C # <CJK>
+0x1635A 0x586D # <CJK>
+0x1635B 0x584A # <CJK>
+0x1635C 0x5862 # <CJK>
+0x1635D 0x5852 # <CJK>
+0x1635E 0x584B # <CJK>
+0x1635F 0x5967 # <CJK>
+0x16360 0x5AC1 # <CJK>
+0x16361 0x5AC9 # <CJK>
+0x16362 0x5ACC # <CJK>
+0x16363 0x5ABE # <CJK>
+0x16364 0x5ABD # <CJK>
+0x16365 0x5ABC # <CJK>
+0x16366 0x5AB3 # <CJK>
+0x16367 0x5AC2 # <CJK>
+0x16368 0x5AB2 # <CJK>
+0x16369 0x5D69 # <CJK>
+0x1636A 0x5D6F # <CJK>
+0x1636B 0x5E4C # <CJK>
+0x1636C 0x5E79 # <CJK>
+0x1636D 0x5EC9 # <CJK>
+0x1636E 0x5EC8 # <CJK>
+0x1636F 0x5F12 # <CJK>
+0x16370 0x5F59 # <CJK>
+0x16371 0x5FAC # <CJK>
+0x16372 0x5FAE # <CJK>
+0x16373 0x611A # <CJK>
+0x16374 0x610F # <CJK>
+0x16375 0x6148 # <CJK>
+0x16376 0x611F # <CJK>
+0x16377 0x60F3 # <CJK>
+0x16378 0x611B # <CJK>
+0x16379 0x60F9 # <CJK>
+0x1637A 0x6101 # <CJK>
+0x1637B 0x6108 # <CJK>
+0x1637C 0x614E # <CJK>
+0x1637D 0x614C # <CJK>
+0x1637E 0x6144 # <CJK>
+0x16421 0x614D # <CJK>
+0x16422 0x613E # <CJK>
+0x16423 0x6134 # <CJK>
+0x16424 0x6127 # <CJK>
+0x16425 0x610D # <CJK>
+0x16426 0x6106 # <CJK>
+0x16427 0x6137 # <CJK>
+0x16428 0x6221 # <CJK>
+0x16429 0x6222 # <CJK>
+0x1642A 0x6413 # <CJK>
+0x1642B 0x643E # <CJK>
+0x1642C 0x641E # <CJK>
+0x1642D 0x642A # <CJK>
+0x1642E 0x642D # <CJK>
+0x1642F 0x643D # <CJK>
+0x16430 0x642C # <CJK>
+0x16431 0x640F # <CJK>
+0x16432 0x641C # <CJK>
+0x16433 0x6414 # <CJK>
+0x16434 0x640D # <CJK>
+0x16435 0x6436 # <CJK>
+0x16436 0x6416 # <CJK>
+0x16437 0x6417 # <CJK>
+0x16438 0x6406 # <CJK>
+0x16439 0x656C # <CJK>
+0x1643A 0x659F # <CJK>
+0x1643B 0x65B0 # <CJK>
+0x1643C 0x6697 # <CJK>
+0x1643D 0x6689 # <CJK>
+0x1643E 0x6687 # <CJK>
+0x1643F 0x6688 # <CJK>
+0x16440 0x6696 # <CJK>
+0x16441 0x6684 # <CJK>
+0x16442 0x6698 # <CJK>
+0x16443 0x668D # <CJK>
+0x16444 0x6703 # <CJK>
+0x16445 0x6994 # <CJK>
+0x16446 0x696D # <CJK>
+0x16447 0x695A # <CJK>
+0x16448 0x6977 # <CJK>
+0x16449 0x6960 # <CJK>
+0x1644A 0x6954 # <CJK>
+0x1644B 0x6975 # <CJK>
+0x1644C 0x6930 # <CJK>
+0x1644D 0x6982 # <CJK>
+0x1644E 0x694A # <CJK>
+0x1644F 0x6968 # <CJK>
+0x16450 0x696B # <CJK>
+0x16451 0x695E # <CJK>
+0x16452 0x6953 # <CJK>
+0x16453 0x6979 # <CJK>
+0x16454 0x6986 # <CJK>
+0x16455 0x695D # <CJK>
+0x16456 0x6963 # <CJK>
+0x16457 0x695B # <CJK>
+0x16458 0x6B47 # <CJK>
+0x16459 0x6B72 # <CJK>
+0x1645A 0x6BC0 # <CJK>
+0x1645B 0x6BBF # <CJK>
+0x1645C 0x6BD3 # <CJK>
+0x1645D 0x6BFD # <CJK>
+0x1645E 0x6EA2 # <CJK>
+0x1645F 0x6EAF # <CJK>
+0x16460 0x6ED3 # <CJK>
+0x16461 0x6EB6 # <CJK>
+0x16462 0x6EC2 # <CJK>
+0x16463 0x6E90 # <CJK>
+0x16464 0x6E9D # <CJK>
+0x16465 0x6EC7 # <CJK>
+0x16466 0x6EC5 # <CJK>
+0x16467 0x6EA5 # <CJK>
+0x16468 0x6E98 # <CJK>
+0x16469 0x6EBC # <CJK>
+0x1646A 0x6EBA # <CJK>
+0x1646B 0x6EAB # <CJK>
+0x1646C 0x6ED1 # <CJK>
+0x1646D 0x6E96 # <CJK>
+0x1646E 0x6E9C # <CJK>
+0x1646F 0x6EC4 # <CJK>
+0x16470 0x6ED4 # <CJK>
+0x16471 0x6EAA # <CJK>
+0x16472 0x6EA7 # <CJK>
+0x16473 0x6EB4 # <CJK>
+0x16474 0x714E # <CJK>
+0x16475 0x7159 # <CJK>
+0x16476 0x7169 # <CJK>
+0x16477 0x7164 # <CJK>
+0x16478 0x7149 # <CJK>
+0x16479 0x7167 # <CJK>
+0x1647A 0x715C # <CJK>
+0x1647B 0x716C # <CJK>
+0x1647C 0x7166 # <CJK>
+0x1647D 0x714C # <CJK>
+0x1647E 0x7165 # <CJK>
+0x16521 0x715E # <CJK>
+0x16522 0x7146 # <CJK>
+0x16523 0x7168 # <CJK>
+0x16524 0x7156 # <CJK>
+0x16525 0x723A # <CJK>
+0x16526 0x7252 # <CJK>
+0x16527 0x7337 # <CJK>
+0x16528 0x7345 # <CJK>
+0x16529 0x733F # <CJK>
+0x1652A 0x733E # <CJK>
+0x1652B 0x746F # <CJK>
+0x1652C 0x745A # <CJK>
+0x1652D 0x7455 # <CJK>
+0x1652E 0x745F # <CJK>
+0x1652F 0x745E # <CJK>
+0x16530 0x7441 # <CJK>
+0x16531 0x743F # <CJK>
+0x16532 0x7459 # <CJK>
+0x16533 0x745B # <CJK>
+0x16534 0x745C # <CJK>
+0x16535 0x7576 # <CJK>
+0x16536 0x7578 # <CJK>
+0x16537 0x7600 # <CJK>
+0x16538 0x75F0 # <CJK>
+0x16539 0x7601 # <CJK>
+0x1653A 0x75F2 # <CJK>
+0x1653B 0x75F1 # <CJK>
+0x1653C 0x75FA # <CJK>
+0x1653D 0x75FF # <CJK>
+0x1653E 0x75F4 # <CJK>
+0x1653F 0x75F3 # <CJK>
+0x16540 0x76DE # <CJK>
+0x16541 0x76DF # <CJK>
+0x16542 0x775B # <CJK>
+0x16543 0x776B # <CJK>
+0x16544 0x7766 # <CJK>
+0x16545 0x775E # <CJK>
+0x16546 0x7763 # <CJK>
+0x16547 0x7779 # <CJK>
+0x16548 0x776A # <CJK>
+0x16549 0x776C # <CJK>
+0x1654A 0x775C # <CJK>
+0x1654B 0x7765 # <CJK>
+0x1654C 0x7768 # <CJK>
+0x1654D 0x7762 # <CJK>
+0x1654E 0x77EE # <CJK>
+0x1654F 0x788E # <CJK>
+0x16550 0x78B0 # <CJK>
+0x16551 0x7897 # <CJK>
+0x16552 0x7898 # <CJK>
+0x16553 0x788C # <CJK>
+0x16554 0x7889 # <CJK>
+0x16555 0x787C # <CJK>
+0x16556 0x7891 # <CJK>
+0x16557 0x7893 # <CJK>
+0x16558 0x787F # <CJK>
+0x16559 0x797A # <CJK>
+0x1655A 0x797F # <CJK>
+0x1655B 0x7981 # <CJK>
+0x1655C 0x842C # <CJK>
+0x1655D 0x79BD # <CJK>
+0x1655E 0x7A1C # <CJK>
+0x1655F 0x7A1A # <CJK>
+0x16560 0x7A20 # <CJK>
+0x16561 0x7A14 # <CJK>
+0x16562 0x7A1F # <CJK>
+0x16563 0x7A1E # <CJK>
+0x16564 0x7A9F # <CJK>
+0x16565 0x7AA0 # <CJK>
+0x16566 0x7B77 # <CJK>
+0x16567 0x7BC0 # <CJK>
+0x16568 0x7B60 # <CJK>
+0x16569 0x7B6E # <CJK>
+0x1656A 0x7B67 # <CJK>
+0x1656B 0x7CB1 # <CJK>
+0x1656C 0x7CB3 # <CJK>
+0x1656D 0x7CB5 # <CJK>
+0x1656E 0x7D93 # <CJK>
+0x1656F 0x7D79 # <CJK>
+0x16570 0x7D91 # <CJK>
+0x16571 0x7D81 # <CJK>
+0x16572 0x7D8F # <CJK>
+0x16573 0x7D5B # <CJK>
+0x16574 0x7F6E # <CJK>
+0x16575 0x7F69 # <CJK>
+0x16576 0x7F6A # <CJK>
+0x16577 0x7F72 # <CJK>
+0x16578 0x7FA9 # <CJK>
+0x16579 0x7FA8 # <CJK>
+0x1657A 0x7FA4 # <CJK>
+0x1657B 0x8056 # <CJK>
+0x1657C 0x8058 # <CJK>
+0x1657D 0x8086 # <CJK>
+0x1657E 0x8084 # <CJK>
+0x16621 0x8171 # <CJK>
+0x16622 0x8170 # <CJK>
+0x16623 0x8178 # <CJK>
+0x16624 0x8165 # <CJK>
+0x16625 0x816E # <CJK>
+0x16626 0x8173 # <CJK>
+0x16627 0x816B # <CJK>
+0x16628 0x8179 # <CJK>
+0x16629 0x817A # <CJK>
+0x1662A 0x8166 # <CJK>
+0x1662B 0x8205 # <CJK>
+0x1662C 0x8247 # <CJK>
+0x1662D 0x8482 # <CJK>
+0x1662E 0x8477 # <CJK>
+0x1662F 0x843D # <CJK>
+0x16630 0x8431 # <CJK>
+0x16631 0x8475 # <CJK>
+0x16632 0x8466 # <CJK>
+0x16633 0x846B # <CJK>
+0x16634 0x8449 # <CJK>
+0x16635 0x846C # <CJK>
+0x16636 0x845B # <CJK>
+0x16637 0x843C # <CJK>
+0x16638 0x8435 # <CJK>
+0x16639 0x8461 # <CJK>
+0x1663A 0x8463 # <CJK>
+0x1663B 0x8469 # <CJK>
+0x1663C 0x846D # <CJK>
+0x1663D 0x8446 # <CJK>
+0x1663E 0x865E # <CJK>
+0x1663F 0x865C # <CJK>
+0x16640 0x865F # <CJK>
+0x16641 0x86F9 # <CJK>
+0x16642 0x8713 # <CJK>
+0x16643 0x8708 # <CJK>
+0x16644 0x8707 # <CJK>
+0x16645 0x8700 # <CJK>
+0x16646 0x86FE # <CJK>
+0x16647 0x86FB # <CJK>
+0x16648 0x8702 # <CJK>
+0x16649 0x8703 # <CJK>
+0x1664A 0x8706 # <CJK>
+0x1664B 0x870A # <CJK>
+0x1664C 0x8859 # <CJK>
+0x1664D 0x88DF # <CJK>
+0x1664E 0x88D4 # <CJK>
+0x1664F 0x88D9 # <CJK>
+0x16650 0x88DC # <CJK>
+0x16651 0x88D8 # <CJK>
+0x16652 0x88DD # <CJK>
+0x16653 0x88E1 # <CJK>
+0x16654 0x88CA # <CJK>
+0x16655 0x88D5 # <CJK>
+0x16656 0x88D2 # <CJK>
+0x16657 0x899C # <CJK>
+0x16658 0x89E3 # <CJK>
+0x16659 0x8A6B # <CJK>
+0x1665A 0x8A72 # <CJK>
+0x1665B 0x8A73 # <CJK>
+0x1665C 0x8A66 # <CJK>
+0x1665D 0x8A69 # <CJK>
+0x1665E 0x8A70 # <CJK>
+0x1665F 0x8A87 # <CJK>
+0x16660 0x8A7C # <CJK>
+0x16661 0x8A63 # <CJK>
+0x16662 0x8AA0 # <CJK>
+0x16663 0x8A71 # <CJK>
+0x16664 0x8A85 # <CJK>
+0x16665 0x8A6D # <CJK>
+0x16666 0x8A62 # <CJK>
+0x16667 0x8A6E # <CJK>
+0x16668 0x8A6C # <CJK>
+0x16669 0x8A79 # <CJK>
+0x1666A 0x8A7B # <CJK>
+0x1666B 0x8A3E # <CJK>
+0x1666C 0x8A68 # <CJK>
+0x1666D 0x8C62 # <CJK>
+0x1666E 0x8C8A # <CJK>
+0x1666F 0x8C89 # <CJK>
+0x16670 0x8CCA # <CJK>
+0x16671 0x8CC7 # <CJK>
+0x16672 0x8CC8 # <CJK>
+0x16673 0x8CC4 # <CJK>
+0x16674 0x8CB2 # <CJK>
+0x16675 0x8CC3 # <CJK>
+0x16676 0x8CC2 # <CJK>
+0x16677 0x8CC5 # <CJK>
+0x16678 0x8DE1 # <CJK>
+0x16679 0x8DDF # <CJK>
+0x1667A 0x8DE8 # <CJK>
+0x1667B 0x8DEF # <CJK>
+0x1667C 0x8DF3 # <CJK>
+0x1667D 0x8DFA # <CJK>
+0x1667E 0x8DEA # <CJK>
+0x16721 0x8DE4 # <CJK>
+0x16722 0x8DE6 # <CJK>
+0x16723 0x8EB2 # <CJK>
+0x16724 0x8F03 # <CJK>
+0x16725 0x8F09 # <CJK>
+0x16726 0x8EFE # <CJK>
+0x16727 0x8F0A # <CJK>
+0x16728 0x8F9F # <CJK>
+0x16729 0x8FB2 # <CJK>
+0x1672A 0x904B # <CJK>
+0x1672B 0x904A # <CJK>
+0x1672C 0x9053 # <CJK>
+0x1672D 0x9042 # <CJK>
+0x1672E 0x9054 # <CJK>
+0x1672F 0x903C # <CJK>
+0x16730 0x9055 # <CJK>
+0x16731 0x9050 # <CJK>
+0x16732 0x9047 # <CJK>
+0x16733 0x904F # <CJK>
+0x16734 0x904E # <CJK>
+0x16735 0x904D # <CJK>
+0x16736 0x9051 # <CJK>
+0x16737 0x903E # <CJK>
+0x16738 0x9041 # <CJK>
+0x16739 0x9112 # <CJK>
+0x1673A 0x9117 # <CJK>
+0x1673B 0x916C # <CJK>
+0x1673C 0x916A # <CJK>
+0x1673D 0x9169 # <CJK>
+0x1673E 0x91C9 # <CJK>
+0x1673F 0x9237 # <CJK>
+0x16740 0x9257 # <CJK>
+0x16741 0x9238 # <CJK>
+0x16742 0x923D # <CJK>
+0x16743 0x9240 # <CJK>
+0x16744 0x923E # <CJK>
+0x16745 0x925B # <CJK>
+0x16746 0x924B # <CJK>
+0x16747 0x9264 # <CJK>
+0x16748 0x9251 # <CJK>
+0x16749 0x9234 # <CJK>
+0x1674A 0x9249 # <CJK>
+0x1674B 0x924D # <CJK>
+0x1674C 0x9245 # <CJK>
+0x1674D 0x9239 # <CJK>
+0x1674E 0x923F # <CJK>
+0x1674F 0x925A # <CJK>
+0x16750 0x9598 # <CJK>
+0x16751 0x9698 # <CJK>
+0x16752 0x9694 # <CJK>
+0x16753 0x9695 # <CJK>
+0x16754 0x96CD # <CJK>
+0x16755 0x96CB # <CJK>
+0x16756 0x96C9 # <CJK>
+0x16757 0x96CA # <CJK>
+0x16758 0x96F7 # <CJK>
+0x16759 0x96FB # <CJK>
+0x1675A 0x96F9 # <CJK>
+0x1675B 0x96F6 # <CJK>
+0x1675C 0x9756 # <CJK>
+0x1675D 0x9774 # <CJK>
+0x1675E 0x9776 # <CJK>
+0x1675F 0x9810 # <CJK>
+0x16760 0x9811 # <CJK>
+0x16761 0x9813 # <CJK>
+0x16762 0x980A # <CJK>
+0x16763 0x9812 # <CJK>
+0x16764 0x980C # <CJK>
+0x16765 0x98FC # <CJK>
+0x16766 0x98F4 # <CJK>
+0x16767 0x98FD # <CJK>
+0x16768 0x98FE # <CJK>
+0x16769 0x99B3 # <CJK>
+0x1676A 0x99B1 # <CJK>
+0x1676B 0x99B4 # <CJK>
+0x1676C 0x9AE1 # <CJK>
+0x1676D 0x9CE9 # <CJK>
+0x1676E 0x9E82 # <CJK>
+0x1676F 0x9F0E # <CJK>
+0x16770 0x9F13 # <CJK>
+0x16771 0x9F20 # <CJK>
+0x16772 0x50E7 # <CJK>
+0x16773 0x50EE # <CJK>
+0x16774 0x50E5 # <CJK>
+0x16775 0x50D6 # <CJK>
+0x16776 0x50ED # <CJK>
+0x16777 0x50DA # <CJK>
+0x16778 0x50D5 # <CJK>
+0x16779 0x50CF # <CJK>
+0x1677A 0x50D1 # <CJK>
+0x1677B 0x50F1 # <CJK>
+0x1677C 0x50CE # <CJK>
+0x1677D 0x50E9 # <CJK>
+0x1677E 0x5162 # <CJK>
+0x16821 0x51F3 # <CJK>
+0x16822 0x5283 # <CJK>
+0x16823 0x5282 # <CJK>
+0x16824 0x5331 # <CJK>
+0x16825 0x53AD # <CJK>
+0x16826 0x55FE # <CJK>
+0x16827 0x5600 # <CJK>
+0x16828 0x561B # <CJK>
+0x16829 0x5617 # <CJK>
+0x1682A 0x55FD # <CJK>
+0x1682B 0x5614 # <CJK>
+0x1682C 0x5606 # <CJK>
+0x1682D 0x5609 # <CJK>
+0x1682E 0x560D # <CJK>
+0x1682F 0x560E # <CJK>
+0x16830 0x55F7 # <CJK>
+0x16831 0x5616 # <CJK>
+0x16832 0x561F # <CJK>
+0x16833 0x5608 # <CJK>
+0x16834 0x5610 # <CJK>
+0x16835 0x55F6 # <CJK>
+0x16836 0x5718 # <CJK>
+0x16837 0x5716 # <CJK>
+0x16838 0x5875 # <CJK>
+0x16839 0x587E # <CJK>
+0x1683A 0x5883 # <CJK>
+0x1683B 0x5893 # <CJK>
+0x1683C 0x588A # <CJK>
+0x1683D 0x5879 # <CJK>
+0x1683E 0x5885 # <CJK>
+0x1683F 0x587D # <CJK>
+0x16840 0x58FD # <CJK>
+0x16841 0x5925 # <CJK>
+0x16842 0x5922 # <CJK>
+0x16843 0x5924 # <CJK>
+0x16844 0x596A # <CJK>
+0x16845 0x5969 # <CJK>
+0x16846 0x5AE1 # <CJK>
+0x16847 0x5AE6 # <CJK>
+0x16848 0x5AE9 # <CJK>
+0x16849 0x5AD7 # <CJK>
+0x1684A 0x5AD6 # <CJK>
+0x1684B 0x5AD8 # <CJK>
+0x1684C 0x5AE3 # <CJK>
+0x1684D 0x5B75 # <CJK>
+0x1684E 0x5BDE # <CJK>
+0x1684F 0x5BE7 # <CJK>
+0x16850 0x5BE1 # <CJK>
+0x16851 0x5BE5 # <CJK>
+0x16852 0x5BE6 # <CJK>
+0x16853 0x5BE8 # <CJK>
+0x16854 0x5BE2 # <CJK>
+0x16855 0x5BE4 # <CJK>
+0x16856 0x5BDF # <CJK>
+0x16857 0x5C0D # <CJK>
+0x16858 0x5C62 # <CJK>
+0x16859 0x5D84 # <CJK>
+0x1685A 0x5D87 # <CJK>
+0x1685B 0x5E5B # <CJK>
+0x1685C 0x5E63 # <CJK>
+0x1685D 0x5E55 # <CJK>
+0x1685E 0x5E57 # <CJK>
+0x1685F 0x5E54 # <CJK>
+0x16860 0x5ED3 # <CJK>
+0x16861 0x5ED6 # <CJK>
+0x16862 0x5F0A # <CJK>
+0x16863 0x5F46 # <CJK>
+0x16864 0x5F70 # <CJK>
+0x16865 0x5FB9 # <CJK>
+0x16866 0x6147 # <CJK>
+0x16867 0x613F # <CJK>
+0x16868 0x614B # <CJK>
+0x16869 0x6177 # <CJK>
+0x1686A 0x6162 # <CJK>
+0x1686B 0x6163 # <CJK>
+0x1686C 0x615F # <CJK>
+0x1686D 0x615A # <CJK>
+0x1686E 0x6158 # <CJK>
+0x1686F 0x6175 # <CJK>
+0x16870 0x622A # <CJK>
+0x16871 0x6487 # <CJK>
+0x16872 0x6458 # <CJK>
+0x16873 0x6454 # <CJK>
+0x16874 0x64A4 # <CJK>
+0x16875 0x6478 # <CJK>
+0x16876 0x645F # <CJK>
+0x16877 0x647A # <CJK>
+0x16878 0x6451 # <CJK>
+0x16879 0x6467 # <CJK>
+0x1687A 0x6434 # <CJK>
+0x1687B 0x646D # <CJK>
+0x1687C 0x647B # <CJK>
+0x1687D 0x6572 # <CJK>
+0x1687E 0x65A1 # <CJK>
+0x16921 0x65D7 # <CJK>
+0x16922 0x65D6 # <CJK>
+0x16923 0x66A2 # <CJK>
+0x16924 0x66A8 # <CJK>
+0x16925 0x669D # <CJK>
+0x16926 0x699C # <CJK>
+0x16927 0x69A8 # <CJK>
+0x16928 0x6995 # <CJK>
+0x16929 0x69C1 # <CJK>
+0x1692A 0x69AE # <CJK>
+0x1692B 0x69D3 # <CJK>
+0x1692C 0x69CB # <CJK>
+0x1692D 0x699B # <CJK>
+0x1692E 0x69B7 # <CJK>
+0x1692F 0x69BB # <CJK>
+0x16930 0x69AB # <CJK>
+0x16931 0x69B4 # <CJK>
+0x16932 0x69D0 # <CJK>
+0x16933 0x69CD # <CJK>
+0x16934 0x69AD # <CJK>
+0x16935 0x69CC # <CJK>
+0x16936 0x69A6 # <CJK>
+0x16937 0x69C3 # <CJK>
+0x16938 0x69A3 # <CJK>
+0x16939 0x6B49 # <CJK>
+0x1693A 0x6B4C # <CJK>
+0x1693B 0x6C33 # <CJK>
+0x1693C 0x6F33 # <CJK>
+0x1693D 0x6F14 # <CJK>
+0x1693E 0x6EFE # <CJK>
+0x1693F 0x6F13 # <CJK>
+0x16940 0x6EF4 # <CJK>
+0x16941 0x6F29 # <CJK>
+0x16942 0x6F3E # <CJK>
+0x16943 0x6F20 # <CJK>
+0x16944 0x6F2C # <CJK>
+0x16945 0x6F0F # <CJK>
+0x16946 0x6F02 # <CJK>
+0x16947 0x6F22 # <CJK>
+0x16948 0x6EFF # <CJK>
+0x16949 0x6EEF # <CJK>
+0x1694A 0x6F06 # <CJK>
+0x1694B 0x6F31 # <CJK>
+0x1694C 0x6F38 # <CJK>
+0x1694D 0x6F32 # <CJK>
+0x1694E 0x6F23 # <CJK>
+0x1694F 0x6F15 # <CJK>
+0x16950 0x6F2B # <CJK>
+0x16951 0x6F2F # <CJK>
+0x16952 0x6F88 # <CJK>
+0x16953 0x6F2A # <CJK>
+0x16954 0x6EEC # <CJK>
+0x16955 0x6F01 # <CJK>
+0x16956 0x6EF2 # <CJK>
+0x16957 0x6ECC # <CJK>
+0x16958 0x6EF7 # <CJK>
+0x16959 0x7194 # <CJK>
+0x1695A 0x7199 # <CJK>
+0x1695B 0x717D # <CJK>
+0x1695C 0x718A # <CJK>
+0x1695D 0x7184 # <CJK>
+0x1695E 0x7192 # <CJK>
+0x1695F 0x723E # <CJK>
+0x16960 0x7292 # <CJK>
+0x16961 0x7296 # <CJK>
+0x16962 0x7344 # <CJK>
+0x16963 0x7350 # <CJK>
+0x16964 0x7464 # <CJK>
+0x16965 0x7463 # <CJK>
+0x16966 0x746A # <CJK>
+0x16967 0x7470 # <CJK>
+0x16968 0x746D # <CJK>
+0x16969 0x7504 # <CJK>
+0x1696A 0x7591 # <CJK>
+0x1696B 0x7627 # <CJK>
+0x1696C 0x760D # <CJK>
+0x1696D 0x760B # <CJK>
+0x1696E 0x7609 # <CJK>
+0x1696F 0x7613 # <CJK>
+0x16970 0x76E1 # <CJK>
+0x16971 0x76E3 # <CJK>
+0x16972 0x7784 # <CJK>
+0x16973 0x777D # <CJK>
+0x16974 0x777F # <CJK>
+0x16975 0x7761 # <CJK>
+0x16976 0x78C1 # <CJK>
+0x16977 0x789F # <CJK>
+0x16978 0x78A7 # <CJK>
+0x16979 0x78B3 # <CJK>
+0x1697A 0x78A9 # <CJK>
+0x1697B 0x78A3 # <CJK>
+0x1697C 0x798E # <CJK>
+0x1697D 0x798F # <CJK>
+0x1697E 0x798D # <CJK>
+0x16A21 0x7A2E # <CJK>
+0x16A22 0x7A31 # <CJK>
+0x16A23 0x7AAA # <CJK>
+0x16A24 0x7AA9 # <CJK>
+0x16A25 0x7AED # <CJK>
+0x16A26 0x7AEF # <CJK>
+0x16A27 0x7BA1 # <CJK>
+0x16A28 0x7B95 # <CJK>
+0x16A29 0x7B8B # <CJK>
+0x16A2A 0x7B75 # <CJK>
+0x16A2B 0x7B97 # <CJK>
+0x16A2C 0x7B9D # <CJK>
+0x16A2D 0x7B94 # <CJK>
+0x16A2E 0x7B8F # <CJK>
+0x16A2F 0x7BB8 # <CJK>
+0x16A30 0x7B87 # <CJK>
+0x16A31 0x7B84 # <CJK>
+0x16A32 0x7CB9 # <CJK>
+0x16A33 0x7CBD # <CJK>
+0x16A34 0x7CBE # <CJK>
+0x16A35 0x7DBB # <CJK>
+0x16A36 0x7DB0 # <CJK>
+0x16A37 0x7D9C # <CJK>
+0x16A38 0x7DBD # <CJK>
+0x16A39 0x7DBE # <CJK>
+0x16A3A 0x7DA0 # <CJK>
+0x16A3B 0x7DCA # <CJK>
+0x16A3C 0x7DB4 # <CJK>
+0x16A3D 0x7DB2 # <CJK>
+0x16A3E 0x7DB1 # <CJK>
+0x16A3F 0x7DBA # <CJK>
+0x16A40 0x7DA2 # <CJK>
+0x16A41 0x7DBF # <CJK>
+0x16A42 0x7DB5 # <CJK>
+0x16A43 0x7DB8 # <CJK>
+0x16A44 0x7DAD # <CJK>
+0x16A45 0x7DD2 # <CJK>
+0x16A46 0x7DC7 # <CJK>
+0x16A47 0x7DAC # <CJK>
+0x16A48 0x7F70 # <CJK>
+0x16A49 0x7FE0 # <CJK>
+0x16A4A 0x7FE1 # <CJK>
+0x16A4B 0x7FDF # <CJK>
+0x16A4C 0x805E # <CJK>
+0x16A4D 0x805A # <CJK>
+0x16A4E 0x8087 # <CJK>
+0x16A4F 0x8150 # <CJK>
+0x16A50 0x8180 # <CJK>
+0x16A51 0x818F # <CJK>
+0x16A52 0x8188 # <CJK>
+0x16A53 0x818A # <CJK>
+0x16A54 0x817F # <CJK>
+0x16A55 0x8182 # <CJK>
+0x16A56 0x81E7 # <CJK>
+0x16A57 0x81FA # <CJK>
+0x16A58 0x8207 # <CJK>
+0x16A59 0x8214 # <CJK>
+0x16A5A 0x821E # <CJK>
+0x16A5B 0x824B # <CJK>
+0x16A5C 0x84C9 # <CJK>
+0x16A5D 0x84BF # <CJK>
+0x16A5E 0x84C6 # <CJK>
+0x16A5F 0x84C4 # <CJK>
+0x16A60 0x8499 # <CJK>
+0x16A61 0x849E # <CJK>
+0x16A62 0x84B2 # <CJK>
+0x16A63 0x849C # <CJK>
+0x16A64 0x84CB # <CJK>
+0x16A65 0x84B8 # <CJK>
+0x16A66 0x84C0 # <CJK>
+0x16A67 0x84D3 # <CJK>
+0x16A68 0x8490 # <CJK>
+0x16A69 0x84BC # <CJK>
+0x16A6A 0x84D1 # <CJK>
+0x16A6B 0x84CA # <CJK>
+0x16A6C 0x873F # <CJK>
+0x16A6D 0x871C # <CJK>
+0x16A6E 0x873B # <CJK>
+0x16A6F 0x8722 # <CJK>
+0x16A70 0x8725 # <CJK>
+0x16A71 0x8734 # <CJK>
+0x16A72 0x8718 # <CJK>
+0x16A73 0x8755 # <CJK>
+0x16A74 0x8737 # <CJK>
+0x16A75 0x8729 # <CJK>
+0x16A76 0x88F3 # <CJK>
+0x16A77 0x8902 # <CJK>
+0x16A78 0x88F4 # <CJK>
+0x16A79 0x88F9 # <CJK>
+0x16A7A 0x88F8 # <CJK>
+0x16A7B 0x88FD # <CJK>
+0x16A7C 0x88E8 # <CJK>
+0x16A7D 0x891A # <CJK>
+0x16A7E 0x88EF # <CJK>
+0x16B21 0x8AA6 # <CJK>
+0x16B22 0x8A8C # <CJK>
+0x16B23 0x8A9E # <CJK>
+0x16B24 0x8AA3 # <CJK>
+0x16B25 0x8A8D # <CJK>
+0x16B26 0x8AA1 # <CJK>
+0x16B27 0x8A93 # <CJK>
+0x16B28 0x8AA4 # <CJK>
+0x16B29 0x8AAA # <CJK>
+0x16B2A 0x8AA5 # <CJK>
+0x16B2B 0x8AA8 # <CJK>
+0x16B2C 0x8A98 # <CJK>
+0x16B2D 0x8A91 # <CJK>
+0x16B2E 0x8A9A # <CJK>
+0x16B2F 0x8AA7 # <CJK>
+0x16B30 0x8C6A # <CJK>
+0x16B31 0x8C8D # <CJK>
+0x16B32 0x8C8C # <CJK>
+0x16B33 0x8CD3 # <CJK>
+0x16B34 0x8CD1 # <CJK>
+0x16B35 0x8CD2 # <CJK>
+0x16B36 0x8D6B # <CJK>
+0x16B37 0x8D99 # <CJK>
+0x16B38 0x8D95 # <CJK>
+0x16B39 0x8DFC # <CJK>
+0x16B3A 0x8F14 # <CJK>
+0x16B3B 0x8F12 # <CJK>
+0x16B3C 0x8F15 # <CJK>
+0x16B3D 0x8F13 # <CJK>
+0x16B3E 0x8FA3 # <CJK>
+0x16B3F 0x9060 # <CJK>
+0x16B40 0x9058 # <CJK>
+0x16B41 0x905C # <CJK>
+0x16B42 0x9063 # <CJK>
+0x16B43 0x9059 # <CJK>
+0x16B44 0x905E # <CJK>
+0x16B45 0x9062 # <CJK>
+0x16B46 0x905D # <CJK>
+0x16B47 0x905B # <CJK>
+0x16B48 0x9119 # <CJK>
+0x16B49 0x9118 # <CJK>
+0x16B4A 0x911E # <CJK>
+0x16B4B 0x9175 # <CJK>
+0x16B4C 0x9178 # <CJK>
+0x16B4D 0x9177 # <CJK>
+0x16B4E 0x9174 # <CJK>
+0x16B4F 0x9278 # <CJK>
+0x16B50 0x92AC # <CJK>
+0x16B51 0x9280 # <CJK>
+0x16B52 0x9285 # <CJK>
+0x16B53 0x9298 # <CJK>
+0x16B54 0x9296 # <CJK>
+0x16B55 0x927B # <CJK>
+0x16B56 0x9293 # <CJK>
+0x16B57 0x929C # <CJK>
+0x16B58 0x92A8 # <CJK>
+0x16B59 0x927C # <CJK>
+0x16B5A 0x9291 # <CJK>
+0x16B5B 0x95A1 # <CJK>
+0x16B5C 0x95A8 # <CJK>
+0x16B5D 0x95A9 # <CJK>
+0x16B5E 0x95A3 # <CJK>
+0x16B5F 0x95A5 # <CJK>
+0x16B60 0x95A4 # <CJK>
+0x16B61 0x9699 # <CJK>
+0x16B62 0x969C # <CJK>
+0x16B63 0x969B # <CJK>
+0x16B64 0x96CC # <CJK>
+0x16B65 0x96D2 # <CJK>
+0x16B66 0x9700 # <CJK>
+0x16B67 0x977C # <CJK>
+0x16B68 0x9785 # <CJK>
+0x16B69 0x97F6 # <CJK>
+0x16B6A 0x9817 # <CJK>
+0x16B6B 0x9818 # <CJK>
+0x16B6C 0x98AF # <CJK>
+0x16B6D 0x98B1 # <CJK>
+0x16B6E 0x9903 # <CJK>
+0x16B6F 0x9905 # <CJK>
+0x16B70 0x990C # <CJK>
+0x16B71 0x9909 # <CJK>
+0x16B72 0x99C1 # <CJK>
+0x16B73 0x9AAF # <CJK>
+0x16B74 0x9AB0 # <CJK>
+0x16B75 0x9AE6 # <CJK>
+0x16B76 0x9B41 # <CJK>
+0x16B77 0x9B42 # <CJK>
+0x16B78 0x9CF4 # <CJK>
+0x16B79 0x9CF6 # <CJK>
+0x16B7A 0x9CF3 # <CJK>
+0x16B7B 0x9EBC # <CJK>
+0x16B7C 0x9F3B # <CJK>
+0x16B7D 0x9F4A # <CJK>
+0x16B7E 0x5104 # <CJK>
+0x16C21 0x5100 # <CJK>
+0x16C22 0x50FB # <CJK>
+0x16C23 0x50F5 # <CJK>
+0x16C24 0x50F9 # <CJK>
+0x16C25 0x5102 # <CJK>
+0x16C26 0x5108 # <CJK>
+0x16C27 0x5109 # <CJK>
+0x16C28 0x5105 # <CJK>
+0x16C29 0x51DC # <CJK>
+0x16C2A 0x5287 # <CJK>
+0x16C2B 0x5288 # <CJK>
+0x16C2C 0x5289 # <CJK>
+0x16C2D 0x528D # <CJK>
+0x16C2E 0x528A # <CJK>
+0x16C2F 0x52F0 # <CJK>
+0x16C30 0x53B2 # <CJK>
+0x16C31 0x562E # <CJK>
+0x16C32 0x563B # <CJK>
+0x16C33 0x5639 # <CJK>
+0x16C34 0x5632 # <CJK>
+0x16C35 0x563F # <CJK>
+0x16C36 0x5634 # <CJK>
+0x16C37 0x5629 # <CJK>
+0x16C38 0x5653 # <CJK>
+0x16C39 0x564E # <CJK>
+0x16C3A 0x5657 # <CJK>
+0x16C3B 0x5674 # <CJK>
+0x16C3C 0x5636 # <CJK>
+0x16C3D 0x562F # <CJK>
+0x16C3E 0x5630 # <CJK>
+0x16C3F 0x5880 # <CJK>
+0x16C40 0x589F # <CJK>
+0x16C41 0x589E # <CJK>
+0x16C42 0x58B3 # <CJK>
+0x16C43 0x589C # <CJK>
+0x16C44 0x58AE # <CJK>
+0x16C45 0x58A9 # <CJK>
+0x16C46 0x58A6 # <CJK>
+0x16C47 0x596D # <CJK>
+0x16C48 0x5B09 # <CJK>
+0x16C49 0x5AFB # <CJK>
+0x16C4A 0x5B0B # <CJK>
+0x16C4B 0x5AF5 # <CJK>
+0x16C4C 0x5B0C # <CJK>
+0x16C4D 0x5B08 # <CJK>
+0x16C4E 0x5BEE # <CJK>
+0x16C4F 0x5BEC # <CJK>
+0x16C50 0x5BE9 # <CJK>
+0x16C51 0x5BEB # <CJK>
+0x16C52 0x5C64 # <CJK>
+0x16C53 0x5C65 # <CJK>
+0x16C54 0x5D9D # <CJK>
+0x16C55 0x5D94 # <CJK>
+0x16C56 0x5E62 # <CJK>
+0x16C57 0x5E5F # <CJK>
+0x16C58 0x5E61 # <CJK>
+0x16C59 0x5EE2 # <CJK>
+0x16C5A 0x5EDA # <CJK>
+0x16C5B 0x5EDF # <CJK>
+0x16C5C 0x5EDD # <CJK>
+0x16C5D 0x5EE3 # <CJK>
+0x16C5E 0x5EE0 # <CJK>
+0x16C5F 0x5F48 # <CJK>
+0x16C60 0x5F71 # <CJK>
+0x16C61 0x5FB7 # <CJK>
+0x16C62 0x5FB5 # <CJK>
+0x16C63 0x6176 # <CJK>
+0x16C64 0x6167 # <CJK>
+0x16C65 0x616E # <CJK>
+0x16C66 0x615D # <CJK>
+0x16C67 0x6155 # <CJK>
+0x16C68 0x6182 # <CJK>
+0x16C69 0x617C # <CJK>
+0x16C6A 0x6170 # <CJK>
+0x16C6B 0x616B # <CJK>
+0x16C6C 0x617E # <CJK>
+0x16C6D 0x61A7 # <CJK>
+0x16C6E 0x6190 # <CJK>
+0x16C6F 0x61AB # <CJK>
+0x16C70 0x618E # <CJK>
+0x16C71 0x61AC # <CJK>
+0x16C72 0x619A # <CJK>
+0x16C73 0x61A4 # <CJK>
+0x16C74 0x6194 # <CJK>
+0x16C75 0x61AE # <CJK>
+0x16C76 0x622E # <CJK>
+0x16C77 0x6469 # <CJK>
+0x16C78 0x646F # <CJK>
+0x16C79 0x6479 # <CJK>
+0x16C7A 0x649E # <CJK>
+0x16C7B 0x64B2 # <CJK>
+0x16C7C 0x6488 # <CJK>
+0x16C7D 0x6490 # <CJK>
+0x16C7E 0x64B0 # <CJK>
+0x16D21 0x64A5 # <CJK>
+0x16D22 0x6493 # <CJK>
+0x16D23 0x6495 # <CJK>
+0x16D24 0x64A9 # <CJK>
+0x16D25 0x6492 # <CJK>
+0x16D26 0x64AE # <CJK>
+0x16D27 0x64AD # <CJK>
+0x16D28 0x64AB # <CJK>
+0x16D29 0x649A # <CJK>
+0x16D2A 0x64AC # <CJK>
+0x16D2B 0x6499 # <CJK>
+0x16D2C 0x64A2 # <CJK>
+0x16D2D 0x64B3 # <CJK>
+0x16D2E 0x6575 # <CJK>
+0x16D2F 0x6577 # <CJK>
+0x16D30 0x6578 # <CJK>
+0x16D31 0x66AE # <CJK>
+0x16D32 0x66AB # <CJK>
+0x16D33 0x66B4 # <CJK>
+0x16D34 0x66B1 # <CJK>
+0x16D35 0x6A23 # <CJK>
+0x16D36 0x6A1F # <CJK>
+0x16D37 0x69E8 # <CJK>
+0x16D38 0x6A01 # <CJK>
+0x16D39 0x6A1E # <CJK>
+0x16D3A 0x6A19 # <CJK>
+0x16D3B 0x69FD # <CJK>
+0x16D3C 0x6A21 # <CJK>
+0x16D3D 0x6A13 # <CJK>
+0x16D3E 0x6A0A # <CJK>
+0x16D3F 0x69F3 # <CJK>
+0x16D40 0x6A02 # <CJK>
+0x16D41 0x6A05 # <CJK>
+0x16D42 0x69ED # <CJK>
+0x16D43 0x6A11 # <CJK>
+0x16D44 0x6B50 # <CJK>
+0x16D45 0x6B4E # <CJK>
+0x16D46 0x6BA4 # <CJK>
+0x16D47 0x6BC5 # <CJK>
+0x16D48 0x6BC6 # <CJK>
+0x16D49 0x6F3F # <CJK>
+0x16D4A 0x6F7C # <CJK>
+0x16D4B 0x6F84 # <CJK>
+0x16D4C 0x6F51 # <CJK>
+0x16D4D 0x6F66 # <CJK>
+0x16D4E 0x6F54 # <CJK>
+0x16D4F 0x6F86 # <CJK>
+0x16D50 0x6F6D # <CJK>
+0x16D51 0x6F5B # <CJK>
+0x16D52 0x6F78 # <CJK>
+0x16D53 0x6F6E # <CJK>
+0x16D54 0x6F8E # <CJK>
+0x16D55 0x6F7A # <CJK>
+0x16D56 0x6F70 # <CJK>
+0x16D57 0x6F64 # <CJK>
+0x16D58 0x6F97 # <CJK>
+0x16D59 0x6F58 # <CJK>
+0x16D5A 0x6ED5 # <CJK>
+0x16D5B 0x6F6F # <CJK>
+0x16D5C 0x6F60 # <CJK>
+0x16D5D 0x6F5F # <CJK>
+0x16D5E 0x719F # <CJK>
+0x16D5F 0x71AC # <CJK>
+0x16D60 0x71B1 # <CJK>
+0x16D61 0x71A8 # <CJK>
+0x16D62 0x7256 # <CJK>
+0x16D63 0x729B # <CJK>
+0x16D64 0x734E # <CJK>
+0x16D65 0x7357 # <CJK>
+0x16D66 0x7469 # <CJK>
+0x16D67 0x748B # <CJK>
+0x16D68 0x7483 # <CJK>
+0x16D69 0x747E # <CJK>
+0x16D6A 0x7480 # <CJK>
+0x16D6B 0x757F # <CJK>
+0x16D6C 0x7620 # <CJK>
+0x16D6D 0x7629 # <CJK>
+0x16D6E 0x761F # <CJK>
+0x16D6F 0x7624 # <CJK>
+0x16D70 0x7626 # <CJK>
+0x16D71 0x7621 # <CJK>
+0x16D72 0x7622 # <CJK>
+0x16D73 0x769A # <CJK>
+0x16D74 0x76BA # <CJK>
+0x16D75 0x76E4 # <CJK>
+0x16D76 0x778E # <CJK>
+0x16D77 0x7787 # <CJK>
+0x16D78 0x778C # <CJK>
+0x16D79 0x7791 # <CJK>
+0x16D7A 0x778B # <CJK>
+0x16D7B 0x78CB # <CJK>
+0x16D7C 0x78C5 # <CJK>
+0x16D7D 0x78BA # <CJK>
+0x16D7E 0x78CA # <CJK>
+0x16E21 0x78BE # <CJK>
+0x16E22 0x78D5 # <CJK>
+0x16E23 0x78BC # <CJK>
+0x16E24 0x78D0 # <CJK>
+0x16E25 0x7A3F # <CJK>
+0x16E26 0x7A3C # <CJK>
+0x16E27 0x7A40 # <CJK>
+0x16E28 0x7A3D # <CJK>
+0x16E29 0x7A37 # <CJK>
+0x16E2A 0x7A3B # <CJK>
+0x16E2B 0x7AAF # <CJK>
+0x16E2C 0x7AAE # <CJK>
+0x16E2D 0x7BAD # <CJK>
+0x16E2E 0x7BB1 # <CJK>
+0x16E2F 0x7BC4 # <CJK>
+0x16E30 0x7BB4 # <CJK>
+0x16E31 0x7BC6 # <CJK>
+0x16E32 0x7BC7 # <CJK>
+0x16E33 0x7BC1 # <CJK>
+0x16E34 0x7BA0 # <CJK>
+0x16E35 0x7BCC # <CJK>
+0x16E36 0x7CCA # <CJK>
+0x16E37 0x7DE0 # <CJK>
+0x16E38 0x7DF4 # <CJK>
+0x16E39 0x7DEF # <CJK>
+0x16E3A 0x7DFB # <CJK>
+0x16E3B 0x7DD8 # <CJK>
+0x16E3C 0x7DEC # <CJK>
+0x16E3D 0x7DDD # <CJK>
+0x16E3E 0x7DE8 # <CJK>
+0x16E3F 0x7DE3 # <CJK>
+0x16E40 0x7DDA # <CJK>
+0x16E41 0x7DDE # <CJK>
+0x16E42 0x7DE9 # <CJK>
+0x16E43 0x7D9E # <CJK>
+0x16E44 0x7DD9 # <CJK>
+0x16E45 0x7DF2 # <CJK>
+0x16E46 0x7DF9 # <CJK>
+0x16E47 0x7F75 # <CJK>
+0x16E48 0x7F77 # <CJK>
+0x16E49 0x7FAF # <CJK>
+0x16E4A 0x7FE9 # <CJK>
+0x16E4B 0x8026 # <CJK>
+0x16E4C 0x819B # <CJK>
+0x16E4D 0x819C # <CJK>
+0x16E4E 0x819D # <CJK>
+0x16E4F 0x81A0 # <CJK>
+0x16E50 0x819A # <CJK>
+0x16E51 0x8198 # <CJK>
+0x16E52 0x8517 # <CJK>
+0x16E53 0x853D # <CJK>
+0x16E54 0x851A # <CJK>
+0x16E55 0x84EE # <CJK>
+0x16E56 0x852C # <CJK>
+0x16E57 0x852D # <CJK>
+0x16E58 0x8513 # <CJK>
+0x16E59 0x8511 # <CJK>
+0x16E5A 0x8523 # <CJK>
+0x16E5B 0x8521 # <CJK>
+0x16E5C 0x8514 # <CJK>
+0x16E5D 0x84EC # <CJK>
+0x16E5E 0x8525 # <CJK>
+0x16E5F 0x84FF # <CJK>
+0x16E60 0x8506 # <CJK>
+0x16E61 0x8782 # <CJK>
+0x16E62 0x8774 # <CJK>
+0x16E63 0x8776 # <CJK>
+0x16E64 0x8760 # <CJK>
+0x16E65 0x8766 # <CJK>
+0x16E66 0x8778 # <CJK>
+0x16E67 0x8768 # <CJK>
+0x16E68 0x8759 # <CJK>
+0x16E69 0x8757 # <CJK>
+0x16E6A 0x874C # <CJK>
+0x16E6B 0x8753 # <CJK>
+0x16E6C 0x885B # <CJK>
+0x16E6D 0x885D # <CJK>
+0x16E6E 0x8910 # <CJK>
+0x16E6F 0x8907 # <CJK>
+0x16E70 0x8912 # <CJK>
+0x16E71 0x8913 # <CJK>
+0x16E72 0x8915 # <CJK>
+0x16E73 0x890A # <CJK>
+0x16E74 0x8ABC # <CJK>
+0x16E75 0x8AD2 # <CJK>
+0x16E76 0x8AC7 # <CJK>
+0x16E77 0x8AC4 # <CJK>
+0x16E78 0x8A95 # <CJK>
+0x16E79 0x8ACB # <CJK>
+0x16E7A 0x8AF8 # <CJK>
+0x16E7B 0x8AB2 # <CJK>
+0x16E7C 0x8AC9 # <CJK>
+0x16E7D 0x8AC2 # <CJK>
+0x16E7E 0x8ABF # <CJK>
+0x16F21 0x8AB0 # <CJK>
+0x16F22 0x8AD6 # <CJK>
+0x16F23 0x8ACD # <CJK>
+0x16F24 0x8AB6 # <CJK>
+0x16F25 0x8AB9 # <CJK>
+0x16F26 0x8ADB # <CJK>
+0x16F27 0x8C4C # <CJK>
+0x16F28 0x8C4E # <CJK>
+0x16F29 0x8C6C # <CJK>
+0x16F2A 0x8CE0 # <CJK>
+0x16F2B 0x8CDE # <CJK>
+0x16F2C 0x8CE6 # <CJK>
+0x16F2D 0x8CE4 # <CJK>
+0x16F2E 0x8CEC # <CJK>
+0x16F2F 0x8CED # <CJK>
+0x16F30 0x8CE2 # <CJK>
+0x16F31 0x8CE3 # <CJK>
+0x16F32 0x8CDC # <CJK>
+0x16F33 0x8CEA # <CJK>
+0x16F34 0x8CE1 # <CJK>
+0x16F35 0x8D6D # <CJK>
+0x16F36 0x8D9F # <CJK>
+0x16F37 0x8DA3 # <CJK>
+0x16F38 0x8E2B # <CJK>
+0x16F39 0x8E10 # <CJK>
+0x16F3A 0x8E1D # <CJK>
+0x16F3B 0x8E22 # <CJK>
+0x16F3C 0x8E0F # <CJK>
+0x16F3D 0x8E29 # <CJK>
+0x16F3E 0x8E1F # <CJK>
+0x16F3F 0x8E21 # <CJK>
+0x16F40 0x8E1E # <CJK>
+0x16F41 0x8EBA # <CJK>
+0x16F42 0x8F1D # <CJK>
+0x16F43 0x8F1B # <CJK>
+0x16F44 0x8F1F # <CJK>
+0x16F45 0x8F29 # <CJK>
+0x16F46 0x8F26 # <CJK>
+0x16F47 0x8F2A # <CJK>
+0x16F48 0x8F1C # <CJK>
+0x16F49 0x8F1E # <CJK>
+0x16F4A 0x8F25 # <CJK>
+0x16F4B 0x9069 # <CJK>
+0x16F4C 0x906E # <CJK>
+0x16F4D 0x9068 # <CJK>
+0x16F4E 0x906D # <CJK>
+0x16F4F 0x9077 # <CJK>
+0x16F50 0x9130 # <CJK>
+0x16F51 0x912D # <CJK>
+0x16F52 0x9127 # <CJK>
+0x16F53 0x9131 # <CJK>
+0x16F54 0x9187 # <CJK>
+0x16F55 0x9189 # <CJK>
+0x16F56 0x918B # <CJK>
+0x16F57 0x9183 # <CJK>
+0x16F58 0x92C5 # <CJK>
+0x16F59 0x92BB # <CJK>
+0x16F5A 0x92B7 # <CJK>
+0x16F5B 0x92EA # <CJK>
+0x16F5C 0x92E4 # <CJK>
+0x16F5D 0x92C1 # <CJK>
+0x16F5E 0x92B3 # <CJK>
+0x16F5F 0x92BC # <CJK>
+0x16F60 0x92D2 # <CJK>
+0x16F61 0x92C7 # <CJK>
+0x16F62 0x92F0 # <CJK>
+0x16F63 0x92B2 # <CJK>
+0x16F64 0x95AD # <CJK>
+0x16F65 0x95B1 # <CJK>
+0x16F66 0x9704 # <CJK>
+0x16F67 0x9706 # <CJK>
+0x16F68 0x9707 # <CJK>
+0x16F69 0x9709 # <CJK>
+0x16F6A 0x9760 # <CJK>
+0x16F6B 0x978D # <CJK>
+0x16F6C 0x978B # <CJK>
+0x16F6D 0x978F # <CJK>
+0x16F6E 0x9821 # <CJK>
+0x16F6F 0x982B # <CJK>
+0x16F70 0x981C # <CJK>
+0x16F71 0x98B3 # <CJK>
+0x16F72 0x990A # <CJK>
+0x16F73 0x9913 # <CJK>
+0x16F74 0x9912 # <CJK>
+0x16F75 0x9918 # <CJK>
+0x16F76 0x99DD # <CJK>
+0x16F77 0x99D0 # <CJK>
+0x16F78 0x99DF # <CJK>
+0x16F79 0x99DB # <CJK>
+0x16F7A 0x99D1 # <CJK>
+0x16F7B 0x99D5 # <CJK>
+0x16F7C 0x99D2 # <CJK>
+0x16F7D 0x99D9 # <CJK>
+0x16F7E 0x9AB7 # <CJK>
+0x17021 0x9AEE # <CJK>
+0x17022 0x9AEF # <CJK>
+0x17023 0x9B27 # <CJK>
+0x17024 0x9B45 # <CJK>
+0x17025 0x9B44 # <CJK>
+0x17026 0x9B77 # <CJK>
+0x17027 0x9B6F # <CJK>
+0x17028 0x9D06 # <CJK>
+0x17029 0x9D09 # <CJK>
+0x1702A 0x9D03 # <CJK>
+0x1702B 0x9EA9 # <CJK>
+0x1702C 0x9EBE # <CJK>
+0x1702D 0x9ECE # <CJK>
+0x1702E 0x58A8 # <CJK>
+0x1702F 0x9F52 # <CJK>
+0x17030 0x5112 # <CJK>
+0x17031 0x5118 # <CJK>
+0x17032 0x5114 # <CJK>
+0x17033 0x5110 # <CJK>
+0x17034 0x5115 # <CJK>
+0x17035 0x5180 # <CJK>
+0x17036 0x51AA # <CJK>
+0x17037 0x51DD # <CJK>
+0x17038 0x5291 # <CJK>
+0x17039 0x5293 # <CJK>
+0x1703A 0x52F3 # <CJK>
+0x1703B 0x5659 # <CJK>
+0x1703C 0x566B # <CJK>
+0x1703D 0x5679 # <CJK>
+0x1703E 0x5669 # <CJK>
+0x1703F 0x5664 # <CJK>
+0x17040 0x5678 # <CJK>
+0x17041 0x566A # <CJK>
+0x17042 0x5668 # <CJK>
+0x17043 0x5665 # <CJK>
+0x17044 0x5671 # <CJK>
+0x17045 0x566F # <CJK>
+0x17046 0x566C # <CJK>
+0x17047 0x5662 # <CJK>
+0x17048 0x5676 # <CJK>
+0x17049 0x58C1 # <CJK>
+0x1704A 0x58BE # <CJK>
+0x1704B 0x58C7 # <CJK>
+0x1704C 0x58C5 # <CJK>
+0x1704D 0x596E # <CJK>
+0x1704E 0x5B1D # <CJK>
+0x1704F 0x5B34 # <CJK>
+0x17050 0x5B78 # <CJK>
+0x17051 0x5BF0 # <CJK>
+0x17052 0x5C0E # <CJK>
+0x17053 0x5F4A # <CJK>
+0x17054 0x61B2 # <CJK>
+0x17055 0x6191 # <CJK>
+0x17056 0x61A9 # <CJK>
+0x17057 0x618A # <CJK>
+0x17058 0x61CD # <CJK>
+0x17059 0x61B6 # <CJK>
+0x1705A 0x61BE # <CJK>
+0x1705B 0x61CA # <CJK>
+0x1705C 0x61C8 # <CJK>
+0x1705D 0x6230 # <CJK>
+0x1705E 0x64C5 # <CJK>
+0x1705F 0x64C1 # <CJK>
+0x17060 0x64CB # <CJK>
+0x17061 0x64BB # <CJK>
+0x17062 0x64BC # <CJK>
+0x17063 0x64DA # <CJK>
+0x17064 0x64C4 # <CJK>
+0x17065 0x64C7 # <CJK>
+0x17066 0x64C2 # <CJK>
+0x17067 0x64CD # <CJK>
+0x17068 0x64BF # <CJK>
+0x17069 0x64D2 # <CJK>
+0x1706A 0x64D4 # <CJK>
+0x1706B 0x64BE # <CJK>
+0x1706C 0x6574 # <CJK>
+0x1706D 0x66C6 # <CJK>
+0x1706E 0x66C9 # <CJK>
+0x1706F 0x66B9 # <CJK>
+0x17070 0x66C4 # <CJK>
+0x17071 0x66C7 # <CJK>
+0x17072 0x66B8 # <CJK>
+0x17073 0x6A3D # <CJK>
+0x17074 0x6A38 # <CJK>
+0x17075 0x6A3A # <CJK>
+0x17076 0x6A59 # <CJK>
+0x17077 0x6A6B # <CJK>
+0x17078 0x6A58 # <CJK>
+0x17079 0x6A39 # <CJK>
+0x1707A 0x6A44 # <CJK>
+0x1707B 0x6A62 # <CJK>
+0x1707C 0x6A61 # <CJK>
+0x1707D 0x6A4B # <CJK>
+0x1707E 0x6A47 # <CJK>
+0x17121 0x6A35 # <CJK>
+0x17122 0x6A5F # <CJK>
+0x17123 0x6A48 # <CJK>
+0x17124 0x6B59 # <CJK>
+0x17125 0x6B77 # <CJK>
+0x17126 0x6C05 # <CJK>
+0x17127 0x6FC2 # <CJK>
+0x17128 0x6FB1 # <CJK>
+0x17129 0x6FA1 # <CJK>
+0x1712A 0x6FC3 # <CJK>
+0x1712B 0x6FA4 # <CJK>
+0x1712C 0x6FC1 # <CJK>
+0x1712D 0x6FA7 # <CJK>
+0x1712E 0x6FB3 # <CJK>
+0x1712F 0x6FC0 # <CJK>
+0x17130 0x6FB9 # <CJK>
+0x17131 0x6FB6 # <CJK>
+0x17132 0x6FA6 # <CJK>
+0x17133 0x6FA0 # <CJK>
+0x17134 0x6FB4 # <CJK>
+0x17135 0x71BE # <CJK>
+0x17136 0x71C9 # <CJK>
+0x17137 0x71D0 # <CJK>
+0x17138 0x71D2 # <CJK>
+0x17139 0x71C8 # <CJK>
+0x1713A 0x71D5 # <CJK>
+0x1713B 0x71B9 # <CJK>
+0x1713C 0x71CE # <CJK>
+0x1713D 0x71D9 # <CJK>
+0x1713E 0x71DC # <CJK>
+0x1713F 0x71C3 # <CJK>
+0x17140 0x71C4 # <CJK>
+0x17141 0x7368 # <CJK>
+0x17142 0x749C # <CJK>
+0x17143 0x74A3 # <CJK>
+0x17144 0x7498 # <CJK>
+0x17145 0x749F # <CJK>
+0x17146 0x749E # <CJK>
+0x17147 0x74E2 # <CJK>
+0x17148 0x750C # <CJK>
+0x17149 0x750D # <CJK>
+0x1714A 0x7634 # <CJK>
+0x1714B 0x7638 # <CJK>
+0x1714C 0x763A # <CJK>
+0x1714D 0x76E7 # <CJK>
+0x1714E 0x76E5 # <CJK>
+0x1714F 0x77A0 # <CJK>
+0x17150 0x779E # <CJK>
+0x17151 0x779F # <CJK>
+0x17152 0x77A5 # <CJK>
+0x17153 0x78E8 # <CJK>
+0x17154 0x78DA # <CJK>
+0x17155 0x78EC # <CJK>
+0x17156 0x78E7 # <CJK>
+0x17157 0x79A6 # <CJK>
+0x17158 0x7A4D # <CJK>
+0x17159 0x7A4E # <CJK>
+0x1715A 0x7A46 # <CJK>
+0x1715B 0x7A4C # <CJK>
+0x1715C 0x7A4B # <CJK>
+0x1715D 0x7ABA # <CJK>
+0x1715E 0x7BD9 # <CJK>
+0x1715F 0x7C11 # <CJK>
+0x17160 0x7BC9 # <CJK>
+0x17161 0x7BE4 # <CJK>
+0x17162 0x7BDB # <CJK>
+0x17163 0x7BE1 # <CJK>
+0x17164 0x7BE9 # <CJK>
+0x17165 0x7BE6 # <CJK>
+0x17166 0x7CD5 # <CJK>
+0x17167 0x7CD6 # <CJK>
+0x17168 0x7E0A # <CJK>
+0x17169 0x7E11 # <CJK>
+0x1716A 0x7E08 # <CJK>
+0x1716B 0x7E1B # <CJK>
+0x1716C 0x7E23 # <CJK>
+0x1716D 0x7E1E # <CJK>
+0x1716E 0x7E1D # <CJK>
+0x1716F 0x7E09 # <CJK>
+0x17170 0x7E10 # <CJK>
+0x17171 0x7F79 # <CJK>
+0x17172 0x7FB2 # <CJK>
+0x17173 0x7FF0 # <CJK>
+0x17174 0x7FF1 # <CJK>
+0x17175 0x7FEE # <CJK>
+0x17176 0x8028 # <CJK>
+0x17177 0x81B3 # <CJK>
+0x17178 0x81A9 # <CJK>
+0x17179 0x81A8 # <CJK>
+0x1717A 0x81FB # <CJK>
+0x1717B 0x8208 # <CJK>
+0x1717C 0x8258 # <CJK>
+0x1717D 0x8259 # <CJK>
+0x1717E 0x854A # <CJK>
+0x17221 0x8559 # <CJK>
+0x17222 0x8548 # <CJK>
+0x17223 0x8568 # <CJK>
+0x17224 0x8569 # <CJK>
+0x17225 0x8543 # <CJK>
+0x17226 0x8549 # <CJK>
+0x17227 0x856D # <CJK>
+0x17228 0x856A # <CJK>
+0x17229 0x855E # <CJK>
+0x1722A 0x8783 # <CJK>
+0x1722B 0x879F # <CJK>
+0x1722C 0x879E # <CJK>
+0x1722D 0x87A2 # <CJK>
+0x1722E 0x878D # <CJK>
+0x1722F 0x8861 # <CJK>
+0x17230 0x892A # <CJK>
+0x17231 0x8932 # <CJK>
+0x17232 0x8925 # <CJK>
+0x17233 0x892B # <CJK>
+0x17234 0x8921 # <CJK>
+0x17235 0x89AA # <CJK>
+0x17236 0x89A6 # <CJK>
+0x17237 0x8AE6 # <CJK>
+0x17238 0x8AFA # <CJK>
+0x17239 0x8AEB # <CJK>
+0x1723A 0x8AF1 # <CJK>
+0x1723B 0x8B00 # <CJK>
+0x1723C 0x8ADC # <CJK>
+0x1723D 0x8AE7 # <CJK>
+0x1723E 0x8AEE # <CJK>
+0x1723F 0x8AFE # <CJK>
+0x17240 0x8B01 # <CJK>
+0x17241 0x8B02 # <CJK>
+0x17242 0x8AF7 # <CJK>
+0x17243 0x8AED # <CJK>
+0x17244 0x8AF3 # <CJK>
+0x17245 0x8AF6 # <CJK>
+0x17246 0x8AFC # <CJK>
+0x17247 0x8C6B # <CJK>
+0x17248 0x8C6D # <CJK>
+0x17249 0x8C93 # <CJK>
+0x1724A 0x8CF4 # <CJK>
+0x1724B 0x8E44 # <CJK>
+0x1724C 0x8E31 # <CJK>
+0x1724D 0x8E34 # <CJK>
+0x1724E 0x8E42 # <CJK>
+0x1724F 0x8E39 # <CJK>
+0x17250 0x8E35 # <CJK>
+0x17251 0x8F3B # <CJK>
+0x17252 0x8F2F # <CJK>
+0x17253 0x8F38 # <CJK>
+0x17254 0x8F33 # <CJK>
+0x17255 0x8FA8 # <CJK>
+0x17256 0x8FA6 # <CJK>
+0x17257 0x9075 # <CJK>
+0x17258 0x9074 # <CJK>
+0x17259 0x9078 # <CJK>
+0x1725A 0x9072 # <CJK>
+0x1725B 0x907C # <CJK>
+0x1725C 0x907A # <CJK>
+0x1725D 0x9134 # <CJK>
+0x1725E 0x9192 # <CJK>
+0x1725F 0x9320 # <CJK>
+0x17260 0x9336 # <CJK>
+0x17261 0x92F8 # <CJK>
+0x17262 0x9333 # <CJK>
+0x17263 0x932F # <CJK>
+0x17264 0x9322 # <CJK>
+0x17265 0x92FC # <CJK>
+0x17266 0x932B # <CJK>
+0x17267 0x9304 # <CJK>
+0x17268 0x931A # <CJK>
+0x17269 0x9310 # <CJK>
+0x1726A 0x9326 # <CJK>
+0x1726B 0x9321 # <CJK>
+0x1726C 0x9315 # <CJK>
+0x1726D 0x932E # <CJK>
+0x1726E 0x9319 # <CJK>
+0x1726F 0x95BB # <CJK>
+0x17270 0x96A7 # <CJK>
+0x17271 0x96A8 # <CJK>
+0x17272 0x96AA # <CJK>
+0x17273 0x96D5 # <CJK>
+0x17274 0x970E # <CJK>
+0x17275 0x9711 # <CJK>
+0x17276 0x9716 # <CJK>
+0x17277 0x970D # <CJK>
+0x17278 0x9713 # <CJK>
+0x17279 0x970F # <CJK>
+0x1727A 0x975B # <CJK>
+0x1727B 0x975C # <CJK>
+0x1727C 0x9766 # <CJK>
+0x1727D 0x9798 # <CJK>
+0x1727E 0x9830 # <CJK>
+0x17321 0x9838 # <CJK>
+0x17322 0x983B # <CJK>
+0x17323 0x9837 # <CJK>
+0x17324 0x982D # <CJK>
+0x17325 0x9839 # <CJK>
+0x17326 0x9824 # <CJK>
+0x17327 0x9910 # <CJK>
+0x17328 0x9928 # <CJK>
+0x17329 0x991E # <CJK>
+0x1732A 0x991B # <CJK>
+0x1732B 0x9921 # <CJK>
+0x1732C 0x991A # <CJK>
+0x1732D 0x99ED # <CJK>
+0x1732E 0x99E2 # <CJK>
+0x1732F 0x99F1 # <CJK>
+0x17330 0x9AB8 # <CJK>
+0x17331 0x9ABC # <CJK>
+0x17332 0x9AFB # <CJK>
+0x17333 0x9AED # <CJK>
+0x17334 0x9B28 # <CJK>
+0x17335 0x9B91 # <CJK>
+0x17336 0x9D15 # <CJK>
+0x17337 0x9D23 # <CJK>
+0x17338 0x9D26 # <CJK>
+0x17339 0x9D28 # <CJK>
+0x1733A 0x9D12 # <CJK>
+0x1733B 0x9D1B # <CJK>
+0x1733C 0x9ED8 # <CJK>
+0x1733D 0x9ED4 # <CJK>
+0x1733E 0x9F8D # <CJK>
+0x1733F 0x9F9C # <CJK>
+0x17340 0x512A # <CJK>
+0x17341 0x511F # <CJK>
+0x17342 0x5121 # <CJK>
+0x17343 0x5132 # <CJK>
+0x17344 0x52F5 # <CJK>
+0x17345 0x568E # <CJK>
+0x17346 0x5680 # <CJK>
+0x17347 0x5690 # <CJK>
+0x17348 0x5685 # <CJK>
+0x17349 0x5687 # <CJK>
+0x1734A 0x568F # <CJK>
+0x1734B 0x58D5 # <CJK>
+0x1734C 0x58D3 # <CJK>
+0x1734D 0x58D1 # <CJK>
+0x1734E 0x58CE # <CJK>
+0x1734F 0x5B30 # <CJK>
+0x17350 0x5B2A # <CJK>
+0x17351 0x5B24 # <CJK>
+0x17352 0x5B7A # <CJK>
+0x17353 0x5C37 # <CJK>
+0x17354 0x5C68 # <CJK>
+0x17355 0x5DBC # <CJK>
+0x17356 0x5DBA # <CJK>
+0x17357 0x5DBD # <CJK>
+0x17358 0x5DB8 # <CJK>
+0x17359 0x5E6B # <CJK>
+0x1735A 0x5F4C # <CJK>
+0x1735B 0x5FBD # <CJK>
+0x1735C 0x61C9 # <CJK>
+0x1735D 0x61C2 # <CJK>
+0x1735E 0x61C7 # <CJK>
+0x1735F 0x61E6 # <CJK>
+0x17360 0x61CB # <CJK>
+0x17361 0x6232 # <CJK>
+0x17362 0x6234 # <CJK>
+0x17363 0x64CE # <CJK>
+0x17364 0x64CA # <CJK>
+0x17365 0x64D8 # <CJK>
+0x17366 0x64E0 # <CJK>
+0x17367 0x64F0 # <CJK>
+0x17368 0x64E6 # <CJK>
+0x17369 0x64EC # <CJK>
+0x1736A 0x64F1 # <CJK>
+0x1736B 0x64E2 # <CJK>
+0x1736C 0x64ED # <CJK>
+0x1736D 0x6582 # <CJK>
+0x1736E 0x6583 # <CJK>
+0x1736F 0x66D9 # <CJK>
+0x17370 0x66D6 # <CJK>
+0x17371 0x6A80 # <CJK>
+0x17372 0x6A94 # <CJK>
+0x17373 0x6A84 # <CJK>
+0x17374 0x6AA2 # <CJK>
+0x17375 0x6A9C # <CJK>
+0x17376 0x6ADB # <CJK>
+0x17377 0x6AA3 # <CJK>
+0x17378 0x6A7E # <CJK>
+0x17379 0x6A97 # <CJK>
+0x1737A 0x6A90 # <CJK>
+0x1737B 0x6AA0 # <CJK>
+0x1737C 0x6B5C # <CJK>
+0x1737D 0x6BAE # <CJK>
+0x1737E 0x6BDA # <CJK>
+0x17421 0x6C08 # <CJK>
+0x17422 0x6FD8 # <CJK>
+0x17423 0x6FF1 # <CJK>
+0x17424 0x6FDF # <CJK>
+0x17425 0x6FE0 # <CJK>
+0x17426 0x6FDB # <CJK>
+0x17427 0x6FE4 # <CJK>
+0x17428 0x6FEB # <CJK>
+0x17429 0x6FEF # <CJK>
+0x1742A 0x6F80 # <CJK>
+0x1742B 0x6FEC # <CJK>
+0x1742C 0x6FE1 # <CJK>
+0x1742D 0x6FE9 # <CJK>
+0x1742E 0x6FD5 # <CJK>
+0x1742F 0x6FEE # <CJK>
+0x17430 0x6FF0 # <CJK>
+0x17431 0x71E7 # <CJK>
+0x17432 0x71DF # <CJK>
+0x17433 0x71EE # <CJK>
+0x17434 0x71E6 # <CJK>
+0x17435 0x71E5 # <CJK>
+0x17436 0x71ED # <CJK>
+0x17437 0x71EC # <CJK>
+0x17438 0x71F4 # <CJK>
+0x17439 0x71E0 # <CJK>
+0x1743A 0x7235 # <CJK>
+0x1743B 0x7246 # <CJK>
+0x1743C 0x7370 # <CJK>
+0x1743D 0x7372 # <CJK>
+0x1743E 0x74A9 # <CJK>
+0x1743F 0x74B0 # <CJK>
+0x17440 0x74A6 # <CJK>
+0x17441 0x74A8 # <CJK>
+0x17442 0x7646 # <CJK>
+0x17443 0x7642 # <CJK>
+0x17444 0x764C # <CJK>
+0x17445 0x76EA # <CJK>
+0x17446 0x77B3 # <CJK>
+0x17447 0x77AA # <CJK>
+0x17448 0x77B0 # <CJK>
+0x17449 0x77AC # <CJK>
+0x1744A 0x77A7 # <CJK>
+0x1744B 0x77AD # <CJK>
+0x1744C 0x77EF # <CJK>
+0x1744D 0x78F7 # <CJK>
+0x1744E 0x78FA # <CJK>
+0x1744F 0x78F4 # <CJK>
+0x17450 0x78EF # <CJK>
+0x17451 0x7901 # <CJK>
+0x17452 0x79A7 # <CJK>
+0x17453 0x79AA # <CJK>
+0x17454 0x7A57 # <CJK>
+0x17455 0x7ABF # <CJK>
+0x17456 0x7C07 # <CJK>
+0x17457 0x7C0D # <CJK>
+0x17458 0x7BFE # <CJK>
+0x17459 0x7BF7 # <CJK>
+0x1745A 0x7C0C # <CJK>
+0x1745B 0x7BE0 # <CJK>
+0x1745C 0x7CE0 # <CJK>
+0x1745D 0x7CDC # <CJK>
+0x1745E 0x7CDE # <CJK>
+0x1745F 0x7CE2 # <CJK>
+0x17460 0x7CDF # <CJK>
+0x17461 0x7CD9 # <CJK>
+0x17462 0x7CDD # <CJK>
+0x17463 0x7E2E # <CJK>
+0x17464 0x7E3E # <CJK>
+0x17465 0x7E46 # <CJK>
+0x17466 0x7E37 # <CJK>
+0x17467 0x7E32 # <CJK>
+0x17468 0x7E43 # <CJK>
+0x17469 0x7E2B # <CJK>
+0x1746A 0x7E3D # <CJK>
+0x1746B 0x7E31 # <CJK>
+0x1746C 0x7E45 # <CJK>
+0x1746D 0x7E41 # <CJK>
+0x1746E 0x7E34 # <CJK>
+0x1746F 0x7E39 # <CJK>
+0x17470 0x7E48 # <CJK>
+0x17471 0x7E35 # <CJK>
+0x17472 0x7E3F # <CJK>
+0x17473 0x7E2F # <CJK>
+0x17474 0x7F44 # <CJK>
+0x17475 0x7FF3 # <CJK>
+0x17476 0x7FFC # <CJK>
+0x17477 0x8071 # <CJK>
+0x17478 0x8072 # <CJK>
+0x17479 0x8070 # <CJK>
+0x1747A 0x806F # <CJK>
+0x1747B 0x8073 # <CJK>
+0x1747C 0x81C6 # <CJK>
+0x1747D 0x81C3 # <CJK>
+0x1747E 0x81BA # <CJK>
+0x17521 0x81C2 # <CJK>
+0x17522 0x81C0 # <CJK>
+0x17523 0x81BF # <CJK>
+0x17524 0x81BD # <CJK>
+0x17525 0x81C9 # <CJK>
+0x17526 0x81BE # <CJK>
+0x17527 0x81E8 # <CJK>
+0x17528 0x8209 # <CJK>
+0x17529 0x8271 # <CJK>
+0x1752A 0x85AA # <CJK>
+0x1752B 0x8584 # <CJK>
+0x1752C 0x857E # <CJK>
+0x1752D 0x859C # <CJK>
+0x1752E 0x8591 # <CJK>
+0x1752F 0x8594 # <CJK>
+0x17530 0x85AF # <CJK>
+0x17531 0x859B # <CJK>
+0x17532 0x8587 # <CJK>
+0x17533 0x85A8 # <CJK>
+0x17534 0x858A # <CJK>
+0x17535 0x85A6 # <CJK>
+0x17536 0x8667 # <CJK>
+0x17537 0x87C0 # <CJK>
+0x17538 0x87D1 # <CJK>
+0x17539 0x87B3 # <CJK>
+0x1753A 0x87D2 # <CJK>
+0x1753B 0x87C6 # <CJK>
+0x1753C 0x87AB # <CJK>
+0x1753D 0x87BB # <CJK>
+0x1753E 0x87BA # <CJK>
+0x1753F 0x87C8 # <CJK>
+0x17540 0x87CB # <CJK>
+0x17541 0x893B # <CJK>
+0x17542 0x8936 # <CJK>
+0x17543 0x8944 # <CJK>
+0x17544 0x8938 # <CJK>
+0x17545 0x893D # <CJK>
+0x17546 0x89AC # <CJK>
+0x17547 0x8B0E # <CJK>
+0x17548 0x8B17 # <CJK>
+0x17549 0x8B19 # <CJK>
+0x1754A 0x8B1B # <CJK>
+0x1754B 0x8B0A # <CJK>
+0x1754C 0x8B20 # <CJK>
+0x1754D 0x8B1D # <CJK>
+0x1754E 0x8B04 # <CJK>
+0x1754F 0x8B10 # <CJK>
+0x17550 0x8C41 # <CJK>
+0x17551 0x8C3F # <CJK>
+0x17552 0x8C73 # <CJK>
+0x17553 0x8CFA # <CJK>
+0x17554 0x8CFD # <CJK>
+0x17555 0x8CFC # <CJK>
+0x17556 0x8CF8 # <CJK>
+0x17557 0x8CFB # <CJK>
+0x17558 0x8DA8 # <CJK>
+0x17559 0x8E49 # <CJK>
+0x1755A 0x8E4B # <CJK>
+0x1755B 0x8E48 # <CJK>
+0x1755C 0x8E4A # <CJK>
+0x1755D 0x8F44 # <CJK>
+0x1755E 0x8F3E # <CJK>
+0x1755F 0x8F42 # <CJK>
+0x17560 0x8F45 # <CJK>
+0x17561 0x8F3F # <CJK>
+0x17562 0x907F # <CJK>
+0x17563 0x907D # <CJK>
+0x17564 0x9084 # <CJK>
+0x17565 0x9081 # <CJK>
+0x17566 0x9082 # <CJK>
+0x17567 0x9080 # <CJK>
+0x17568 0x9139 # <CJK>
+0x17569 0x91A3 # <CJK>
+0x1756A 0x919E # <CJK>
+0x1756B 0x919C # <CJK>
+0x1756C 0x934D # <CJK>
+0x1756D 0x9382 # <CJK>
+0x1756E 0x9328 # <CJK>
+0x1756F 0x9375 # <CJK>
+0x17570 0x934A # <CJK>
+0x17571 0x9365 # <CJK>
+0x17572 0x934B # <CJK>
+0x17573 0x9318 # <CJK>
+0x17574 0x937E # <CJK>
+0x17575 0x936C # <CJK>
+0x17576 0x935B # <CJK>
+0x17577 0x9370 # <CJK>
+0x17578 0x935A # <CJK>
+0x17579 0x9354 # <CJK>
+0x1757A 0x95CA # <CJK>
+0x1757B 0x95CB # <CJK>
+0x1757C 0x95CC # <CJK>
+0x1757D 0x95C8 # <CJK>
+0x1757E 0x95C6 # <CJK>
+0x17621 0x96B1 # <CJK>
+0x17622 0x96B8 # <CJK>
+0x17623 0x96D6 # <CJK>
+0x17624 0x971C # <CJK>
+0x17625 0x971E # <CJK>
+0x17626 0x97A0 # <CJK>
+0x17627 0x97D3 # <CJK>
+0x17628 0x9846 # <CJK>
+0x17629 0x98B6 # <CJK>
+0x1762A 0x9935 # <CJK>
+0x1762B 0x9A01 # <CJK>
+0x1762C 0x99FF # <CJK>
+0x1762D 0x9BAE # <CJK>
+0x1762E 0x9BAB # <CJK>
+0x1762F 0x9BAA # <CJK>
+0x17630 0x9BAD # <CJK>
+0x17631 0x9D3B # <CJK>
+0x17632 0x9D3F # <CJK>
+0x17633 0x9E8B # <CJK>
+0x17634 0x9ECF # <CJK>
+0x17635 0x9EDE # <CJK>
+0x17636 0x9EDC # <CJK>
+0x17637 0x9EDD # <CJK>
+0x17638 0x9EDB # <CJK>
+0x17639 0x9F3E # <CJK>
+0x1763A 0x9F4B # <CJK>
+0x1763B 0x53E2 # <CJK>
+0x1763C 0x5695 # <CJK>
+0x1763D 0x56AE # <CJK>
+0x1763E 0x58D9 # <CJK>
+0x1763F 0x58D8 # <CJK>
+0x17640 0x5B38 # <CJK>
+0x17641 0x5F5E # <CJK>
+0x17642 0x61E3 # <CJK>
+0x17643 0x6233 # <CJK>
+0x17644 0x64F4 # <CJK>
+0x17645 0x64F2 # <CJK>
+0x17646 0x64FE # <CJK>
+0x17647 0x6506 # <CJK>
+0x17648 0x64FA # <CJK>
+0x17649 0x64FB # <CJK>
+0x1764A 0x64F7 # <CJK>
+0x1764B 0x65B7 # <CJK>
+0x1764C 0x66DC # <CJK>
+0x1764D 0x6726 # <CJK>
+0x1764E 0x6AB3 # <CJK>
+0x1764F 0x6AAC # <CJK>
+0x17650 0x6AC3 # <CJK>
+0x17651 0x6ABB # <CJK>
+0x17652 0x6AB8 # <CJK>
+0x17653 0x6AC2 # <CJK>
+0x17654 0x6AAE # <CJK>
+0x17655 0x6AAF # <CJK>
+0x17656 0x6B5F # <CJK>
+0x17657 0x6B78 # <CJK>
+0x17658 0x6BAF # <CJK>
+0x17659 0x7009 # <CJK>
+0x1765A 0x700B # <CJK>
+0x1765B 0x6FFE # <CJK>
+0x1765C 0x7006 # <CJK>
+0x1765D 0x6FFA # <CJK>
+0x1765E 0x7011 # <CJK>
+0x1765F 0x700F # <CJK>
+0x17660 0x71FB # <CJK>
+0x17661 0x71FC # <CJK>
+0x17662 0x71FE # <CJK>
+0x17663 0x71F8 # <CJK>
+0x17664 0x7377 # <CJK>
+0x17665 0x7375 # <CJK>
+0x17666 0x74A7 # <CJK>
+0x17667 0x74BF # <CJK>
+0x17668 0x7515 # <CJK>
+0x17669 0x7656 # <CJK>
+0x1766A 0x7658 # <CJK>
+0x1766B 0x7652 # <CJK>
+0x1766C 0x77BD # <CJK>
+0x1766D 0x77BF # <CJK>
+0x1766E 0x77BB # <CJK>
+0x1766F 0x77BC # <CJK>
+0x17670 0x790E # <CJK>
+0x17671 0x79AE # <CJK>
+0x17672 0x7A61 # <CJK>
+0x17673 0x7A62 # <CJK>
+0x17674 0x7A60 # <CJK>
+0x17675 0x7AC4 # <CJK>
+0x17676 0x7AC5 # <CJK>
+0x17677 0x7C2B # <CJK>
+0x17678 0x7C27 # <CJK>
+0x17679 0x7C2A # <CJK>
+0x1767A 0x7C1E # <CJK>
+0x1767B 0x7C23 # <CJK>
+0x1767C 0x7C21 # <CJK>
+0x1767D 0x7CE7 # <CJK>
+0x1767E 0x7E54 # <CJK>
+0x17721 0x7E55 # <CJK>
+0x17722 0x7E5E # <CJK>
+0x17723 0x7E5A # <CJK>
+0x17724 0x7E61 # <CJK>
+0x17725 0x7E52 # <CJK>
+0x17726 0x7E59 # <CJK>
+0x17727 0x7F48 # <CJK>
+0x17728 0x7FF9 # <CJK>
+0x17729 0x7FFB # <CJK>
+0x1772A 0x8077 # <CJK>
+0x1772B 0x8076 # <CJK>
+0x1772C 0x81CD # <CJK>
+0x1772D 0x81CF # <CJK>
+0x1772E 0x820A # <CJK>
+0x1772F 0x85CF # <CJK>
+0x17730 0x85A9 # <CJK>
+0x17731 0x85CD # <CJK>
+0x17732 0x85D0 # <CJK>
+0x17733 0x85C9 # <CJK>
+0x17734 0x85B0 # <CJK>
+0x17735 0x85BA # <CJK>
+0x17736 0x85B9 # <CJK>
+0x17737 0x87EF # <CJK>
+0x17738 0x87EC # <CJK>
+0x17739 0x87F2 # <CJK>
+0x1773A 0x87E0 # <CJK>
+0x1773B 0x8986 # <CJK>
+0x1773C 0x89B2 # <CJK>
+0x1773D 0x89F4 # <CJK>
+0x1773E 0x8B28 # <CJK>
+0x1773F 0x8B39 # <CJK>
+0x17740 0x8B2C # <CJK>
+0x17741 0x8B2B # <CJK>
+0x17742 0x8C50 # <CJK>
+0x17743 0x8D05 # <CJK>
+0x17744 0x8E59 # <CJK>
+0x17745 0x8E63 # <CJK>
+0x17746 0x8E66 # <CJK>
+0x17747 0x8E64 # <CJK>
+0x17748 0x8E5F # <CJK>
+0x17749 0x8E55 # <CJK>
+0x1774A 0x8EC0 # <CJK>
+0x1774B 0x8F49 # <CJK>
+0x1774C 0x8F4D # <CJK>
+0x1774D 0x9087 # <CJK>
+0x1774E 0x9083 # <CJK>
+0x1774F 0x9088 # <CJK>
+0x17750 0x91AB # <CJK>
+0x17751 0x91AC # <CJK>
+0x17752 0x91D0 # <CJK>
+0x17753 0x9394 # <CJK>
+0x17754 0x938A # <CJK>
+0x17755 0x9396 # <CJK>
+0x17756 0x93A2 # <CJK>
+0x17757 0x93B3 # <CJK>
+0x17758 0x93AE # <CJK>
+0x17759 0x93AC # <CJK>
+0x1775A 0x93B0 # <CJK>
+0x1775B 0x9398 # <CJK>
+0x1775C 0x939A # <CJK>
+0x1775D 0x9397 # <CJK>
+0x1775E 0x95D4 # <CJK>
+0x1775F 0x95D6 # <CJK>
+0x17760 0x95D0 # <CJK>
+0x17761 0x95D5 # <CJK>
+0x17762 0x96E2 # <CJK>
+0x17763 0x96DC # <CJK>
+0x17764 0x96D9 # <CJK>
+0x17765 0x96DB # <CJK>
+0x17766 0x96DE # <CJK>
+0x17767 0x9724 # <CJK>
+0x17768 0x97A3 # <CJK>
+0x17769 0x97A6 # <CJK>
+0x1776A 0x97AD # <CJK>
+0x1776B 0x97F9 # <CJK>
+0x1776C 0x984D # <CJK>
+0x1776D 0x984F # <CJK>
+0x1776E 0x984C # <CJK>
+0x1776F 0x984E # <CJK>
+0x17770 0x9853 # <CJK>
+0x17771 0x98BA # <CJK>
+0x17772 0x993E # <CJK>
+0x17773 0x993F # <CJK>
+0x17774 0x993D # <CJK>
+0x17775 0x992E # <CJK>
+0x17776 0x99A5 # <CJK>
+0x17777 0x9A0E # <CJK>
+0x17778 0x9AC1 # <CJK>
+0x17779 0x9B03 # <CJK>
+0x1777A 0x9B06 # <CJK>
+0x1777B 0x9B4F # <CJK>
+0x1777C 0x9B4E # <CJK>
+0x1777D 0x9B4D # <CJK>
+0x1777E 0x9BCA # <CJK>
+0x17821 0x9BC9 # <CJK>
+0x17822 0x9BFD # <CJK>
+0x17823 0x9BC8 # <CJK>
+0x17824 0x9BC0 # <CJK>
+0x17825 0x9D51 # <CJK>
+0x17826 0x9D5D # <CJK>
+0x17827 0x9D60 # <CJK>
+0x17828 0x9EE0 # <CJK>
+0x17829 0x9F15 # <CJK>
+0x1782A 0x9F2C # <CJK>
+0x1782B 0x5133 # <CJK>
+0x1782C 0x56A5 # <CJK>
+0x1782D 0x56A8 # <CJK>
+0x1782E 0x58DE # <CJK>
+0x1782F 0x58DF # <CJK>
+0x17830 0x58E2 # <CJK>
+0x17831 0x5BF5 # <CJK>
+0x17832 0x9F90 # <CJK>
+0x17833 0x5EEC # <CJK>
+0x17834 0x61F2 # <CJK>
+0x17835 0x61F7 # <CJK>
+0x17836 0x61F6 # <CJK>
+0x17837 0x61F5 # <CJK>
+0x17838 0x6500 # <CJK>
+0x17839 0x650F # <CJK>
+0x1783A 0x66E0 # <CJK>
+0x1783B 0x66DD # <CJK>
+0x1783C 0x6AE5 # <CJK>
+0x1783D 0x6ADD # <CJK>
+0x1783E 0x6ADA # <CJK>
+0x1783F 0x6AD3 # <CJK>
+0x17840 0x701B # <CJK>
+0x17841 0x701F # <CJK>
+0x17842 0x7028 # <CJK>
+0x17843 0x701A # <CJK>
+0x17844 0x701D # <CJK>
+0x17845 0x7015 # <CJK>
+0x17846 0x7018 # <CJK>
+0x17847 0x7206 # <CJK>
+0x17848 0x720D # <CJK>
+0x17849 0x7258 # <CJK>
+0x1784A 0x72A2 # <CJK>
+0x1784B 0x7378 # <CJK>
+0x1784C 0x737A # <CJK>
+0x1784D 0x74BD # <CJK>
+0x1784E 0x74CA # <CJK>
+0x1784F 0x74E3 # <CJK>
+0x17850 0x7587 # <CJK>
+0x17851 0x7586 # <CJK>
+0x17852 0x765F # <CJK>
+0x17853 0x7661 # <CJK>
+0x17854 0x77C7 # <CJK>
+0x17855 0x7919 # <CJK>
+0x17856 0x79B1 # <CJK>
+0x17857 0x7A6B # <CJK>
+0x17858 0x7A69 # <CJK>
+0x17859 0x7C3E # <CJK>
+0x1785A 0x7C3F # <CJK>
+0x1785B 0x7C38 # <CJK>
+0x1785C 0x7C3D # <CJK>
+0x1785D 0x7C37 # <CJK>
+0x1785E 0x7C40 # <CJK>
+0x1785F 0x7E6B # <CJK>
+0x17860 0x7E6D # <CJK>
+0x17861 0x7E79 # <CJK>
+0x17862 0x7E69 # <CJK>
+0x17863 0x7E6A # <CJK>
+0x17864 0x7E73 # <CJK>
+0x17865 0x7F85 # <CJK>
+0x17866 0x7FB6 # <CJK>
+0x17867 0x7FB9 # <CJK>
+0x17868 0x7FB8 # <CJK>
+0x17869 0x81D8 # <CJK>
+0x1786A 0x85E9 # <CJK>
+0x1786B 0x85DD # <CJK>
+0x1786C 0x85EA # <CJK>
+0x1786D 0x85D5 # <CJK>
+0x1786E 0x85E4 # <CJK>
+0x1786F 0x85E5 # <CJK>
+0x17870 0x85F7 # <CJK>
+0x17871 0x87FB # <CJK>
+0x17872 0x8805 # <CJK>
+0x17873 0x880D # <CJK>
+0x17874 0x87F9 # <CJK>
+0x17875 0x87FE # <CJK>
+0x17876 0x8960 # <CJK>
+0x17877 0x895F # <CJK>
+0x17878 0x8956 # <CJK>
+0x17879 0x895E # <CJK>
+0x1787A 0x8B41 # <CJK>
+0x1787B 0x8B5C # <CJK>
+0x1787C 0x8B58 # <CJK>
+0x1787D 0x8B49 # <CJK>
+0x1787E 0x8B5A # <CJK>
+0x17921 0x8B4E # <CJK>
+0x17922 0x8B4F # <CJK>
+0x17923 0x8B46 # <CJK>
+0x17924 0x8B59 # <CJK>
+0x17925 0x8D08 # <CJK>
+0x17926 0x8D0A # <CJK>
+0x17927 0x8E7C # <CJK>
+0x17928 0x8E72 # <CJK>
+0x17929 0x8E87 # <CJK>
+0x1792A 0x8E76 # <CJK>
+0x1792B 0x8E6C # <CJK>
+0x1792C 0x8E7A # <CJK>
+0x1792D 0x8E74 # <CJK>
+0x1792E 0x8F54 # <CJK>
+0x1792F 0x8F4E # <CJK>
+0x17930 0x8FAD # <CJK>
+0x17931 0x908A # <CJK>
+0x17932 0x908B # <CJK>
+0x17933 0x91B1 # <CJK>
+0x17934 0x91AE # <CJK>
+0x17935 0x93E1 # <CJK>
+0x17936 0x93D1 # <CJK>
+0x17937 0x93DF # <CJK>
+0x17938 0x93C3 # <CJK>
+0x17939 0x93C8 # <CJK>
+0x1793A 0x93DC # <CJK>
+0x1793B 0x93DD # <CJK>
+0x1793C 0x93D6 # <CJK>
+0x1793D 0x93E2 # <CJK>
+0x1793E 0x93CD # <CJK>
+0x1793F 0x93D8 # <CJK>
+0x17940 0x93E4 # <CJK>
+0x17941 0x93D7 # <CJK>
+0x17942 0x93E8 # <CJK>
+0x17943 0x95DC # <CJK>
+0x17944 0x96B4 # <CJK>
+0x17945 0x96E3 # <CJK>
+0x17946 0x972A # <CJK>
+0x17947 0x9727 # <CJK>
+0x17948 0x9761 # <CJK>
+0x17949 0x97DC # <CJK>
+0x1794A 0x97FB # <CJK>
+0x1794B 0x985E # <CJK>
+0x1794C 0x9858 # <CJK>
+0x1794D 0x985B # <CJK>
+0x1794E 0x98BC # <CJK>
+0x1794F 0x9945 # <CJK>
+0x17950 0x9949 # <CJK>
+0x17951 0x9A16 # <CJK>
+0x17952 0x9A19 # <CJK>
+0x17953 0x9B0D # <CJK>
+0x17954 0x9BE8 # <CJK>
+0x17955 0x9BE7 # <CJK>
+0x17956 0x9BD6 # <CJK>
+0x17957 0x9BDB # <CJK>
+0x17958 0x9D89 # <CJK>
+0x17959 0x9D61 # <CJK>
+0x1795A 0x9D72 # <CJK>
+0x1795B 0x9D6A # <CJK>
+0x1795C 0x9D6C # <CJK>
+0x1795D 0x9E92 # <CJK>
+0x1795E 0x9E97 # <CJK>
+0x1795F 0x9E93 # <CJK>
+0x17960 0x9EB4 # <CJK>
+0x17961 0x52F8 # <CJK>
+0x17962 0x56B7 # <CJK>
+0x17963 0x56B6 # <CJK>
+0x17964 0x56B4 # <CJK>
+0x17965 0x56BC # <CJK>
+0x17966 0x58E4 # <CJK>
+0x17967 0x5B40 # <CJK>
+0x17968 0x5B43 # <CJK>
+0x17969 0x5B7D # <CJK>
+0x1796A 0x5BF6 # <CJK>
+0x1796B 0x5DC9 # <CJK>
+0x1796C 0x61F8 # <CJK>
+0x1796D 0x61FA # <CJK>
+0x1796E 0x6518 # <CJK>
+0x1796F 0x6514 # <CJK>
+0x17970 0x6519 # <CJK>
+0x17971 0x66E6 # <CJK>
+0x17972 0x6727 # <CJK>
+0x17973 0x6AEC # <CJK>
+0x17974 0x703E # <CJK>
+0x17975 0x7030 # <CJK>
+0x17976 0x7032 # <CJK>
+0x17977 0x7210 # <CJK>
+0x17978 0x737B # <CJK>
+0x17979 0x74CF # <CJK>
+0x1797A 0x7662 # <CJK>
+0x1797B 0x7665 # <CJK>
+0x1797C 0x7926 # <CJK>
+0x1797D 0x792A # <CJK>
+0x1797E 0x792C # <CJK>
+0x17A21 0x792B # <CJK>
+0x17A22 0x7AC7 # <CJK>
+0x17A23 0x7AF6 # <CJK>
+0x17A24 0x7C4C # <CJK>
+0x17A25 0x7C43 # <CJK>
+0x17A26 0x7C4D # <CJK>
+0x17A27 0x7CEF # <CJK>
+0x17A28 0x7CF0 # <CJK>
+0x17A29 0x8FAE # <CJK>
+0x17A2A 0x7E7D # <CJK>
+0x17A2B 0x7E7C # <CJK>
+0x17A2C 0x7E82 # <CJK>
+0x17A2D 0x7F4C # <CJK>
+0x17A2E 0x8000 # <CJK>
+0x17A2F 0x81DA # <CJK>
+0x17A30 0x8266 # <CJK>
+0x17A31 0x85FB # <CJK>
+0x17A32 0x85F9 # <CJK>
+0x17A33 0x8611 # <CJK>
+0x17A34 0x85FA # <CJK>
+0x17A35 0x8606 # <CJK>
+0x17A36 0x860B # <CJK>
+0x17A37 0x8607 # <CJK>
+0x17A38 0x860A # <CJK>
+0x17A39 0x8814 # <CJK>
+0x17A3A 0x8815 # <CJK>
+0x17A3B 0x8964 # <CJK>
+0x17A3C 0x89BA # <CJK>
+0x17A3D 0x89F8 # <CJK>
+0x17A3E 0x8B70 # <CJK>
+0x17A3F 0x8B6C # <CJK>
+0x17A40 0x8B66 # <CJK>
+0x17A41 0x8B6F # <CJK>
+0x17A42 0x8B5F # <CJK>
+0x17A43 0x8B6B # <CJK>
+0x17A44 0x8D0F # <CJK>
+0x17A45 0x8D0D # <CJK>
+0x17A46 0x8E89 # <CJK>
+0x17A47 0x8E81 # <CJK>
+0x17A48 0x8E85 # <CJK>
+0x17A49 0x8E82 # <CJK>
+0x17A4A 0x91B4 # <CJK>
+0x17A4B 0x91CB # <CJK>
+0x17A4C 0x9418 # <CJK>
+0x17A4D 0x9403 # <CJK>
+0x17A4E 0x93FD # <CJK>
+0x17A4F 0x95E1 # <CJK>
+0x17A50 0x9730 # <CJK>
+0x17A51 0x98C4 # <CJK>
+0x17A52 0x9952 # <CJK>
+0x17A53 0x9951 # <CJK>
+0x17A54 0x99A8 # <CJK>
+0x17A55 0x9A2B # <CJK>
+0x17A56 0x9A30 # <CJK>
+0x17A57 0x9A37 # <CJK>
+0x17A58 0x9A35 # <CJK>
+0x17A59 0x9C13 # <CJK>
+0x17A5A 0x9C0D # <CJK>
+0x17A5B 0x9E79 # <CJK>
+0x17A5C 0x9EB5 # <CJK>
+0x17A5D 0x9EE8 # <CJK>
+0x17A5E 0x9F2F # <CJK>
+0x17A5F 0x9F5F # <CJK>
+0x17A60 0x9F63 # <CJK>
+0x17A61 0x9F61 # <CJK>
+0x17A62 0x5137 # <CJK>
+0x17A63 0x5138 # <CJK>
+0x17A64 0x56C1 # <CJK>
+0x17A65 0x56C0 # <CJK>
+0x17A66 0x56C2 # <CJK>
+0x17A67 0x5914 # <CJK>
+0x17A68 0x5C6C # <CJK>
+0x17A69 0x5DCD # <CJK>
+0x17A6A 0x61FC # <CJK>
+0x17A6B 0x61FE # <CJK>
+0x17A6C 0x651D # <CJK>
+0x17A6D 0x651C # <CJK>
+0x17A6E 0x6595 # <CJK>
+0x17A6F 0x66E9 # <CJK>
+0x17A70 0x6AFB # <CJK>
+0x17A71 0x6B04 # <CJK>
+0x17A72 0x6AFA # <CJK>
+0x17A73 0x6BB2 # <CJK>
+0x17A74 0x704C # <CJK>
+0x17A75 0x721B # <CJK>
+0x17A76 0x72A7 # <CJK>
+0x17A77 0x74D6 # <CJK>
+0x17A78 0x74D4 # <CJK>
+0x17A79 0x7669 # <CJK>
+0x17A7A 0x77D3 # <CJK>
+0x17A7B 0x7C50 # <CJK>
+0x17A7C 0x7E8F # <CJK>
+0x17A7D 0x7E8C # <CJK>
+0x17A7E 0x7FBC # <CJK>
+0x17B21 0x8617 # <CJK>
+0x17B22 0x862D # <CJK>
+0x17B23 0x861A # <CJK>
+0x17B24 0x8823 # <CJK>
+0x17B25 0x8822 # <CJK>
+0x17B26 0x8821 # <CJK>
+0x17B27 0x881F # <CJK>
+0x17B28 0x896A # <CJK>
+0x17B29 0x896C # <CJK>
+0x17B2A 0x89BD # <CJK>
+0x17B2B 0x8B74 # <CJK>
+0x17B2C 0x8B77 # <CJK>
+0x17B2D 0x8B7D # <CJK>
+0x17B2E 0x8D13 # <CJK>
+0x17B2F 0x8E8A # <CJK>
+0x17B30 0x8E8D # <CJK>
+0x17B31 0x8E8B # <CJK>
+0x17B32 0x8F5F # <CJK>
+0x17B33 0x8FAF # <CJK>
+0x17B34 0x91BA # <CJK>
+0x17B35 0x942E # <CJK>
+0x17B36 0x9433 # <CJK>
+0x17B37 0x9435 # <CJK>
+0x17B38 0x943A # <CJK>
+0x17B39 0x9438 # <CJK>
+0x17B3A 0x9432 # <CJK>
+0x17B3B 0x942B # <CJK>
+0x17B3C 0x95E2 # <CJK>
+0x17B3D 0x9738 # <CJK>
+0x17B3E 0x9739 # <CJK>
+0x17B3F 0x9732 # <CJK>
+0x17B40 0x97FF # <CJK>
+0x17B41 0x9867 # <CJK>
+0x17B42 0x9865 # <CJK>
+0x17B43 0x9957 # <CJK>
+0x17B44 0x9A45 # <CJK>
+0x17B45 0x9A43 # <CJK>
+0x17B46 0x9A40 # <CJK>
+0x17B47 0x9A3E # <CJK>
+0x17B48 0x9ACF # <CJK>
+0x17B49 0x9B54 # <CJK>
+0x17B4A 0x9B51 # <CJK>
+0x17B4B 0x9C2D # <CJK>
+0x17B4C 0x9C25 # <CJK>
+0x17B4D 0x9DAF # <CJK>
+0x17B4E 0x9DB4 # <CJK>
+0x17B4F 0x9DC2 # <CJK>
+0x17B50 0x9DB8 # <CJK>
+0x17B51 0x9E9D # <CJK>
+0x17B52 0x9EEF # <CJK>
+0x17B53 0x9F19 # <CJK>
+0x17B54 0x9F5C # <CJK>
+0x17B55 0x9F66 # <CJK>
+0x17B56 0x9F67 # <CJK>
+0x17B57 0x513C # <CJK>
+0x17B58 0x513B # <CJK>
+0x17B59 0x56C8 # <CJK>
+0x17B5A 0x56CA # <CJK>
+0x17B5B 0x56C9 # <CJK>
+0x17B5C 0x5B7F # <CJK>
+0x17B5D 0x5DD4 # <CJK>
+0x17B5E 0x5DD2 # <CJK>
+0x17B5F 0x5F4E # <CJK>
+0x17B60 0x61FF # <CJK>
+0x17B61 0x6524 # <CJK>
+0x17B62 0x6B0A # <CJK>
+0x17B63 0x6B61 # <CJK>
+0x17B64 0x7051 # <CJK>
+0x17B65 0x7058 # <CJK>
+0x17B66 0x7380 # <CJK>
+0x17B67 0x74E4 # <CJK>
+0x17B68 0x758A # <CJK>
+0x17B69 0x766E # <CJK>
+0x17B6A 0x766C # <CJK>
+0x17B6B 0x79B3 # <CJK>
+0x17B6C 0x7C60 # <CJK>
+0x17B6D 0x7C5F # <CJK>
+0x17B6E 0x807E # <CJK>
+0x17B6F 0x807D # <CJK>
+0x17B70 0x81DF # <CJK>
+0x17B71 0x8972 # <CJK>
+0x17B72 0x896F # <CJK>
+0x17B73 0x89FC # <CJK>
+0x17B74 0x8B80 # <CJK>
+0x17B75 0x8D16 # <CJK>
+0x17B76 0x8D17 # <CJK>
+0x17B77 0x8E91 # <CJK>
+0x17B78 0x8E93 # <CJK>
+0x17B79 0x8F61 # <CJK>
+0x17B7A 0x9148 # <CJK>
+0x17B7B 0x9444 # <CJK>
+0x17B7C 0x9451 # <CJK>
+0x17B7D 0x9452 # <CJK>
+0x17B7E 0x973D # <CJK>
+0x17C21 0x973E # <CJK>
+0x17C22 0x97C3 # <CJK>
+0x17C23 0x97C1 # <CJK>
+0x17C24 0x986B # <CJK>
+0x17C25 0x9955 # <CJK>
+0x17C26 0x9A55 # <CJK>
+0x17C27 0x9A4D # <CJK>
+0x17C28 0x9AD2 # <CJK>
+0x17C29 0x9B1A # <CJK>
+0x17C2A 0x9C49 # <CJK>
+0x17C2B 0x9C31 # <CJK>
+0x17C2C 0x9C3E # <CJK>
+0x17C2D 0x9C3B # <CJK>
+0x17C2E 0x9DD3 # <CJK>
+0x17C2F 0x9DD7 # <CJK>
+0x17C30 0x9F34 # <CJK>
+0x17C31 0x9F6C # <CJK>
+0x17C32 0x9F6A # <CJK>
+0x17C33 0x9F94 # <CJK>
+0x17C34 0x56CC # <CJK>
+0x17C35 0x5DD6 # <CJK>
+0x17C36 0x6200 # <CJK>
+0x17C37 0x6523 # <CJK>
+0x17C38 0x652B # <CJK>
+0x17C39 0x652A # <CJK>
+0x17C3A 0x66EC # <CJK>
+0x17C3B 0x6B10 # <CJK>
+0x17C3C 0x74DA # <CJK>
+0x17C3D 0x7ACA # <CJK>
+0x17C3E 0x7C64 # <CJK>
+0x17C3F 0x7C63 # <CJK>
+0x17C40 0x7C65 # <CJK>
+0x17C41 0x7E93 # <CJK>
+0x17C42 0x7E96 # <CJK>
+0x17C43 0x7E94 # <CJK>
+0x17C44 0x81E2 # <CJK>
+0x17C45 0x8638 # <CJK>
+0x17C46 0x863F # <CJK>
+0x17C47 0x8831 # <CJK>
+0x17C48 0x8B8A # <CJK>
+0x17C49 0x9090 # <CJK>
+0x17C4A 0x908F # <CJK>
+0x17C4B 0x9463 # <CJK>
+0x17C4C 0x9460 # <CJK>
+0x17C4D 0x9464 # <CJK>
+0x17C4E 0x9768 # <CJK>
+0x17C4F 0x986F # <CJK>
+0x17C50 0x995C # <CJK>
+0x17C51 0x9A5A # <CJK>
+0x17C52 0x9A5B # <CJK>
+0x17C53 0x9A57 # <CJK>
+0x17C54 0x9AD3 # <CJK>
+0x17C55 0x9AD4 # <CJK>
+0x17C56 0x9AD1 # <CJK>
+0x17C57 0x9C54 # <CJK>
+0x17C58 0x9C57 # <CJK>
+0x17C59 0x9C56 # <CJK>
+0x17C5A 0x9DE5 # <CJK>
+0x17C5B 0x9E9F # <CJK>
+0x17C5C 0x9EF4 # <CJK>
+0x17C5D 0x56D1 # <CJK>
+0x17C5E 0x58E9 # <CJK>
+0x17C5F 0x652C # <CJK>
+0x17C60 0x705E # <CJK>
+0x17C61 0x7671 # <CJK>
+0x17C62 0x7672 # <CJK>
+0x17C63 0x77D7 # <CJK>
+0x17C64 0x7F50 # <CJK>
+0x17C65 0x7F88 # <CJK>
+0x17C66 0x8836 # <CJK>
+0x17C67 0x8839 # <CJK>
+0x17C68 0x8862 # <CJK>
+0x17C69 0x8B93 # <CJK>
+0x17C6A 0x8B92 # <CJK>
+0x17C6B 0x8B96 # <CJK>
+0x17C6C 0x8277 # <CJK>
+0x17C6D 0x8D1B # <CJK>
+0x17C6E 0x91C0 # <CJK>
+0x17C6F 0x946A # <CJK>
+0x17C70 0x9742 # <CJK>
+0x17C71 0x9748 # <CJK>
+0x17C72 0x9744 # <CJK>
+0x17C73 0x97C6 # <CJK>
+0x17C74 0x9870 # <CJK>
+0x17C75 0x9A5F # <CJK>
+0x17C76 0x9B22 # <CJK>
+0x17C77 0x9B58 # <CJK>
+0x17C78 0x9C5F # <CJK>
+0x17C79 0x9DF9 # <CJK>
+0x17C7A 0x9DFA # <CJK>
+0x17C7B 0x9E7C # <CJK>
+0x17C7C 0x9E7D # <CJK>
+0x17C7D 0x9F07 # <CJK>
+0x17C7E 0x9F77 # <CJK>
+0x17D21 0x9F72 # <CJK>
+0x17D22 0x5EF3 # <CJK>
+0x17D23 0x6B16 # <CJK>
+0x17D24 0x7063 # <CJK>
+0x17D25 0x7C6C # <CJK>
+0x17D26 0x7C6E # <CJK>
+0x17D27 0x883B # <CJK>
+0x17D28 0x89C0 # <CJK>
+0x17D29 0x8EA1 # <CJK>
+0x17D2A 0x91C1 # <CJK>
+0x17D2B 0x9472 # <CJK>
+0x17D2C 0x9470 # <CJK>
+0x17D2D 0x9871 # <CJK>
+0x17D2E 0x995E # <CJK>
+0x17D2F 0x9AD6 # <CJK>
+0x17D30 0x9B23 # <CJK>
+0x17D31 0x9ECC # <CJK>
+0x17D32 0x7064 # <CJK>
+0x17D33 0x77DA # <CJK>
+0x17D34 0x8B9A # <CJK>
+0x17D35 0x9477 # <CJK>
+0x17D36 0x97C9 # <CJK>
+0x17D37 0x9A62 # <CJK>
+0x17D38 0x9A65 # <CJK>
+0x17D39 0x7E9C # <CJK>
+0x17D3A 0x8B9C # <CJK>
+0x17D3B 0x8EAA # <CJK>
+0x17D3C 0x91C5 # <CJK>
+0x17D3D 0x947D # <CJK>
+0x17D3E 0x947E # <CJK>
+0x17D3F 0x947C # <CJK>
+0x17D40 0x9C77 # <CJK>
+0x17D41 0x9C78 # <CJK>
+0x17D42 0x9EF7 # <CJK>
+0x17D43 0x8C54 # <CJK>
+0x17D44 0x947F # <CJK>
+0x17D45 0x9E1A # <CJK>
+0x17D46 0x7228 # <CJK>
+0x17D47 0x9A6A # <CJK>
+0x17D48 0x9B31 # <CJK>
+0x17D49 0x9E1B # <CJK>
+0x17D4A 0x9E1E # <CJK>
+0x17D4B 0x7C72 # <CJK>
+0x22121 0x4E42 # <CJK>
+0x22122 0x4E5C # <CJK>
+0x22123 0x51F5 # <CJK>
+0x22124 0x531A # <CJK>
+0x22125 0x5382 # <CJK>
+0x22126 0x4E07 # <CJK>
+0x22127 0x4E0C # <CJK>
+0x22128 0x4E47 # <CJK>
+0x22129 0x4E8D # <CJK>
+0x2212A 0x56D7 # <CJK>
+0x2212B 0x5C6E # <CJK>
+0x2212C 0x5F73 # <CJK>
+0x2212D 0x4E0F # <CJK>
+0x2212E 0x5187 # <CJK>
+0x2212F 0x4E0E # <CJK>
+0x22130 0x4E2E # <CJK>
+0x22131 0x4E93 # <CJK>
+0x22132 0x4EC2 # <CJK>
+0x22133 0x4EC9 # <CJK>
+0x22134 0x4EC8 # <CJK>
+0x22135 0x5198 # <CJK>
+0x22136 0x52FC # <CJK>
+0x22137 0x536C # <CJK>
+0x22138 0x53B9 # <CJK>
+0x22139 0x5720 # <CJK>
+0x2213A 0x5903 # <CJK>
+0x2213B 0x592C # <CJK>
+0x2213C 0x5C10 # <CJK>
+0x2213D 0x5DFF # <CJK>
+0x2213E 0x65E1 # <CJK>
+0x2213F 0x6BB3 # <CJK>
+0x22140 0x6BCC # <CJK>
+0x22141 0x6C14 # <CJK>
+0x22142 0x723F # <CJK>
+0x22143 0x4E31 # <CJK>
+0x22144 0x4E3C # <CJK>
+0x22145 0x4EE8 # <CJK>
+0x22146 0x4EDC # <CJK>
+0x22147 0x4EE9 # <CJK>
+0x22148 0x4EE1 # <CJK>
+0x22149 0x4EDD # <CJK>
+0x2214A 0x4EDA # <CJK>
+0x2214B 0x520C # <CJK>
+0x2214C 0x5209 # <CJK>
+0x2214D 0x531C # <CJK>
+0x2214E 0x534C # <CJK>
+0x2214F 0x5722 # <CJK>
+0x22150 0x5723 # <CJK>
+0x22151 0x5917 # <CJK>
+0x22152 0x592F # <CJK>
+0x22153 0x5B81 # <CJK>
+0x22154 0x5B84 # <CJK>
+0x22155 0x5C12 # <CJK>
+0x22156 0x5C3B # <CJK>
+0x22157 0x5C74 # <CJK>
+0x22158 0x5C73 # <CJK>
+0x22159 0x5E04 # <CJK>
+0x2215A 0x5E80 # <CJK>
+0x2215B 0x5E82 # <CJK>
+0x2215C 0x5FC9 # <CJK>
+0x2215D 0x6209 # <CJK>
+0x2215E 0x6250 # <CJK>
+0x2215F 0x6C15 # <CJK>
+0x22160 0x6C36 # <CJK>
+0x22161 0x6C43 # <CJK>
+0x22162 0x6C3F # <CJK>
+0x22163 0x6C3B # <CJK>
+0x22164 0x72AE # <CJK>
+0x22165 0x72B0 # <CJK>
+0x22166 0x738A # <CJK>
+0x22167 0x79B8 # <CJK>
+0x22168 0x808A # <CJK>
+0x22169 0x961E # <CJK>
+0x2216A 0x4F0E # <CJK>
+0x2216B 0x4F18 # <CJK>
+0x2216C 0x4F2C # <CJK>
+0x2216D 0x4EF5 # <CJK>
+0x2216E 0x4F14 # <CJK>
+0x2216F 0x4EF1 # <CJK>
+0x22170 0x4F00 # <CJK>
+0x22171 0x4EF7 # <CJK>
+0x22172 0x4F08 # <CJK>
+0x22173 0x4F1D # <CJK>
+0x22174 0x4F02 # <CJK>
+0x22175 0x4F05 # <CJK>
+0x22176 0x4F22 # <CJK>
+0x22177 0x4F13 # <CJK>
+0x22178 0x4F04 # <CJK>
+0x22179 0x4EF4 # <CJK>
+0x2217A 0x4F12 # <CJK>
+0x2217B 0x51B1 # <CJK>
+0x2217C 0x5213 # <CJK>
+0x2217D 0x5210 # <CJK>
+0x2217E 0x52A6 # <CJK>
+0x22221 0x5322 # <CJK>
+0x22222 0x531F # <CJK>
+0x22223 0x534D # <CJK>
+0x22224 0x538A # <CJK>
+0x22225 0x5407 # <CJK>
+0x22226 0x56E1 # <CJK>
+0x22227 0x56DF # <CJK>
+0x22228 0x572E # <CJK>
+0x22229 0x572A # <CJK>
+0x2222A 0x5734 # <CJK>
+0x2222B 0x593C # <CJK>
+0x2222C 0x5980 # <CJK>
+0x2222D 0x597C # <CJK>
+0x2222E 0x5985 # <CJK>
+0x2222F 0x597B # <CJK>
+0x22230 0x597E # <CJK>
+0x22231 0x5977 # <CJK>
+0x22232 0x597F # <CJK>
+0x22233 0x5B56 # <CJK>
+0x22234 0x5C15 # <CJK>
+0x22235 0x5C25 # <CJK>
+0x22236 0x5C7C # <CJK>
+0x22237 0x5C7A # <CJK>
+0x22238 0x5C7B # <CJK>
+0x22239 0x5C7E # <CJK>
+0x2223A 0x5DDF # <CJK>
+0x2223B 0x5E75 # <CJK>
+0x2223C 0x5E84 # <CJK>
+0x2223D 0x5F02 # <CJK>
+0x2223E 0x5F1A # <CJK>
+0x2223F 0x5F74 # <CJK>
+0x22240 0x5FD5 # <CJK>
+0x22241 0x5FD4 # <CJK>
+0x22242 0x5FCF # <CJK>
+0x22243 0x625C # <CJK>
+0x22244 0x625E # <CJK>
+0x22245 0x6264 # <CJK>
+0x22246 0x6261 # <CJK>
+0x22247 0x6266 # <CJK>
+0x22248 0x6262 # <CJK>
+0x22249 0x6259 # <CJK>
+0x2224A 0x6260 # <CJK>
+0x2224B 0x625A # <CJK>
+0x2224C 0x6265 # <CJK>
+0x2224D 0x6537 # <CJK>
+0x2224E 0x65EF # <CJK>
+0x2224F 0x65EE # <CJK>
+0x22250 0x673E # <CJK>
+0x22251 0x6739 # <CJK>
+0x22252 0x6738 # <CJK>
+0x22253 0x673B # <CJK>
+0x22254 0x673A # <CJK>
+0x22255 0x673F # <CJK>
+0x22256 0x673C # <CJK>
+0x22257 0x6733 # <CJK>
+0x22258 0x6C18 # <CJK>
+0x22259 0x6C46 # <CJK>
+0x2225A 0x6C52 # <CJK>
+0x2225B 0x6C5C # <CJK>
+0x2225C 0x6C4F # <CJK>
+0x2225D 0x6C4A # <CJK>
+0x2225E 0x6C54 # <CJK>
+0x2225F 0x6C4B # <CJK>
+0x22260 0x6C4C # <CJK>
+0x22261 0x7071 # <CJK>
+0x22262 0x725E # <CJK>
+0x22263 0x72B4 # <CJK>
+0x22264 0x72B5 # <CJK>
+0x22265 0x738E # <CJK>
+0x22266 0x752A # <CJK>
+0x22267 0x767F # <CJK>
+0x22268 0x7A75 # <CJK>
+0x22269 0x7F51 # <CJK>
+0x2226A 0x8278 # <CJK>
+0x2226B 0x827C # <CJK>
+0x2226C 0x8280 # <CJK>
+0x2226D 0x827D # <CJK>
+0x2226E 0x827F # <CJK>
+0x2226F 0x864D # <CJK>
+0x22270 0x897E # <CJK>
+0x22271 0x9099 # <CJK>
+0x22272 0x9097 # <CJK>
+0x22273 0x9098 # <CJK>
+0x22274 0x909B # <CJK>
+0x22275 0x9094 # <CJK>
+0x22276 0x9622 # <CJK>
+0x22277 0x9624 # <CJK>
+0x22278 0x9620 # <CJK>
+0x22279 0x9623 # <CJK>
+0x2227A 0x4F56 # <CJK>
+0x2227B 0x4F3B # <CJK>
+0x2227C 0x4F62 # <CJK>
+0x2227D 0x4F49 # <CJK>
+0x2227E 0x4F53 # <CJK>
+0x22321 0x4F64 # <CJK>
+0x22322 0x4F3E # <CJK>
+0x22323 0x4F67 # <CJK>
+0x22324 0x4F52 # <CJK>
+0x22325 0x4F5F # <CJK>
+0x22326 0x4F41 # <CJK>
+0x22327 0x4F58 # <CJK>
+0x22328 0x4F2D # <CJK>
+0x22329 0x4F33 # <CJK>
+0x2232A 0x4F3F # <CJK>
+0x2232B 0x4F61 # <CJK>
+0x2232C 0x518F # <CJK>
+0x2232D 0x51B9 # <CJK>
+0x2232E 0x521C # <CJK>
+0x2232F 0x521E # <CJK>
+0x22330 0x5221 # <CJK>
+0x22331 0x52AD # <CJK>
+0x22332 0x52AE # <CJK>
+0x22333 0x5309 # <CJK>
+0x22334 0x5363 # <CJK>
+0x22335 0x5372 # <CJK>
+0x22336 0x538E # <CJK>
+0x22337 0x538F # <CJK>
+0x22338 0x5430 # <CJK>
+0x22339 0x5437 # <CJK>
+0x2233A 0x542A # <CJK>
+0x2233B 0x5454 # <CJK>
+0x2233C 0x5445 # <CJK>
+0x2233D 0x5419 # <CJK>
+0x2233E 0x541C # <CJK>
+0x2233F 0x5425 # <CJK>
+0x22340 0x5418 # <CJK>
+0x22341 0x543D # <CJK>
+0x22342 0x544F # <CJK>
+0x22343 0x5441 # <CJK>
+0x22344 0x5428 # <CJK>
+0x22345 0x5424 # <CJK>
+0x22346 0x5447 # <CJK>
+0x22347 0x56EE # <CJK>
+0x22348 0x56E7 # <CJK>
+0x22349 0x56E5 # <CJK>
+0x2234A 0x5741 # <CJK>
+0x2234B 0x5745 # <CJK>
+0x2234C 0x574C # <CJK>
+0x2234D 0x5749 # <CJK>
+0x2234E 0x574B # <CJK>
+0x2234F 0x5752 # <CJK>
+0x22350 0x5906 # <CJK>
+0x22351 0x5940 # <CJK>
+0x22352 0x59A6 # <CJK>
+0x22353 0x5998 # <CJK>
+0x22354 0x59A0 # <CJK>
+0x22355 0x5997 # <CJK>
+0x22356 0x598E # <CJK>
+0x22357 0x59A2 # <CJK>
+0x22358 0x5990 # <CJK>
+0x22359 0x598F # <CJK>
+0x2235A 0x59A7 # <CJK>
+0x2235B 0x59A1 # <CJK>
+0x2235C 0x5B8E # <CJK>
+0x2235D 0x5B92 # <CJK>
+0x2235E 0x5C28 # <CJK>
+0x2235F 0x5C2A # <CJK>
+0x22360 0x5C8D # <CJK>
+0x22361 0x5C8F # <CJK>
+0x22362 0x5C88 # <CJK>
+0x22363 0x5C8B # <CJK>
+0x22364 0x5C89 # <CJK>
+0x22365 0x5C92 # <CJK>
+0x22366 0x5C8A # <CJK>
+0x22367 0x5C86 # <CJK>
+0x22368 0x5C93 # <CJK>
+0x22369 0x5C95 # <CJK>
+0x2236A 0x5DE0 # <CJK>
+0x2236B 0x5E0A # <CJK>
+0x2236C 0x5E0E # <CJK>
+0x2236D 0x5E8B # <CJK>
+0x2236E 0x5E89 # <CJK>
+0x2236F 0x5E8C # <CJK>
+0x22370 0x5E88 # <CJK>
+0x22371 0x5E8D # <CJK>
+0x22372 0x5F05 # <CJK>
+0x22373 0x5F1D # <CJK>
+0x22374 0x5F78 # <CJK>
+0x22375 0x5F76 # <CJK>
+0x22376 0x5FD2 # <CJK>
+0x22377 0x5FD1 # <CJK>
+0x22378 0x5FD0 # <CJK>
+0x22379 0x5FED # <CJK>
+0x2237A 0x5FE8 # <CJK>
+0x2237B 0x5FEE # <CJK>
+0x2237C 0x5FF3 # <CJK>
+0x2237D 0x5FE1 # <CJK>
+0x2237E 0x5FE4 # <CJK>
+0x22421 0x5FE3 # <CJK>
+0x22422 0x5FFA # <CJK>
+0x22423 0x5FEF # <CJK>
+0x22424 0x5FF7 # <CJK>
+0x22425 0x5FFB # <CJK>
+0x22426 0x6000 # <CJK>
+0x22427 0x5FF4 # <CJK>
+0x22428 0x623A # <CJK>
+0x22429 0x6283 # <CJK>
+0x2242A 0x628C # <CJK>
+0x2242B 0x628E # <CJK>
+0x2242C 0x628F # <CJK>
+0x2242D 0x6294 # <CJK>
+0x2242E 0x6287 # <CJK>
+0x2242F 0x6271 # <CJK>
+0x22430 0x627B # <CJK>
+0x22431 0x627A # <CJK>
+0x22432 0x6270 # <CJK>
+0x22433 0x6281 # <CJK>
+0x22434 0x6288 # <CJK>
+0x22435 0x6277 # <CJK>
+0x22436 0x627D # <CJK>
+0x22437 0x6272 # <CJK>
+0x22438 0x6274 # <CJK>
+0x22439 0x65F0 # <CJK>
+0x2243A 0x65F4 # <CJK>
+0x2243B 0x65F3 # <CJK>
+0x2243C 0x65F2 # <CJK>
+0x2243D 0x65F5 # <CJK>
+0x2243E 0x6745 # <CJK>
+0x2243F 0x6747 # <CJK>
+0x22440 0x6759 # <CJK>
+0x22441 0x6755 # <CJK>
+0x22442 0x674C # <CJK>
+0x22443 0x6748 # <CJK>
+0x22444 0x675D # <CJK>
+0x22445 0x674D # <CJK>
+0x22446 0x675A # <CJK>
+0x22447 0x674B # <CJK>
+0x22448 0x6BD0 # <CJK>
+0x22449 0x6C19 # <CJK>
+0x2244A 0x6C1A # <CJK>
+0x2244B 0x6C78 # <CJK>
+0x2244C 0x6C67 # <CJK>
+0x2244D 0x6C6B # <CJK>
+0x2244E 0x6C84 # <CJK>
+0x2244F 0x6C8B # <CJK>
+0x22450 0x6C8F # <CJK>
+0x22451 0x6C71 # <CJK>
+0x22452 0x6C6F # <CJK>
+0x22453 0x6C69 # <CJK>
+0x22454 0x6C9A # <CJK>
+0x22455 0x6C6D # <CJK>
+0x22456 0x6C87 # <CJK>
+0x22457 0x6C95 # <CJK>
+0x22458 0x6C9C # <CJK>
+0x22459 0x6C66 # <CJK>
+0x2245A 0x6C73 # <CJK>
+0x2245B 0x6C65 # <CJK>
+0x2245C 0x6C7B # <CJK>
+0x2245D 0x6C8E # <CJK>
+0x2245E 0x7074 # <CJK>
+0x2245F 0x707A # <CJK>
+0x22460 0x7263 # <CJK>
+0x22461 0x72BF # <CJK>
+0x22462 0x72BD # <CJK>
+0x22463 0x72C3 # <CJK>
+0x22464 0x72C6 # <CJK>
+0x22465 0x72C1 # <CJK>
+0x22466 0x72BA # <CJK>
+0x22467 0x72C5 # <CJK>
+0x22468 0x7395 # <CJK>
+0x22469 0x7397 # <CJK>
+0x2246A 0x7393 # <CJK>
+0x2246B 0x7394 # <CJK>
+0x2246C 0x7392 # <CJK>
+0x2246D 0x753A # <CJK>
+0x2246E 0x7539 # <CJK>
+0x2246F 0x7594 # <CJK>
+0x22470 0x7595 # <CJK>
+0x22471 0x7681 # <CJK>
+0x22472 0x793D # <CJK>
+0x22473 0x8034 # <CJK>
+0x22474 0x8095 # <CJK>
+0x22475 0x8099 # <CJK>
+0x22476 0x8090 # <CJK>
+0x22477 0x8092 # <CJK>
+0x22478 0x809C # <CJK>
+0x22479 0x8290 # <CJK>
+0x2247A 0x828F # <CJK>
+0x2247B 0x8285 # <CJK>
+0x2247C 0x828E # <CJK>
+0x2247D 0x8291 # <CJK>
+0x2247E 0x8293 # <CJK>
+0x22521 0x828A # <CJK>
+0x22522 0x8283 # <CJK>
+0x22523 0x8284 # <CJK>
+0x22524 0x8C78 # <CJK>
+0x22525 0x8FC9 # <CJK>
+0x22526 0x8FBF # <CJK>
+0x22527 0x909F # <CJK>
+0x22528 0x90A1 # <CJK>
+0x22529 0x90A5 # <CJK>
+0x2252A 0x909E # <CJK>
+0x2252B 0x90A7 # <CJK>
+0x2252C 0x90A0 # <CJK>
+0x2252D 0x9630 # <CJK>
+0x2252E 0x9628 # <CJK>
+0x2252F 0x962F # <CJK>
+0x22530 0x962D # <CJK>
+0x22531 0x4E33 # <CJK>
+0x22532 0x4F98 # <CJK>
+0x22533 0x4F7C # <CJK>
+0x22534 0x4F85 # <CJK>
+0x22535 0x4F7D # <CJK>
+0x22536 0x4F80 # <CJK>
+0x22537 0x4F87 # <CJK>
+0x22538 0x4F76 # <CJK>
+0x22539 0x4F74 # <CJK>
+0x2253A 0x4F89 # <CJK>
+0x2253B 0x4F84 # <CJK>
+0x2253C 0x4F77 # <CJK>
+0x2253D 0x4F4C # <CJK>
+0x2253E 0x4F97 # <CJK>
+0x2253F 0x4F6A # <CJK>
+0x22540 0x4F9A # <CJK>
+0x22541 0x4F79 # <CJK>
+0x22542 0x4F81 # <CJK>
+0x22543 0x4F78 # <CJK>
+0x22544 0x4F90 # <CJK>
+0x22545 0x4F9C # <CJK>
+0x22546 0x4F94 # <CJK>
+0x22547 0x4F9E # <CJK>
+0x22548 0x4F92 # <CJK>
+0x22549 0x4F82 # <CJK>
+0x2254A 0x4F95 # <CJK>
+0x2254B 0x4F6B # <CJK>
+0x2254C 0x4F6E # <CJK>
+0x2254D 0x519E # <CJK>
+0x2254E 0x51BC # <CJK>
+0x2254F 0x51BE # <CJK>
+0x22550 0x5235 # <CJK>
+0x22551 0x5232 # <CJK>
+0x22552 0x5233 # <CJK>
+0x22553 0x5246 # <CJK>
+0x22554 0x5231 # <CJK>
+0x22555 0x52BC # <CJK>
+0x22556 0x530A # <CJK>
+0x22557 0x530B # <CJK>
+0x22558 0x533C # <CJK>
+0x22559 0x5392 # <CJK>
+0x2255A 0x5394 # <CJK>
+0x2255B 0x5487 # <CJK>
+0x2255C 0x547F # <CJK>
+0x2255D 0x5481 # <CJK>
+0x2255E 0x5491 # <CJK>
+0x2255F 0x5482 # <CJK>
+0x22560 0x5488 # <CJK>
+0x22561 0x546B # <CJK>
+0x22562 0x547A # <CJK>
+0x22563 0x547E # <CJK>
+0x22564 0x5465 # <CJK>
+0x22565 0x546C # <CJK>
+0x22566 0x5474 # <CJK>
+0x22567 0x5466 # <CJK>
+0x22568 0x548D # <CJK>
+0x22569 0x546F # <CJK>
+0x2256A 0x5461 # <CJK>
+0x2256B 0x5460 # <CJK>
+0x2256C 0x5498 # <CJK>
+0x2256D 0x5463 # <CJK>
+0x2256E 0x5467 # <CJK>
+0x2256F 0x5464 # <CJK>
+0x22570 0x56F7 # <CJK>
+0x22571 0x56F9 # <CJK>
+0x22572 0x576F # <CJK>
+0x22573 0x5772 # <CJK>
+0x22574 0x576D # <CJK>
+0x22575 0x576B # <CJK>
+0x22576 0x5771 # <CJK>
+0x22577 0x5770 # <CJK>
+0x22578 0x5776 # <CJK>
+0x22579 0x5780 # <CJK>
+0x2257A 0x5775 # <CJK>
+0x2257B 0x577B # <CJK>
+0x2257C 0x5773 # <CJK>
+0x2257D 0x5774 # <CJK>
+0x2257E 0x5762 # <CJK>
+0x22621 0x5768 # <CJK>
+0x22622 0x577D # <CJK>
+0x22623 0x590C # <CJK>
+0x22624 0x5945 # <CJK>
+0x22625 0x59B5 # <CJK>
+0x22626 0x59BA # <CJK>
+0x22627 0x59CF # <CJK>
+0x22628 0x59CE # <CJK>
+0x22629 0x59B2 # <CJK>
+0x2262A 0x59CC # <CJK>
+0x2262B 0x59C1 # <CJK>
+0x2262C 0x59B6 # <CJK>
+0x2262D 0x59BC # <CJK>
+0x2262E 0x59C3 # <CJK>
+0x2262F 0x59D6 # <CJK>
+0x22630 0x59B1 # <CJK>
+0x22631 0x59BD # <CJK>
+0x22632 0x59C0 # <CJK>
+0x22633 0x59C8 # <CJK>
+0x22634 0x59B4 # <CJK>
+0x22635 0x59C7 # <CJK>
+0x22636 0x5B62 # <CJK>
+0x22637 0x5B65 # <CJK>
+0x22638 0x5B93 # <CJK>
+0x22639 0x5B95 # <CJK>
+0x2263A 0x5C44 # <CJK>
+0x2263B 0x5C47 # <CJK>
+0x2263C 0x5CAE # <CJK>
+0x2263D 0x5CA4 # <CJK>
+0x2263E 0x5CA0 # <CJK>
+0x2263F 0x5CB5 # <CJK>
+0x22640 0x5CAF # <CJK>
+0x22641 0x5CA8 # <CJK>
+0x22642 0x5CAC # <CJK>
+0x22643 0x5C9F # <CJK>
+0x22644 0x5CA3 # <CJK>
+0x22645 0x5CAD # <CJK>
+0x22646 0x5CA2 # <CJK>
+0x22647 0x5CAA # <CJK>
+0x22648 0x5CA7 # <CJK>
+0x22649 0x5C9D # <CJK>
+0x2264A 0x5CA5 # <CJK>
+0x2264B 0x5CB6 # <CJK>
+0x2264C 0x5CB0 # <CJK>
+0x2264D 0x5CA6 # <CJK>
+0x2264E 0x5E17 # <CJK>
+0x2264F 0x5E14 # <CJK>
+0x22650 0x5E19 # <CJK>
+0x22651 0x5F28 # <CJK>
+0x22652 0x5F22 # <CJK>
+0x22653 0x5F23 # <CJK>
+0x22654 0x5F24 # <CJK>
+0x22655 0x5F54 # <CJK>
+0x22656 0x5F82 # <CJK>
+0x22657 0x5F7E # <CJK>
+0x22658 0x5F7D # <CJK>
+0x22659 0x5FDE # <CJK>
+0x2265A 0x5FE5 # <CJK>
+0x2265B 0x602D # <CJK>
+0x2265C 0x6026 # <CJK>
+0x2265D 0x6019 # <CJK>
+0x2265E 0x6032 # <CJK>
+0x2265F 0x600B # <CJK>
+0x22660 0x6034 # <CJK>
+0x22661 0x600A # <CJK>
+0x22662 0x6017 # <CJK>
+0x22663 0x6033 # <CJK>
+0x22664 0x601A # <CJK>
+0x22665 0x601E # <CJK>
+0x22666 0x602C # <CJK>
+0x22667 0x6022 # <CJK>
+0x22668 0x600D # <CJK>
+0x22669 0x6010 # <CJK>
+0x2266A 0x602E # <CJK>
+0x2266B 0x6013 # <CJK>
+0x2266C 0x6011 # <CJK>
+0x2266D 0x600C # <CJK>
+0x2266E 0x6009 # <CJK>
+0x2266F 0x601C # <CJK>
+0x22670 0x6214 # <CJK>
+0x22671 0x623D # <CJK>
+0x22672 0x62AD # <CJK>
+0x22673 0x62B4 # <CJK>
+0x22674 0x62D1 # <CJK>
+0x22675 0x62BE # <CJK>
+0x22676 0x62AA # <CJK>
+0x22677 0x62B6 # <CJK>
+0x22678 0x62CA # <CJK>
+0x22679 0x62AE # <CJK>
+0x2267A 0x62B3 # <CJK>
+0x2267B 0x62AF # <CJK>
+0x2267C 0x62BB # <CJK>
+0x2267D 0x62A9 # <CJK>
+0x2267E 0x62B0 # <CJK>
+0x22721 0x62B8 # <CJK>
+0x22722 0x653D # <CJK>
+0x22723 0x65A8 # <CJK>
+0x22724 0x65BB # <CJK>
+0x22725 0x6609 # <CJK>
+0x22726 0x65FC # <CJK>
+0x22727 0x6604 # <CJK>
+0x22728 0x6612 # <CJK>
+0x22729 0x6608 # <CJK>
+0x2272A 0x65FB # <CJK>
+0x2272B 0x6603 # <CJK>
+0x2272C 0x660B # <CJK>
+0x2272D 0x660D # <CJK>
+0x2272E 0x6605 # <CJK>
+0x2272F 0x65FD # <CJK>
+0x22730 0x6611 # <CJK>
+0x22731 0x6610 # <CJK>
+0x22732 0x66F6 # <CJK>
+0x22733 0x670A # <CJK>
+0x22734 0x6785 # <CJK>
+0x22735 0x676C # <CJK>
+0x22736 0x678E # <CJK>
+0x22737 0x6792 # <CJK>
+0x22738 0x6776 # <CJK>
+0x22739 0x677B # <CJK>
+0x2273A 0x6798 # <CJK>
+0x2273B 0x6786 # <CJK>
+0x2273C 0x6784 # <CJK>
+0x2273D 0x6774 # <CJK>
+0x2273E 0x678D # <CJK>
+0x2273F 0x678C # <CJK>
+0x22740 0x677A # <CJK>
+0x22741 0x679F # <CJK>
+0x22742 0x6791 # <CJK>
+0x22743 0x6799 # <CJK>
+0x22744 0x6783 # <CJK>
+0x22745 0x677D # <CJK>
+0x22746 0x6781 # <CJK>
+0x22747 0x6778 # <CJK>
+0x22748 0x6779 # <CJK>
+0x22749 0x6794 # <CJK>
+0x2274A 0x6B25 # <CJK>
+0x2274B 0x6B80 # <CJK>
+0x2274C 0x6B7E # <CJK>
+0x2274D 0x6BDE # <CJK>
+0x2274E 0x6C1D # <CJK>
+0x2274F 0x6C93 # <CJK>
+0x22750 0x6CEC # <CJK>
+0x22751 0x6CEB # <CJK>
+0x22752 0x6CEE # <CJK>
+0x22753 0x6CD9 # <CJK>
+0x22754 0x6CB6 # <CJK>
+0x22755 0x6CD4 # <CJK>
+0x22756 0x6CAD # <CJK>
+0x22757 0x6CE7 # <CJK>
+0x22758 0x6CB7 # <CJK>
+0x22759 0x6CD0 # <CJK>
+0x2275A 0x6CC2 # <CJK>
+0x2275B 0x6CBA # <CJK>
+0x2275C 0x6CC3 # <CJK>
+0x2275D 0x6CC6 # <CJK>
+0x2275E 0x6CED # <CJK>
+0x2275F 0x6CF2 # <CJK>
+0x22760 0x6CD2 # <CJK>
+0x22761 0x6CDD # <CJK>
+0x22762 0x6CB4 # <CJK>
+0x22763 0x6C8A # <CJK>
+0x22764 0x6C9D # <CJK>
+0x22765 0x6C80 # <CJK>
+0x22766 0x6CDE # <CJK>
+0x22767 0x6CC0 # <CJK>
+0x22768 0x6D30 # <CJK>
+0x22769 0x6CCD # <CJK>
+0x2276A 0x6CC7 # <CJK>
+0x2276B 0x6CB0 # <CJK>
+0x2276C 0x6CF9 # <CJK>
+0x2276D 0x6CCF # <CJK>
+0x2276E 0x6CE9 # <CJK>
+0x2276F 0x6CD1 # <CJK>
+0x22770 0x7094 # <CJK>
+0x22771 0x7098 # <CJK>
+0x22772 0x7085 # <CJK>
+0x22773 0x7093 # <CJK>
+0x22774 0x7086 # <CJK>
+0x22775 0x7084 # <CJK>
+0x22776 0x7091 # <CJK>
+0x22777 0x7096 # <CJK>
+0x22778 0x7082 # <CJK>
+0x22779 0x709A # <CJK>
+0x2277A 0x7083 # <CJK>
+0x2277B 0x726A # <CJK>
+0x2277C 0x72D6 # <CJK>
+0x2277D 0x72CB # <CJK>
+0x2277E 0x72D8 # <CJK>
+0x22821 0x72C9 # <CJK>
+0x22822 0x72DC # <CJK>
+0x22823 0x72D2 # <CJK>
+0x22824 0x72D4 # <CJK>
+0x22825 0x72DA # <CJK>
+0x22826 0x72CC # <CJK>
+0x22827 0x72D1 # <CJK>
+0x22828 0x73A4 # <CJK>
+0x22829 0x73A1 # <CJK>
+0x2282A 0x73AD # <CJK>
+0x2282B 0x73A6 # <CJK>
+0x2282C 0x73A2 # <CJK>
+0x2282D 0x73A0 # <CJK>
+0x2282E 0x73AC # <CJK>
+0x2282F 0x739D # <CJK>
+0x22830 0x74DD # <CJK>
+0x22831 0x74E8 # <CJK>
+0x22832 0x753F # <CJK>
+0x22833 0x7540 # <CJK>
+0x22834 0x753E # <CJK>
+0x22835 0x758C # <CJK>
+0x22836 0x7598 # <CJK>
+0x22837 0x76AF # <CJK>
+0x22838 0x76F3 # <CJK>
+0x22839 0x76F1 # <CJK>
+0x2283A 0x76F0 # <CJK>
+0x2283B 0x76F5 # <CJK>
+0x2283C 0x77F8 # <CJK>
+0x2283D 0x77FC # <CJK>
+0x2283E 0x77F9 # <CJK>
+0x2283F 0x77FB # <CJK>
+0x22840 0x77FA # <CJK>
+0x22841 0x77F7 # <CJK>
+0x22842 0x7942 # <CJK>
+0x22843 0x793F # <CJK>
+0x22844 0x79C5 # <CJK>
+0x22845 0x7A78 # <CJK>
+0x22846 0x7A7B # <CJK>
+0x22847 0x7AFB # <CJK>
+0x22848 0x7C75 # <CJK>
+0x22849 0x7CFD # <CJK>
+0x2284A 0x8035 # <CJK>
+0x2284B 0x808F # <CJK>
+0x2284C 0x80AE # <CJK>
+0x2284D 0x80A3 # <CJK>
+0x2284E 0x80B8 # <CJK>
+0x2284F 0x80B5 # <CJK>
+0x22850 0x80AD # <CJK>
+0x22851 0x8220 # <CJK>
+0x22852 0x82A0 # <CJK>
+0x22853 0x82C0 # <CJK>
+0x22854 0x82AB # <CJK>
+0x22855 0x829A # <CJK>
+0x22856 0x8298 # <CJK>
+0x22857 0x829B # <CJK>
+0x22858 0x82B5 # <CJK>
+0x22859 0x82A7 # <CJK>
+0x2285A 0x82AE # <CJK>
+0x2285B 0x82BC # <CJK>
+0x2285C 0x829E # <CJK>
+0x2285D 0x82BA # <CJK>
+0x2285E 0x82B4 # <CJK>
+0x2285F 0x82A8 # <CJK>
+0x22860 0x82A1 # <CJK>
+0x22861 0x82A9 # <CJK>
+0x22862 0x82C2 # <CJK>
+0x22863 0x82A4 # <CJK>
+0x22864 0x82C3 # <CJK>
+0x22865 0x82B6 # <CJK>
+0x22866 0x82A2 # <CJK>
+0x22867 0x8670 # <CJK>
+0x22868 0x866F # <CJK>
+0x22869 0x866D # <CJK>
+0x2286A 0x866E # <CJK>
+0x2286B 0x8C56 # <CJK>
+0x2286C 0x8FD2 # <CJK>
+0x2286D 0x8FCB # <CJK>
+0x2286E 0x8FD3 # <CJK>
+0x2286F 0x8FCD # <CJK>
+0x22870 0x8FD6 # <CJK>
+0x22871 0x8FD5 # <CJK>
+0x22872 0x8FD7 # <CJK>
+0x22873 0x90B2 # <CJK>
+0x22874 0x90B4 # <CJK>
+0x22875 0x90AF # <CJK>
+0x22876 0x90B3 # <CJK>
+0x22877 0x90B0 # <CJK>
+0x22878 0x9639 # <CJK>
+0x22879 0x963D # <CJK>
+0x2287A 0x963C # <CJK>
+0x2287B 0x963A # <CJK>
+0x2287C 0x9643 # <CJK>
+0x2287D 0x4FCD # <CJK>
+0x2287E 0x4FC5 # <CJK>
+0x22921 0x4FD3 # <CJK>
+0x22922 0x4FB2 # <CJK>
+0x22923 0x4FC9 # <CJK>
+0x22924 0x4FCB # <CJK>
+0x22925 0x4FC1 # <CJK>
+0x22926 0x4FD4 # <CJK>
+0x22927 0x4FDC # <CJK>
+0x22928 0x4FD9 # <CJK>
+0x22929 0x4FBB # <CJK>
+0x2292A 0x4FB3 # <CJK>
+0x2292B 0x4FDB # <CJK>
+0x2292C 0x4FC7 # <CJK>
+0x2292D 0x4FD6 # <CJK>
+0x2292E 0x4FBA # <CJK>
+0x2292F 0x4FC0 # <CJK>
+0x22930 0x4FB9 # <CJK>
+0x22931 0x4FEC # <CJK>
+0x22932 0x5244 # <CJK>
+0x22933 0x5249 # <CJK>
+0x22934 0x52C0 # <CJK>
+0x22935 0x52C2 # <CJK>
+0x22936 0x533D # <CJK>
+0x22937 0x537C # <CJK>
+0x22938 0x5397 # <CJK>
+0x22939 0x5396 # <CJK>
+0x2293A 0x5399 # <CJK>
+0x2293B 0x5398 # <CJK>
+0x2293C 0x54BA # <CJK>
+0x2293D 0x54A1 # <CJK>
+0x2293E 0x54AD # <CJK>
+0x2293F 0x54A5 # <CJK>
+0x22940 0x54CF # <CJK>
+0x22941 0x54C3 # <CJK>
+0x22942 0x830D # <CJK>
+0x22943 0x54B7 # <CJK>
+0x22944 0x54AE # <CJK>
+0x22945 0x54D6 # <CJK>
+0x22946 0x54B6 # <CJK>
+0x22947 0x54C5 # <CJK>
+0x22948 0x54C6 # <CJK>
+0x22949 0x54A0 # <CJK>
+0x2294A 0x5470 # <CJK>
+0x2294B 0x54BC # <CJK>
+0x2294C 0x54A2 # <CJK>
+0x2294D 0x54BE # <CJK>
+0x2294E 0x5472 # <CJK>
+0x2294F 0x54DE # <CJK>
+0x22950 0x54B0 # <CJK>
+0x22951 0x57B5 # <CJK>
+0x22952 0x579E # <CJK>
+0x22953 0x579F # <CJK>
+0x22954 0x57A4 # <CJK>
+0x22955 0x578C # <CJK>
+0x22956 0x5797 # <CJK>
+0x22957 0x579D # <CJK>
+0x22958 0x579B # <CJK>
+0x22959 0x5794 # <CJK>
+0x2295A 0x5798 # <CJK>
+0x2295B 0x578F # <CJK>
+0x2295C 0x5799 # <CJK>
+0x2295D 0x57A5 # <CJK>
+0x2295E 0x579A # <CJK>
+0x2295F 0x5795 # <CJK>
+0x22960 0x58F4 # <CJK>
+0x22961 0x590D # <CJK>
+0x22962 0x5953 # <CJK>
+0x22963 0x59E1 # <CJK>
+0x22964 0x59DE # <CJK>
+0x22965 0x59EE # <CJK>
+0x22966 0x5A00 # <CJK>
+0x22967 0x59F1 # <CJK>
+0x22968 0x59DD # <CJK>
+0x22969 0x59FA # <CJK>
+0x2296A 0x59FD # <CJK>
+0x2296B 0x59FC # <CJK>
+0x2296C 0x59F6 # <CJK>
+0x2296D 0x59E4 # <CJK>
+0x2296E 0x59F2 # <CJK>
+0x2296F 0x59F7 # <CJK>
+0x22970 0x59DB # <CJK>
+0x22971 0x59E9 # <CJK>
+0x22972 0x59F3 # <CJK>
+0x22973 0x59F5 # <CJK>
+0x22974 0x59E0 # <CJK>
+0x22975 0x59FE # <CJK>
+0x22976 0x59F4 # <CJK>
+0x22977 0x59ED # <CJK>
+0x22978 0x5BA8 # <CJK>
+0x22979 0x5C4C # <CJK>
+0x2297A 0x5CD0 # <CJK>
+0x2297B 0x5CD8 # <CJK>
+0x2297C 0x5CCC # <CJK>
+0x2297D 0x5CD7 # <CJK>
+0x2297E 0x5CCB # <CJK>
+0x22A21 0x5CDB # <CJK>
+0x22A22 0x5CDE # <CJK>
+0x22A23 0x5CDA # <CJK>
+0x22A24 0x5CC9 # <CJK>
+0x22A25 0x5CC7 # <CJK>
+0x22A26 0x5CCA # <CJK>
+0x22A27 0x5CD6 # <CJK>
+0x22A28 0x5CD3 # <CJK>
+0x22A29 0x5CD4 # <CJK>
+0x22A2A 0x5CCF # <CJK>
+0x22A2B 0x5CC8 # <CJK>
+0x22A2C 0x5CC6 # <CJK>
+0x22A2D 0x5CCE # <CJK>
+0x22A2E 0x5CDF # <CJK>
+0x22A2F 0x5CF8 # <CJK>
+0x22A30 0x5DF9 # <CJK>
+0x22A31 0x5E21 # <CJK>
+0x22A32 0x5E22 # <CJK>
+0x22A33 0x5E23 # <CJK>
+0x22A34 0x5E20 # <CJK>
+0x22A35 0x5E24 # <CJK>
+0x22A36 0x5EB0 # <CJK>
+0x22A37 0x5EA4 # <CJK>
+0x22A38 0x5EA2 # <CJK>
+0x22A39 0x5E9B # <CJK>
+0x22A3A 0x5EA3 # <CJK>
+0x22A3B 0x5EA5 # <CJK>
+0x22A3C 0x5F07 # <CJK>
+0x22A3D 0x5F2E # <CJK>
+0x22A3E 0x5F56 # <CJK>
+0x22A3F 0x5F86 # <CJK>
+0x22A40 0x6037 # <CJK>
+0x22A41 0x6039 # <CJK>
+0x22A42 0x6054 # <CJK>
+0x22A43 0x6072 # <CJK>
+0x22A44 0x605E # <CJK>
+0x22A45 0x6045 # <CJK>
+0x22A46 0x6053 # <CJK>
+0x22A47 0x6047 # <CJK>
+0x22A48 0x6049 # <CJK>
+0x22A49 0x605B # <CJK>
+0x22A4A 0x604C # <CJK>
+0x22A4B 0x6040 # <CJK>
+0x22A4C 0x6042 # <CJK>
+0x22A4D 0x605F # <CJK>
+0x22A4E 0x6024 # <CJK>
+0x22A4F 0x6044 # <CJK>
+0x22A50 0x6058 # <CJK>
+0x22A51 0x6066 # <CJK>
+0x22A52 0x606E # <CJK>
+0x22A53 0x6242 # <CJK>
+0x22A54 0x6243 # <CJK>
+0x22A55 0x62CF # <CJK>
+0x22A56 0x630D # <CJK>
+0x22A57 0x630B # <CJK>
+0x22A58 0x62F5 # <CJK>
+0x22A59 0x630E # <CJK>
+0x22A5A 0x6303 # <CJK>
+0x22A5B 0x62EB # <CJK>
+0x22A5C 0x62F9 # <CJK>
+0x22A5D 0x630F # <CJK>
+0x22A5E 0x630C # <CJK>
+0x22A5F 0x62F8 # <CJK>
+0x22A60 0x62F6 # <CJK>
+0x22A61 0x6300 # <CJK>
+0x22A62 0x6313 # <CJK>
+0x22A63 0x6314 # <CJK>
+0x22A64 0x62FA # <CJK>
+0x22A65 0x6315 # <CJK>
+0x22A66 0x62FB # <CJK>
+0x22A67 0x62F0 # <CJK>
+0x22A68 0x6541 # <CJK>
+0x22A69 0x6543 # <CJK>
+0x22A6A 0x65AA # <CJK>
+0x22A6B 0x65BF # <CJK>
+0x22A6C 0x6636 # <CJK>
+0x22A6D 0x6621 # <CJK>
+0x22A6E 0x6632 # <CJK>
+0x22A6F 0x6635 # <CJK>
+0x22A70 0x661C # <CJK>
+0x22A71 0x6626 # <CJK>
+0x22A72 0x6622 # <CJK>
+0x22A73 0x6633 # <CJK>
+0x22A74 0x662B # <CJK>
+0x22A75 0x663A # <CJK>
+0x22A76 0x661D # <CJK>
+0x22A77 0x6634 # <CJK>
+0x22A78 0x6639 # <CJK>
+0x22A79 0x662E # <CJK>
+0x22A7A 0x670F # <CJK>
+0x22A7B 0x6710 # <CJK>
+0x22A7C 0x67C1 # <CJK>
+0x22A7D 0x67F2 # <CJK>
+0x22A7E 0x67C8 # <CJK>
+0x22B21 0x67BA # <CJK>
+0x22B22 0x67DC # <CJK>
+0x22B23 0x67BB # <CJK>
+0x22B24 0x67F8 # <CJK>
+0x22B25 0x67D8 # <CJK>
+0x22B26 0x67C0 # <CJK>
+0x22B27 0x67B7 # <CJK>
+0x22B28 0x67C5 # <CJK>
+0x22B29 0x67EB # <CJK>
+0x22B2A 0x67E4 # <CJK>
+0x22B2B 0x67DF # <CJK>
+0x22B2C 0x67B5 # <CJK>
+0x22B2D 0x67CD # <CJK>
+0x22B2E 0x67B3 # <CJK>
+0x22B2F 0x67F7 # <CJK>
+0x22B30 0x67F6 # <CJK>
+0x22B31 0x67EE # <CJK>
+0x22B32 0x67E3 # <CJK>
+0x22B33 0x67C2 # <CJK>
+0x22B34 0x67B9 # <CJK>
+0x22B35 0x67CE # <CJK>
+0x22B36 0x67E7 # <CJK>
+0x22B37 0x67F0 # <CJK>
+0x22B38 0x67B2 # <CJK>
+0x22B39 0x67FC # <CJK>
+0x22B3A 0x67C6 # <CJK>
+0x22B3B 0x67ED # <CJK>
+0x22B3C 0x67CC # <CJK>
+0x22B3D 0x67AE # <CJK>
+0x22B3E 0x67E6 # <CJK>
+0x22B3F 0x67DB # <CJK>
+0x22B40 0x67FA # <CJK>
+0x22B41 0x67C9 # <CJK>
+0x22B42 0x67CA # <CJK>
+0x22B43 0x67C3 # <CJK>
+0x22B44 0x67EA # <CJK>
+0x22B45 0x67CB # <CJK>
+0x22B46 0x6B28 # <CJK>
+0x22B47 0x6B82 # <CJK>
+0x22B48 0x6B84 # <CJK>
+0x22B49 0x6BB6 # <CJK>
+0x22B4A 0x6BD6 # <CJK>
+0x22B4B 0x6BD8 # <CJK>
+0x22B4C 0x6BE0 # <CJK>
+0x22B4D 0x6C20 # <CJK>
+0x22B4E 0x6C21 # <CJK>
+0x22B4F 0x6D28 # <CJK>
+0x22B50 0x6D34 # <CJK>
+0x22B51 0x6D2D # <CJK>
+0x22B52 0x6D1F # <CJK>
+0x22B53 0x6D3C # <CJK>
+0x22B54 0x6D3F # <CJK>
+0x22B55 0x6D12 # <CJK>
+0x22B56 0x6D0A # <CJK>
+0x22B57 0x6CDA # <CJK>
+0x22B58 0x6D33 # <CJK>
+0x22B59 0x6D04 # <CJK>
+0x22B5A 0x6D19 # <CJK>
+0x22B5B 0x6D3A # <CJK>
+0x22B5C 0x6D1A # <CJK>
+0x22B5D 0x6D11 # <CJK>
+0x22B5E 0x6D00 # <CJK>
+0x22B5F 0x6D1D # <CJK>
+0x22B60 0x6D42 # <CJK>
+0x22B61 0x6D01 # <CJK>
+0x22B62 0x6D18 # <CJK>
+0x22B63 0x6D37 # <CJK>
+0x22B64 0x6D03 # <CJK>
+0x22B65 0x6D0F # <CJK>
+0x22B66 0x6D40 # <CJK>
+0x22B67 0x6D07 # <CJK>
+0x22B68 0x6D20 # <CJK>
+0x22B69 0x6D2C # <CJK>
+0x22B6A 0x6D08 # <CJK>
+0x22B6B 0x6D22 # <CJK>
+0x22B6C 0x6D09 # <CJK>
+0x22B6D 0x6D10 # <CJK>
+0x22B6E 0x70B7 # <CJK>
+0x22B6F 0x709F # <CJK>
+0x22B70 0x70BE # <CJK>
+0x22B71 0x70B1 # <CJK>
+0x22B72 0x70B0 # <CJK>
+0x22B73 0x70A1 # <CJK>
+0x22B74 0x70B4 # <CJK>
+0x22B75 0x70B5 # <CJK>
+0x22B76 0x70A9 # <CJK>
+0x22B77 0x7241 # <CJK>
+0x22B78 0x7249 # <CJK>
+0x22B79 0x724A # <CJK>
+0x22B7A 0x726C # <CJK>
+0x22B7B 0x7270 # <CJK>
+0x22B7C 0x7273 # <CJK>
+0x22B7D 0x726E # <CJK>
+0x22B7E 0x72CA # <CJK>
+0x22C21 0x72E4 # <CJK>
+0x22C22 0x72E8 # <CJK>
+0x22C23 0x72EB # <CJK>
+0x22C24 0x72DF # <CJK>
+0x22C25 0x72EA # <CJK>
+0x22C26 0x72E6 # <CJK>
+0x22C27 0x72E3 # <CJK>
+0x22C28 0x7385 # <CJK>
+0x22C29 0x73CC # <CJK>
+0x22C2A 0x73C2 # <CJK>
+0x22C2B 0x73C8 # <CJK>
+0x22C2C 0x73C5 # <CJK>
+0x22C2D 0x73B9 # <CJK>
+0x22C2E 0x73B6 # <CJK>
+0x22C2F 0x73B5 # <CJK>
+0x22C30 0x73B4 # <CJK>
+0x22C31 0x73EB # <CJK>
+0x22C32 0x73BF # <CJK>
+0x22C33 0x73C7 # <CJK>
+0x22C34 0x73BE # <CJK>
+0x22C35 0x73C3 # <CJK>
+0x22C36 0x73C6 # <CJK>
+0x22C37 0x73B8 # <CJK>
+0x22C38 0x73CB # <CJK>
+0x22C39 0x74EC # <CJK>
+0x22C3A 0x74EE # <CJK>
+0x22C3B 0x752E # <CJK>
+0x22C3C 0x7547 # <CJK>
+0x22C3D 0x7548 # <CJK>
+0x22C3E 0x75A7 # <CJK>
+0x22C3F 0x75AA # <CJK>
+0x22C40 0x7679 # <CJK>
+0x22C41 0x76C4 # <CJK>
+0x22C42 0x7708 # <CJK>
+0x22C43 0x7703 # <CJK>
+0x22C44 0x7704 # <CJK>
+0x22C45 0x7705 # <CJK>
+0x22C46 0x770A # <CJK>
+0x22C47 0x76F7 # <CJK>
+0x22C48 0x76FB # <CJK>
+0x22C49 0x76FA # <CJK>
+0x22C4A 0x77E7 # <CJK>
+0x22C4B 0x77E8 # <CJK>
+0x22C4C 0x7806 # <CJK>
+0x22C4D 0x7811 # <CJK>
+0x22C4E 0x7812 # <CJK>
+0x22C4F 0x7805 # <CJK>
+0x22C50 0x7810 # <CJK>
+0x22C51 0x780F # <CJK>
+0x22C52 0x780E # <CJK>
+0x22C53 0x7809 # <CJK>
+0x22C54 0x7803 # <CJK>
+0x22C55 0x7813 # <CJK>
+0x22C56 0x794A # <CJK>
+0x22C57 0x794C # <CJK>
+0x22C58 0x794B # <CJK>
+0x22C59 0x7945 # <CJK>
+0x22C5A 0x7944 # <CJK>
+0x22C5B 0x79D5 # <CJK>
+0x22C5C 0x79CD # <CJK>
+0x22C5D 0x79CF # <CJK>
+0x22C5E 0x79D6 # <CJK>
+0x22C5F 0x79CE # <CJK>
+0x22C60 0x7A80 # <CJK>
+0x22C61 0x7A7E # <CJK>
+0x22C62 0x7AD1 # <CJK>
+0x22C63 0x7B00 # <CJK>
+0x22C64 0x7B01 # <CJK>
+0x22C65 0x7C7A # <CJK>
+0x22C66 0x7C78 # <CJK>
+0x22C67 0x7C79 # <CJK>
+0x22C68 0x7C7F # <CJK>
+0x22C69 0x7C80 # <CJK>
+0x22C6A 0x7C81 # <CJK>
+0x22C6B 0x7D03 # <CJK>
+0x22C6C 0x7D08 # <CJK>
+0x22C6D 0x7D01 # <CJK>
+0x22C6E 0x7F58 # <CJK>
+0x22C6F 0x7F91 # <CJK>
+0x22C70 0x7F8D # <CJK>
+0x22C71 0x7FBE # <CJK>
+0x22C72 0x8007 # <CJK>
+0x22C73 0x800E # <CJK>
+0x22C74 0x800F # <CJK>
+0x22C75 0x8014 # <CJK>
+0x22C76 0x8037 # <CJK>
+0x22C77 0x80D8 # <CJK>
+0x22C78 0x80C7 # <CJK>
+0x22C79 0x80E0 # <CJK>
+0x22C7A 0x80D1 # <CJK>
+0x22C7B 0x80C8 # <CJK>
+0x22C7C 0x80C2 # <CJK>
+0x22C7D 0x80D0 # <CJK>
+0x22C7E 0x80C5 # <CJK>
+0x22D21 0x80E3 # <CJK>
+0x22D22 0x80D9 # <CJK>
+0x22D23 0x80DC # <CJK>
+0x22D24 0x80CA # <CJK>
+0x22D25 0x80D5 # <CJK>
+0x22D26 0x80C9 # <CJK>
+0x22D27 0x80CF # <CJK>
+0x22D28 0x80D7 # <CJK>
+0x22D29 0x80E6 # <CJK>
+0x22D2A 0x80CD # <CJK>
+0x22D2B 0x81FF # <CJK>
+0x22D2C 0x8221 # <CJK>
+0x22D2D 0x8294 # <CJK>
+0x22D2E 0x82D9 # <CJK>
+0x22D2F 0x82FE # <CJK>
+0x22D30 0x82F9 # <CJK>
+0x22D31 0x8307 # <CJK>
+0x22D32 0x82E8 # <CJK>
+0x22D33 0x8300 # <CJK>
+0x22D34 0x82D5 # <CJK>
+0x22D35 0x833A # <CJK>
+0x22D36 0x82EB # <CJK>
+0x22D37 0x82D6 # <CJK>
+0x22D38 0x82F4 # <CJK>
+0x22D39 0x82EC # <CJK>
+0x22D3A 0x82E1 # <CJK>
+0x22D3B 0x82F2 # <CJK>
+0x22D3C 0x82F5 # <CJK>
+0x22D3D 0x830C # <CJK>
+0x22D3E 0x82FB # <CJK>
+0x22D3F 0x82F6 # <CJK>
+0x22D40 0x82F0 # <CJK>
+0x22D41 0x82EA # <CJK>
+0x22D42 0x82E4 # <CJK>
+0x22D43 0x82E0 # <CJK>
+0x22D44 0x82FA # <CJK>
+0x22D45 0x82F3 # <CJK>
+0x22D46 0x82ED # <CJK>
+0x22D47 0x8677 # <CJK>
+0x22D48 0x8674 # <CJK>
+0x22D49 0x867C # <CJK>
+0x22D4A 0x8673 # <CJK>
+0x22D4B 0x8841 # <CJK>
+0x22D4C 0x884E # <CJK>
+0x22D4D 0x8867 # <CJK>
+0x22D4E 0x886A # <CJK>
+0x22D4F 0x8869 # <CJK>
+0x22D50 0x89D3 # <CJK>
+0x22D51 0x8A04 # <CJK>
+0x22D52 0x8A07 # <CJK>
+0x22D53 0x8D72 # <CJK>
+0x22D54 0x8FE3 # <CJK>
+0x22D55 0x8FE1 # <CJK>
+0x22D56 0x8FEE # <CJK>
+0x22D57 0x8FE0 # <CJK>
+0x22D58 0x90F1 # <CJK>
+0x22D59 0x90BD # <CJK>
+0x22D5A 0x90BF # <CJK>
+0x22D5B 0x90D5 # <CJK>
+0x22D5C 0x90C5 # <CJK>
+0x22D5D 0x90BE # <CJK>
+0x22D5E 0x90C7 # <CJK>
+0x22D5F 0x90CB # <CJK>
+0x22D60 0x90C8 # <CJK>
+0x22D61 0x91D4 # <CJK>
+0x22D62 0x91D3 # <CJK>
+0x22D63 0x9654 # <CJK>
+0x22D64 0x964F # <CJK>
+0x22D65 0x9651 # <CJK>
+0x22D66 0x9653 # <CJK>
+0x22D67 0x964A # <CJK>
+0x22D68 0x964E # <CJK>
+0x22D69 0x501E # <CJK>
+0x22D6A 0x5005 # <CJK>
+0x22D6B 0x5007 # <CJK>
+0x22D6C 0x5013 # <CJK>
+0x22D6D 0x5022 # <CJK>
+0x22D6E 0x5030 # <CJK>
+0x22D6F 0x501B # <CJK>
+0x22D70 0x4FF5 # <CJK>
+0x22D71 0x4FF4 # <CJK>
+0x22D72 0x5033 # <CJK>
+0x22D73 0x5037 # <CJK>
+0x22D74 0x502C # <CJK>
+0x22D75 0x4FF6 # <CJK>
+0x22D76 0x4FF7 # <CJK>
+0x22D77 0x5017 # <CJK>
+0x22D78 0x501C # <CJK>
+0x22D79 0x5020 # <CJK>
+0x22D7A 0x5027 # <CJK>
+0x22D7B 0x5035 # <CJK>
+0x22D7C 0x502F # <CJK>
+0x22D7D 0x5031 # <CJK>
+0x22D7E 0x500E # <CJK>
+0x22E21 0x515A # <CJK>
+0x22E22 0x5194 # <CJK>
+0x22E23 0x5193 # <CJK>
+0x22E24 0x51CA # <CJK>
+0x22E25 0x51C4 # <CJK>
+0x22E26 0x51C5 # <CJK>
+0x22E27 0x51C8 # <CJK>
+0x22E28 0x51CE # <CJK>
+0x22E29 0x5261 # <CJK>
+0x22E2A 0x525A # <CJK>
+0x22E2B 0x5252 # <CJK>
+0x22E2C 0x525E # <CJK>
+0x22E2D 0x525F # <CJK>
+0x22E2E 0x5255 # <CJK>
+0x22E2F 0x5262 # <CJK>
+0x22E30 0x52CD # <CJK>
+0x22E31 0x530E # <CJK>
+0x22E32 0x539E # <CJK>
+0x22E33 0x5526 # <CJK>
+0x22E34 0x54E2 # <CJK>
+0x22E35 0x5517 # <CJK>
+0x22E36 0x5512 # <CJK>
+0x22E37 0x54E7 # <CJK>
+0x22E38 0x54F3 # <CJK>
+0x22E39 0x54E4 # <CJK>
+0x22E3A 0x551A # <CJK>
+0x22E3B 0x54FF # <CJK>
+0x22E3C 0x5504 # <CJK>
+0x22E3D 0x5508 # <CJK>
+0x22E3E 0x54EB # <CJK>
+0x22E3F 0x5511 # <CJK>
+0x22E40 0x5505 # <CJK>
+0x22E41 0x54F1 # <CJK>
+0x22E42 0x550A # <CJK>
+0x22E43 0x54FB # <CJK>
+0x22E44 0x54F7 # <CJK>
+0x22E45 0x54F8 # <CJK>
+0x22E46 0x54E0 # <CJK>
+0x22E47 0x550E # <CJK>
+0x22E48 0x5503 # <CJK>
+0x22E49 0x550B # <CJK>
+0x22E4A 0x5701 # <CJK>
+0x22E4B 0x5702 # <CJK>
+0x22E4C 0x57CC # <CJK>
+0x22E4D 0x5832 # <CJK>
+0x22E4E 0x57D5 # <CJK>
+0x22E4F 0x57D2 # <CJK>
+0x22E50 0x57BA # <CJK>
+0x22E51 0x57C6 # <CJK>
+0x22E52 0x57BD # <CJK>
+0x22E53 0x57BC # <CJK>
+0x22E54 0x57B8 # <CJK>
+0x22E55 0x57B6 # <CJK>
+0x22E56 0x57BF # <CJK>
+0x22E57 0x57C7 # <CJK>
+0x22E58 0x57D0 # <CJK>
+0x22E59 0x57B9 # <CJK>
+0x22E5A 0x57C1 # <CJK>
+0x22E5B 0x590E # <CJK>
+0x22E5C 0x594A # <CJK>
+0x22E5D 0x5A19 # <CJK>
+0x22E5E 0x5A16 # <CJK>
+0x22E5F 0x5A2D # <CJK>
+0x22E60 0x5A2E # <CJK>
+0x22E61 0x5A15 # <CJK>
+0x22E62 0x5A0F # <CJK>
+0x22E63 0x5A17 # <CJK>
+0x22E64 0x5A0A # <CJK>
+0x22E65 0x5A1E # <CJK>
+0x22E66 0x5A33 # <CJK>
+0x22E67 0x5B6C # <CJK>
+0x22E68 0x5BA7 # <CJK>
+0x22E69 0x5BAD # <CJK>
+0x22E6A 0x5BAC # <CJK>
+0x22E6B 0x5C03 # <CJK>
+0x22E6C 0x5C56 # <CJK>
+0x22E6D 0x5C54 # <CJK>
+0x22E6E 0x5CEC # <CJK>
+0x22E6F 0x5CFF # <CJK>
+0x22E70 0x5CEE # <CJK>
+0x22E71 0x5CF1 # <CJK>
+0x22E72 0x5CF7 # <CJK>
+0x22E73 0x5D00 # <CJK>
+0x22E74 0x5CF9 # <CJK>
+0x22E75 0x5E29 # <CJK>
+0x22E76 0x5E28 # <CJK>
+0x22E77 0x5EA8 # <CJK>
+0x22E78 0x5EAE # <CJK>
+0x22E79 0x5EAA # <CJK>
+0x22E7A 0x5EAC # <CJK>
+0x22E7B 0x5F33 # <CJK>
+0x22E7C 0x5F30 # <CJK>
+0x22E7D 0x5F67 # <CJK>
+0x22E7E 0x605D # <CJK>
+0x22F21 0x605A # <CJK>
+0x22F22 0x6067 # <CJK>
+0x22F23 0x6041 # <CJK>
+0x22F24 0x60A2 # <CJK>
+0x22F25 0x6088 # <CJK>
+0x22F26 0x6080 # <CJK>
+0x22F27 0x6092 # <CJK>
+0x22F28 0x6081 # <CJK>
+0x22F29 0x609D # <CJK>
+0x22F2A 0x6083 # <CJK>
+0x22F2B 0x6095 # <CJK>
+0x22F2C 0x609B # <CJK>
+0x22F2D 0x6097 # <CJK>
+0x22F2E 0x6087 # <CJK>
+0x22F2F 0x609C # <CJK>
+0x22F30 0x608E # <CJK>
+0x22F31 0x6219 # <CJK>
+0x22F32 0x6246 # <CJK>
+0x22F33 0x62F2 # <CJK>
+0x22F34 0x6310 # <CJK>
+0x22F35 0x6356 # <CJK>
+0x22F36 0x632C # <CJK>
+0x22F37 0x6344 # <CJK>
+0x22F38 0x6345 # <CJK>
+0x22F39 0x6336 # <CJK>
+0x22F3A 0x6343 # <CJK>
+0x22F3B 0x63E4 # <CJK>
+0x22F3C 0x6339 # <CJK>
+0x22F3D 0x634B # <CJK>
+0x22F3E 0x634A # <CJK>
+0x22F3F 0x633C # <CJK>
+0x22F40 0x6329 # <CJK>
+0x22F41 0x6341 # <CJK>
+0x22F42 0x6334 # <CJK>
+0x22F43 0x6358 # <CJK>
+0x22F44 0x6354 # <CJK>
+0x22F45 0x6359 # <CJK>
+0x22F46 0x632D # <CJK>
+0x22F47 0x6347 # <CJK>
+0x22F48 0x6333 # <CJK>
+0x22F49 0x635A # <CJK>
+0x22F4A 0x6351 # <CJK>
+0x22F4B 0x6338 # <CJK>
+0x22F4C 0x6357 # <CJK>
+0x22F4D 0x6340 # <CJK>
+0x22F4E 0x6348 # <CJK>
+0x22F4F 0x654A # <CJK>
+0x22F50 0x6546 # <CJK>
+0x22F51 0x65C6 # <CJK>
+0x22F52 0x65C3 # <CJK>
+0x22F53 0x65C4 # <CJK>
+0x22F54 0x65C2 # <CJK>
+0x22F55 0x664A # <CJK>
+0x22F56 0x665F # <CJK>
+0x22F57 0x6647 # <CJK>
+0x22F58 0x6651 # <CJK>
+0x22F59 0x6712 # <CJK>
+0x22F5A 0x6713 # <CJK>
+0x22F5B 0x681F # <CJK>
+0x22F5C 0x681A # <CJK>
+0x22F5D 0x6849 # <CJK>
+0x22F5E 0x6832 # <CJK>
+0x22F5F 0x6833 # <CJK>
+0x22F60 0x683B # <CJK>
+0x22F61 0x684B # <CJK>
+0x22F62 0x684F # <CJK>
+0x22F63 0x6816 # <CJK>
+0x22F64 0x6831 # <CJK>
+0x22F65 0x681C # <CJK>
+0x22F66 0x6835 # <CJK>
+0x22F67 0x682B # <CJK>
+0x22F68 0x682D # <CJK>
+0x22F69 0x682F # <CJK>
+0x22F6A 0x684E # <CJK>
+0x22F6B 0x6844 # <CJK>
+0x22F6C 0x6834 # <CJK>
+0x22F6D 0x681D # <CJK>
+0x22F6E 0x6812 # <CJK>
+0x22F6F 0x6814 # <CJK>
+0x22F70 0x6826 # <CJK>
+0x22F71 0x6828 # <CJK>
+0x22F72 0x682E # <CJK>
+0x22F73 0x684D # <CJK>
+0x22F74 0x683A # <CJK>
+0x22F75 0x6825 # <CJK>
+0x22F76 0x6820 # <CJK>
+0x22F77 0x6B2C # <CJK>
+0x22F78 0x6B2F # <CJK>
+0x22F79 0x6B2D # <CJK>
+0x22F7A 0x6B31 # <CJK>
+0x22F7B 0x6B34 # <CJK>
+0x22F7C 0x6B6D # <CJK>
+0x22F7D 0x8082 # <CJK>
+0x22F7E 0x6B88 # <CJK>
+0x23021 0x6BE6 # <CJK>
+0x23022 0x6BE4 # <CJK>
+0x23023 0x6BE8 # <CJK>
+0x23024 0x6BE3 # <CJK>
+0x23025 0x6BE2 # <CJK>
+0x23026 0x6BE7 # <CJK>
+0x23027 0x6C25 # <CJK>
+0x23028 0x6D7A # <CJK>
+0x23029 0x6D63 # <CJK>
+0x2302A 0x6D64 # <CJK>
+0x2302B 0x6D76 # <CJK>
+0x2302C 0x6D0D # <CJK>
+0x2302D 0x6D61 # <CJK>
+0x2302E 0x6D92 # <CJK>
+0x2302F 0x6D58 # <CJK>
+0x23030 0x6D62 # <CJK>
+0x23031 0x6D6D # <CJK>
+0x23032 0x6D6F # <CJK>
+0x23033 0x6D91 # <CJK>
+0x23034 0x6D8D # <CJK>
+0x23035 0x6DEF # <CJK>
+0x23036 0x6D7F # <CJK>
+0x23037 0x6D86 # <CJK>
+0x23038 0x6D5E # <CJK>
+0x23039 0x6D67 # <CJK>
+0x2303A 0x6D60 # <CJK>
+0x2303B 0x6D97 # <CJK>
+0x2303C 0x6D70 # <CJK>
+0x2303D 0x6D7C # <CJK>
+0x2303E 0x6D5F # <CJK>
+0x2303F 0x6D82 # <CJK>
+0x23040 0x6D98 # <CJK>
+0x23041 0x6D2F # <CJK>
+0x23042 0x6D68 # <CJK>
+0x23043 0x6D8B # <CJK>
+0x23044 0x6D7E # <CJK>
+0x23045 0x6D80 # <CJK>
+0x23046 0x6D84 # <CJK>
+0x23047 0x6D16 # <CJK>
+0x23048 0x6D83 # <CJK>
+0x23049 0x6D7B # <CJK>
+0x2304A 0x6D7D # <CJK>
+0x2304B 0x6D75 # <CJK>
+0x2304C 0x6D90 # <CJK>
+0x2304D 0x70DC # <CJK>
+0x2304E 0x70D3 # <CJK>
+0x2304F 0x70D1 # <CJK>
+0x23050 0x70DD # <CJK>
+0x23051 0x70CB # <CJK>
+0x23052 0x7F39 # <CJK>
+0x23053 0x70E2 # <CJK>
+0x23054 0x70D7 # <CJK>
+0x23055 0x70D2 # <CJK>
+0x23056 0x70DE # <CJK>
+0x23057 0x70E0 # <CJK>
+0x23058 0x70D4 # <CJK>
+0x23059 0x70CD # <CJK>
+0x2305A 0x70C5 # <CJK>
+0x2305B 0x70C6 # <CJK>
+0x2305C 0x70C7 # <CJK>
+0x2305D 0x70DA # <CJK>
+0x2305E 0x70CE # <CJK>
+0x2305F 0x70E1 # <CJK>
+0x23060 0x7242 # <CJK>
+0x23061 0x7278 # <CJK>
+0x23062 0x7277 # <CJK>
+0x23063 0x7276 # <CJK>
+0x23064 0x7300 # <CJK>
+0x23065 0x72FA # <CJK>
+0x23066 0x72F4 # <CJK>
+0x23067 0x72FE # <CJK>
+0x23068 0x72F6 # <CJK>
+0x23069 0x72F3 # <CJK>
+0x2306A 0x72FB # <CJK>
+0x2306B 0x7301 # <CJK>
+0x2306C 0x73D3 # <CJK>
+0x2306D 0x73D9 # <CJK>
+0x2306E 0x73E5 # <CJK>
+0x2306F 0x73D6 # <CJK>
+0x23070 0x73BC # <CJK>
+0x23071 0x73E7 # <CJK>
+0x23072 0x73E3 # <CJK>
+0x23073 0x73E9 # <CJK>
+0x23074 0x73DC # <CJK>
+0x23075 0x73D2 # <CJK>
+0x23076 0x73DB # <CJK>
+0x23077 0x73D4 # <CJK>
+0x23078 0x73DD # <CJK>
+0x23079 0x73DA # <CJK>
+0x2307A 0x73D7 # <CJK>
+0x2307B 0x73D8 # <CJK>
+0x2307C 0x73E8 # <CJK>
+0x2307D 0x74DE # <CJK>
+0x2307E 0x74DF # <CJK>
+0x23121 0x74F4 # <CJK>
+0x23122 0x74F5 # <CJK>
+0x23123 0x7521 # <CJK>
+0x23124 0x755B # <CJK>
+0x23125 0x755F # <CJK>
+0x23126 0x75B0 # <CJK>
+0x23127 0x75C1 # <CJK>
+0x23128 0x75BB # <CJK>
+0x23129 0x75C4 # <CJK>
+0x2312A 0x75C0 # <CJK>
+0x2312B 0x75BF # <CJK>
+0x2312C 0x75B6 # <CJK>
+0x2312D 0x75BA # <CJK>
+0x2312E 0x768A # <CJK>
+0x2312F 0x76C9 # <CJK>
+0x23130 0x771D # <CJK>
+0x23131 0x771B # <CJK>
+0x23132 0x7710 # <CJK>
+0x23133 0x7713 # <CJK>
+0x23134 0x7712 # <CJK>
+0x23135 0x7723 # <CJK>
+0x23136 0x7711 # <CJK>
+0x23137 0x7715 # <CJK>
+0x23138 0x7719 # <CJK>
+0x23139 0x771A # <CJK>
+0x2313A 0x7722 # <CJK>
+0x2313B 0x7727 # <CJK>
+0x2313C 0x7823 # <CJK>
+0x2313D 0x782C # <CJK>
+0x2313E 0x7822 # <CJK>
+0x2313F 0x7835 # <CJK>
+0x23140 0x782F # <CJK>
+0x23141 0x7828 # <CJK>
+0x23142 0x782E # <CJK>
+0x23143 0x782B # <CJK>
+0x23144 0x7821 # <CJK>
+0x23145 0x7829 # <CJK>
+0x23146 0x7833 # <CJK>
+0x23147 0x782A # <CJK>
+0x23148 0x7831 # <CJK>
+0x23149 0x7954 # <CJK>
+0x2314A 0x795B # <CJK>
+0x2314B 0x794F # <CJK>
+0x2314C 0x795C # <CJK>
+0x2314D 0x7953 # <CJK>
+0x2314E 0x7952 # <CJK>
+0x2314F 0x7951 # <CJK>
+0x23150 0x79EB # <CJK>
+0x23151 0x79EC # <CJK>
+0x23152 0x79E0 # <CJK>
+0x23153 0x79EE # <CJK>
+0x23154 0x79ED # <CJK>
+0x23155 0x79EA # <CJK>
+0x23156 0x79DC # <CJK>
+0x23157 0x79DE # <CJK>
+0x23158 0x79DD # <CJK>
+0x23159 0x7A86 # <CJK>
+0x2315A 0x7A89 # <CJK>
+0x2315B 0x7A85 # <CJK>
+0x2315C 0x7A8B # <CJK>
+0x2315D 0x7A8C # <CJK>
+0x2315E 0x7A8A # <CJK>
+0x2315F 0x7A87 # <CJK>
+0x23160 0x7AD8 # <CJK>
+0x23161 0x7B10 # <CJK>
+0x23162 0x7B04 # <CJK>
+0x23163 0x7B13 # <CJK>
+0x23164 0x7B05 # <CJK>
+0x23165 0x7B0F # <CJK>
+0x23166 0x7B08 # <CJK>
+0x23167 0x7B0A # <CJK>
+0x23168 0x7B0E # <CJK>
+0x23169 0x7B09 # <CJK>
+0x2316A 0x7B12 # <CJK>
+0x2316B 0x7C84 # <CJK>
+0x2316C 0x7C91 # <CJK>
+0x2316D 0x7C8A # <CJK>
+0x2316E 0x7C8C # <CJK>
+0x2316F 0x7C88 # <CJK>
+0x23170 0x7C8D # <CJK>
+0x23171 0x7C85 # <CJK>
+0x23172 0x7D1E # <CJK>
+0x23173 0x7D1D # <CJK>
+0x23174 0x7D11 # <CJK>
+0x23175 0x7D0E # <CJK>
+0x23176 0x7D18 # <CJK>
+0x23177 0x7D16 # <CJK>
+0x23178 0x7D13 # <CJK>
+0x23179 0x7D1F # <CJK>
+0x2317A 0x7D12 # <CJK>
+0x2317B 0x7D0F # <CJK>
+0x2317C 0x7D0C # <CJK>
+0x2317D 0x7F5C # <CJK>
+0x2317E 0x7F61 # <CJK>
+0x23221 0x7F5E # <CJK>
+0x23222 0x7F60 # <CJK>
+0x23223 0x7F5D # <CJK>
+0x23224 0x7F5B # <CJK>
+0x23225 0x7F96 # <CJK>
+0x23226 0x7F92 # <CJK>
+0x23227 0x7FC3 # <CJK>
+0x23228 0x7FC2 # <CJK>
+0x23229 0x7FC0 # <CJK>
+0x2322A 0x8016 # <CJK>
+0x2322B 0x803E # <CJK>
+0x2322C 0x8039 # <CJK>
+0x2322D 0x80FA # <CJK>
+0x2322E 0x80F2 # <CJK>
+0x2322F 0x80F9 # <CJK>
+0x23230 0x80F5 # <CJK>
+0x23231 0x8101 # <CJK>
+0x23232 0x80FB # <CJK>
+0x23233 0x8100 # <CJK>
+0x23234 0x8201 # <CJK>
+0x23235 0x822F # <CJK>
+0x23236 0x8225 # <CJK>
+0x23237 0x8333 # <CJK>
+0x23238 0x832D # <CJK>
+0x23239 0x8344 # <CJK>
+0x2323A 0x8319 # <CJK>
+0x2323B 0x8351 # <CJK>
+0x2323C 0x8325 # <CJK>
+0x2323D 0x8356 # <CJK>
+0x2323E 0x833F # <CJK>
+0x2323F 0x8341 # <CJK>
+0x23240 0x8326 # <CJK>
+0x23241 0x831C # <CJK>
+0x23242 0x8322 # <CJK>
+0x23243 0x8342 # <CJK>
+0x23244 0x834E # <CJK>
+0x23245 0x831B # <CJK>
+0x23246 0x832A # <CJK>
+0x23247 0x8308 # <CJK>
+0x23248 0x833C # <CJK>
+0x23249 0x834D # <CJK>
+0x2324A 0x8316 # <CJK>
+0x2324B 0x8324 # <CJK>
+0x2324C 0x8320 # <CJK>
+0x2324D 0x8337 # <CJK>
+0x2324E 0x832F # <CJK>
+0x2324F 0x8329 # <CJK>
+0x23250 0x8347 # <CJK>
+0x23251 0x8345 # <CJK>
+0x23252 0x834C # <CJK>
+0x23253 0x8353 # <CJK>
+0x23254 0x831E # <CJK>
+0x23255 0x832C # <CJK>
+0x23256 0x834B # <CJK>
+0x23257 0x8327 # <CJK>
+0x23258 0x8348 # <CJK>
+0x23259 0x8653 # <CJK>
+0x2325A 0x8652 # <CJK>
+0x2325B 0x86A2 # <CJK>
+0x2325C 0x86A8 # <CJK>
+0x2325D 0x8696 # <CJK>
+0x2325E 0x868D # <CJK>
+0x2325F 0x8691 # <CJK>
+0x23260 0x869E # <CJK>
+0x23261 0x8687 # <CJK>
+0x23262 0x8697 # <CJK>
+0x23263 0x8686 # <CJK>
+0x23264 0x868B # <CJK>
+0x23265 0x869A # <CJK>
+0x23266 0x8685 # <CJK>
+0x23267 0x86A5 # <CJK>
+0x23268 0x8699 # <CJK>
+0x23269 0x86A1 # <CJK>
+0x2326A 0x86A7 # <CJK>
+0x2326B 0x8695 # <CJK>
+0x2326C 0x8698 # <CJK>
+0x2326D 0x868E # <CJK>
+0x2326E 0x869D # <CJK>
+0x2326F 0x8690 # <CJK>
+0x23270 0x8694 # <CJK>
+0x23271 0x8843 # <CJK>
+0x23272 0x8844 # <CJK>
+0x23273 0x886D # <CJK>
+0x23274 0x8875 # <CJK>
+0x23275 0x8876 # <CJK>
+0x23276 0x8872 # <CJK>
+0x23277 0x8880 # <CJK>
+0x23278 0x8871 # <CJK>
+0x23279 0x887F # <CJK>
+0x2327A 0x886F # <CJK>
+0x2327B 0x8883 # <CJK>
+0x2327C 0x887E # <CJK>
+0x2327D 0x8874 # <CJK>
+0x2327E 0x887C # <CJK>
+0x23321 0x8A12 # <CJK>
+0x23322 0x8C47 # <CJK>
+0x23323 0x8C57 # <CJK>
+0x23324 0x8C7B # <CJK>
+0x23325 0x8CA4 # <CJK>
+0x23326 0x8CA3 # <CJK>
+0x23327 0x8D76 # <CJK>
+0x23328 0x8D78 # <CJK>
+0x23329 0x8DB5 # <CJK>
+0x2332A 0x8DB7 # <CJK>
+0x2332B 0x8DB6 # <CJK>
+0x2332C 0x8ED1 # <CJK>
+0x2332D 0x8ED3 # <CJK>
+0x2332E 0x8FFE # <CJK>
+0x2332F 0x8FF5 # <CJK>
+0x23330 0x9002 # <CJK>
+0x23331 0x8FFF # <CJK>
+0x23332 0x8FFB # <CJK>
+0x23333 0x9004 # <CJK>
+0x23334 0x8FFC # <CJK>
+0x23335 0x8FF6 # <CJK>
+0x23336 0x90D6 # <CJK>
+0x23337 0x90E0 # <CJK>
+0x23338 0x90D9 # <CJK>
+0x23339 0x90DA # <CJK>
+0x2333A 0x90E3 # <CJK>
+0x2333B 0x90DF # <CJK>
+0x2333C 0x90E5 # <CJK>
+0x2333D 0x90D8 # <CJK>
+0x2333E 0x90DB # <CJK>
+0x2333F 0x90D7 # <CJK>
+0x23340 0x90DC # <CJK>
+0x23341 0x90E4 # <CJK>
+0x23342 0x9150 # <CJK>
+0x23343 0x914E # <CJK>
+0x23344 0x914F # <CJK>
+0x23345 0x91D5 # <CJK>
+0x23346 0x91E2 # <CJK>
+0x23347 0x91DA # <CJK>
+0x23348 0x965C # <CJK>
+0x23349 0x965F # <CJK>
+0x2334A 0x96BC # <CJK>
+0x2334B 0x98E3 # <CJK>
+0x2334C 0x9ADF # <CJK>
+0x2334D 0x9B2F # <CJK>
+0x2334E 0x4E7F # <CJK>
+0x2334F 0x5070 # <CJK>
+0x23350 0x506A # <CJK>
+0x23351 0x5061 # <CJK>
+0x23352 0x505E # <CJK>
+0x23353 0x5060 # <CJK>
+0x23354 0x5053 # <CJK>
+0x23355 0x504B # <CJK>
+0x23356 0x505D # <CJK>
+0x23357 0x5072 # <CJK>
+0x23358 0x5048 # <CJK>
+0x23359 0x504D # <CJK>
+0x2335A 0x5041 # <CJK>
+0x2335B 0x505B # <CJK>
+0x2335C 0x504A # <CJK>
+0x2335D 0x5062 # <CJK>
+0x2335E 0x5015 # <CJK>
+0x2335F 0x5045 # <CJK>
+0x23360 0x505F # <CJK>
+0x23361 0x5069 # <CJK>
+0x23362 0x506B # <CJK>
+0x23363 0x5063 # <CJK>
+0x23364 0x5064 # <CJK>
+0x23365 0x5046 # <CJK>
+0x23366 0x5040 # <CJK>
+0x23367 0x506E # <CJK>
+0x23368 0x5073 # <CJK>
+0x23369 0x5057 # <CJK>
+0x2336A 0x5051 # <CJK>
+0x2336B 0x51D0 # <CJK>
+0x2336C 0x526B # <CJK>
+0x2336D 0x526D # <CJK>
+0x2336E 0x526C # <CJK>
+0x2336F 0x526E # <CJK>
+0x23370 0x52D6 # <CJK>
+0x23371 0x52D3 # <CJK>
+0x23372 0x532D # <CJK>
+0x23373 0x539C # <CJK>
+0x23374 0x5575 # <CJK>
+0x23375 0x5576 # <CJK>
+0x23376 0x553C # <CJK>
+0x23377 0x554D # <CJK>
+0x23378 0x5550 # <CJK>
+0x23379 0x5534 # <CJK>
+0x2337A 0x552A # <CJK>
+0x2337B 0x5551 # <CJK>
+0x2337C 0x5562 # <CJK>
+0x2337D 0x5536 # <CJK>
+0x2337E 0x5535 # <CJK>
+0x23421 0x5530 # <CJK>
+0x23422 0x5552 # <CJK>
+0x23423 0x5545 # <CJK>
+0x23424 0x550C # <CJK>
+0x23425 0x5532 # <CJK>
+0x23426 0x5565 # <CJK>
+0x23427 0x554E # <CJK>
+0x23428 0x5539 # <CJK>
+0x23429 0x5548 # <CJK>
+0x2342A 0x552D # <CJK>
+0x2342B 0x553B # <CJK>
+0x2342C 0x5540 # <CJK>
+0x2342D 0x554B # <CJK>
+0x2342E 0x570A # <CJK>
+0x2342F 0x5707 # <CJK>
+0x23430 0x57FB # <CJK>
+0x23431 0x5814 # <CJK>
+0x23432 0x57E2 # <CJK>
+0x23433 0x57F6 # <CJK>
+0x23434 0x57DC # <CJK>
+0x23435 0x57F4 # <CJK>
+0x23436 0x5800 # <CJK>
+0x23437 0x57ED # <CJK>
+0x23438 0x57FD # <CJK>
+0x23439 0x5808 # <CJK>
+0x2343A 0x57F8 # <CJK>
+0x2343B 0x580B # <CJK>
+0x2343C 0x57F3 # <CJK>
+0x2343D 0x57CF # <CJK>
+0x2343E 0x5807 # <CJK>
+0x2343F 0x57EE # <CJK>
+0x23440 0x57E3 # <CJK>
+0x23441 0x57F2 # <CJK>
+0x23442 0x57E5 # <CJK>
+0x23443 0x57EC # <CJK>
+0x23444 0x57E1 # <CJK>
+0x23445 0x580E # <CJK>
+0x23446 0x57FC # <CJK>
+0x23447 0x5810 # <CJK>
+0x23448 0x57E7 # <CJK>
+0x23449 0x5801 # <CJK>
+0x2344A 0x580C # <CJK>
+0x2344B 0x57F1 # <CJK>
+0x2344C 0x57E9 # <CJK>
+0x2344D 0x57F0 # <CJK>
+0x2344E 0x580D # <CJK>
+0x2344F 0x5804 # <CJK>
+0x23450 0x595C # <CJK>
+0x23451 0x5A60 # <CJK>
+0x23452 0x5A58 # <CJK>
+0x23453 0x5A55 # <CJK>
+0x23454 0x5A67 # <CJK>
+0x23455 0x5A5E # <CJK>
+0x23456 0x5A38 # <CJK>
+0x23457 0x5A35 # <CJK>
+0x23458 0x5A6D # <CJK>
+0x23459 0x5A50 # <CJK>
+0x2345A 0x5A5F # <CJK>
+0x2345B 0x5A65 # <CJK>
+0x2345C 0x5A6C # <CJK>
+0x2345D 0x5A53 # <CJK>
+0x2345E 0x5A64 # <CJK>
+0x2345F 0x5A57 # <CJK>
+0x23460 0x5A43 # <CJK>
+0x23461 0x5A5D # <CJK>
+0x23462 0x5A52 # <CJK>
+0x23463 0x5A44 # <CJK>
+0x23464 0x5A5B # <CJK>
+0x23465 0x5A48 # <CJK>
+0x23466 0x5A8E # <CJK>
+0x23467 0x5A3E # <CJK>
+0x23468 0x5A4D # <CJK>
+0x23469 0x5A39 # <CJK>
+0x2346A 0x5A4C # <CJK>
+0x2346B 0x5A70 # <CJK>
+0x2346C 0x5A69 # <CJK>
+0x2346D 0x5A47 # <CJK>
+0x2346E 0x5A51 # <CJK>
+0x2346F 0x5A56 # <CJK>
+0x23470 0x5A42 # <CJK>
+0x23471 0x5A5C # <CJK>
+0x23472 0x5B72 # <CJK>
+0x23473 0x5B6E # <CJK>
+0x23474 0x5BC1 # <CJK>
+0x23475 0x5BC0 # <CJK>
+0x23476 0x5C59 # <CJK>
+0x23477 0x5D1E # <CJK>
+0x23478 0x5D0B # <CJK>
+0x23479 0x5D1D # <CJK>
+0x2347A 0x5D1A # <CJK>
+0x2347B 0x5D20 # <CJK>
+0x2347C 0x5D0C # <CJK>
+0x2347D 0x5D28 # <CJK>
+0x2347E 0x5D0D # <CJK>
+0x23521 0x5D26 # <CJK>
+0x23522 0x5D25 # <CJK>
+0x23523 0x5D0F # <CJK>
+0x23524 0x5D30 # <CJK>
+0x23525 0x5D12 # <CJK>
+0x23526 0x5D23 # <CJK>
+0x23527 0x5D1F # <CJK>
+0x23528 0x5D2E # <CJK>
+0x23529 0x5E3E # <CJK>
+0x2352A 0x5E34 # <CJK>
+0x2352B 0x5EB1 # <CJK>
+0x2352C 0x5EB4 # <CJK>
+0x2352D 0x5EB9 # <CJK>
+0x2352E 0x5EB2 # <CJK>
+0x2352F 0x5EB3 # <CJK>
+0x23530 0x5F36 # <CJK>
+0x23531 0x5F38 # <CJK>
+0x23532 0x5F9B # <CJK>
+0x23533 0x5F96 # <CJK>
+0x23534 0x5F9F # <CJK>
+0x23535 0x608A # <CJK>
+0x23536 0x6090 # <CJK>
+0x23537 0x6086 # <CJK>
+0x23538 0x60BE # <CJK>
+0x23539 0x60B0 # <CJK>
+0x2353A 0x60BA # <CJK>
+0x2353B 0x60D3 # <CJK>
+0x2353C 0x60D4 # <CJK>
+0x2353D 0x60CF # <CJK>
+0x2353E 0x60E4 # <CJK>
+0x2353F 0x60D9 # <CJK>
+0x23540 0x60DD # <CJK>
+0x23541 0x60C8 # <CJK>
+0x23542 0x60B1 # <CJK>
+0x23543 0x60DB # <CJK>
+0x23544 0x60B7 # <CJK>
+0x23545 0x60CA # <CJK>
+0x23546 0x60BF # <CJK>
+0x23547 0x60C3 # <CJK>
+0x23548 0x60CD # <CJK>
+0x23549 0x60C0 # <CJK>
+0x2354A 0x6332 # <CJK>
+0x2354B 0x6365 # <CJK>
+0x2354C 0x638A # <CJK>
+0x2354D 0x6382 # <CJK>
+0x2354E 0x637D # <CJK>
+0x2354F 0x63BD # <CJK>
+0x23550 0x639E # <CJK>
+0x23551 0x63AD # <CJK>
+0x23552 0x639D # <CJK>
+0x23553 0x6397 # <CJK>
+0x23554 0x63AB # <CJK>
+0x23555 0x638E # <CJK>
+0x23556 0x636F # <CJK>
+0x23557 0x6387 # <CJK>
+0x23558 0x6390 # <CJK>
+0x23559 0x636E # <CJK>
+0x2355A 0x63AF # <CJK>
+0x2355B 0x6375 # <CJK>
+0x2355C 0x639C # <CJK>
+0x2355D 0x636D # <CJK>
+0x2355E 0x63AE # <CJK>
+0x2355F 0x637C # <CJK>
+0x23560 0x63A4 # <CJK>
+0x23561 0x633B # <CJK>
+0x23562 0x639F # <CJK>
+0x23563 0x6378 # <CJK>
+0x23564 0x6385 # <CJK>
+0x23565 0x6381 # <CJK>
+0x23566 0x6391 # <CJK>
+0x23567 0x638D # <CJK>
+0x23568 0x6370 # <CJK>
+0x23569 0x6553 # <CJK>
+0x2356A 0x65CD # <CJK>
+0x2356B 0x6665 # <CJK>
+0x2356C 0x6661 # <CJK>
+0x2356D 0x665B # <CJK>
+0x2356E 0x6659 # <CJK>
+0x2356F 0x665C # <CJK>
+0x23570 0x6662 # <CJK>
+0x23571 0x6718 # <CJK>
+0x23572 0x6879 # <CJK>
+0x23573 0x6887 # <CJK>
+0x23574 0x6890 # <CJK>
+0x23575 0x689C # <CJK>
+0x23576 0x686D # <CJK>
+0x23577 0x686E # <CJK>
+0x23578 0x68AE # <CJK>
+0x23579 0x68AB # <CJK>
+0x2357A 0x6956 # <CJK>
+0x2357B 0x686F # <CJK>
+0x2357C 0x68A3 # <CJK>
+0x2357D 0x68AC # <CJK>
+0x2357E 0x68A9 # <CJK>
+0x23621 0x6875 # <CJK>
+0x23622 0x6874 # <CJK>
+0x23623 0x68B2 # <CJK>
+0x23624 0x688F # <CJK>
+0x23625 0x6877 # <CJK>
+0x23626 0x6892 # <CJK>
+0x23627 0x687C # <CJK>
+0x23628 0x686B # <CJK>
+0x23629 0x6872 # <CJK>
+0x2362A 0x68AA # <CJK>
+0x2362B 0x6880 # <CJK>
+0x2362C 0x6871 # <CJK>
+0x2362D 0x687E # <CJK>
+0x2362E 0x689B # <CJK>
+0x2362F 0x6896 # <CJK>
+0x23630 0x688B # <CJK>
+0x23631 0x68A0 # <CJK>
+0x23632 0x6889 # <CJK>
+0x23633 0x68A4 # <CJK>
+0x23634 0x6878 # <CJK>
+0x23635 0x687B # <CJK>
+0x23636 0x6891 # <CJK>
+0x23637 0x688C # <CJK>
+0x23638 0x688A # <CJK>
+0x23639 0x687D # <CJK>
+0x2363A 0x6B36 # <CJK>
+0x2363B 0x6B33 # <CJK>
+0x2363C 0x6B37 # <CJK>
+0x2363D 0x6B38 # <CJK>
+0x2363E 0x6B91 # <CJK>
+0x2363F 0x6B8F # <CJK>
+0x23640 0x6B8D # <CJK>
+0x23641 0x6B8E # <CJK>
+0x23642 0x6B8C # <CJK>
+0x23643 0x6C2A # <CJK>
+0x23644 0x6DC0 # <CJK>
+0x23645 0x6DAB # <CJK>
+0x23646 0x6DB4 # <CJK>
+0x23647 0x6DB3 # <CJK>
+0x23648 0x6E74 # <CJK>
+0x23649 0x6DAC # <CJK>
+0x2364A 0x6DE9 # <CJK>
+0x2364B 0x6DE2 # <CJK>
+0x2364C 0x6DB7 # <CJK>
+0x2364D 0x6DF6 # <CJK>
+0x2364E 0x6DD4 # <CJK>
+0x2364F 0x6E00 # <CJK>
+0x23650 0x6DC8 # <CJK>
+0x23651 0x6DE0 # <CJK>
+0x23652 0x6DDF # <CJK>
+0x23653 0x6DD6 # <CJK>
+0x23654 0x6DBE # <CJK>
+0x23655 0x6DE5 # <CJK>
+0x23656 0x6DDC # <CJK>
+0x23657 0x6DDD # <CJK>
+0x23658 0x6DDB # <CJK>
+0x23659 0x6DF4 # <CJK>
+0x2365A 0x6DCA # <CJK>
+0x2365B 0x6DBD # <CJK>
+0x2365C 0x6DED # <CJK>
+0x2365D 0x6DF0 # <CJK>
+0x2365E 0x6DBA # <CJK>
+0x2365F 0x6DD5 # <CJK>
+0x23660 0x6DC2 # <CJK>
+0x23661 0x6DCF # <CJK>
+0x23662 0x6DC9 # <CJK>
+0x23663 0x6DD0 # <CJK>
+0x23664 0x6DF2 # <CJK>
+0x23665 0x6DD3 # <CJK>
+0x23666 0x6DFD # <CJK>
+0x23667 0x6DD7 # <CJK>
+0x23668 0x6DCD # <CJK>
+0x23669 0x6DE3 # <CJK>
+0x2366A 0x6DBB # <CJK>
+0x2366B 0x70FA # <CJK>
+0x2366C 0x710D # <CJK>
+0x2366D 0x70F7 # <CJK>
+0x2366E 0x7117 # <CJK>
+0x2366F 0x70F4 # <CJK>
+0x23670 0x710C # <CJK>
+0x23671 0x70F0 # <CJK>
+0x23672 0x7104 # <CJK>
+0x23673 0x70F3 # <CJK>
+0x23674 0x7110 # <CJK>
+0x23675 0x70FC # <CJK>
+0x23676 0x70FF # <CJK>
+0x23677 0x7106 # <CJK>
+0x23678 0x7113 # <CJK>
+0x23679 0x7100 # <CJK>
+0x2367A 0x70F8 # <CJK>
+0x2367B 0x70F6 # <CJK>
+0x2367C 0x710B # <CJK>
+0x2367D 0x7102 # <CJK>
+0x2367E 0x710E # <CJK>
+0x23721 0x727E # <CJK>
+0x23722 0x727B # <CJK>
+0x23723 0x727C # <CJK>
+0x23724 0x727F # <CJK>
+0x23725 0x731D # <CJK>
+0x23726 0x7317 # <CJK>
+0x23727 0x7307 # <CJK>
+0x23728 0x7311 # <CJK>
+0x23729 0x7318 # <CJK>
+0x2372A 0x730A # <CJK>
+0x2372B 0x7308 # <CJK>
+0x2372C 0x72FF # <CJK>
+0x2372D 0x730F # <CJK>
+0x2372E 0x731E # <CJK>
+0x2372F 0x7388 # <CJK>
+0x23730 0x73F6 # <CJK>
+0x23731 0x73F8 # <CJK>
+0x23732 0x73F5 # <CJK>
+0x23733 0x7404 # <CJK>
+0x23734 0x7401 # <CJK>
+0x23735 0x73FD # <CJK>
+0x23736 0x7407 # <CJK>
+0x23737 0x7400 # <CJK>
+0x23738 0x73FA # <CJK>
+0x23739 0x73FC # <CJK>
+0x2373A 0x73FF # <CJK>
+0x2373B 0x740C # <CJK>
+0x2373C 0x740B # <CJK>
+0x2373D 0x73F4 # <CJK>
+0x2373E 0x7408 # <CJK>
+0x2373F 0x7564 # <CJK>
+0x23740 0x7563 # <CJK>
+0x23741 0x75CE # <CJK>
+0x23742 0x75D2 # <CJK>
+0x23743 0x75CF # <CJK>
+0x23744 0x75CB # <CJK>
+0x23745 0x75CC # <CJK>
+0x23746 0x75D1 # <CJK>
+0x23747 0x75D0 # <CJK>
+0x23748 0x768F # <CJK>
+0x23749 0x7689 # <CJK>
+0x2374A 0x76D3 # <CJK>
+0x2374B 0x7739 # <CJK>
+0x2374C 0x772F # <CJK>
+0x2374D 0x772D # <CJK>
+0x2374E 0x7731 # <CJK>
+0x2374F 0x7732 # <CJK>
+0x23750 0x7734 # <CJK>
+0x23751 0x7733 # <CJK>
+0x23752 0x773D # <CJK>
+0x23753 0x7725 # <CJK>
+0x23754 0x773B # <CJK>
+0x23755 0x7735 # <CJK>
+0x23756 0x7848 # <CJK>
+0x23757 0x7852 # <CJK>
+0x23758 0x7849 # <CJK>
+0x23759 0x784D # <CJK>
+0x2375A 0x784A # <CJK>
+0x2375B 0x784C # <CJK>
+0x2375C 0x7826 # <CJK>
+0x2375D 0x7845 # <CJK>
+0x2375E 0x7850 # <CJK>
+0x2375F 0x7964 # <CJK>
+0x23760 0x7967 # <CJK>
+0x23761 0x7969 # <CJK>
+0x23762 0x796A # <CJK>
+0x23763 0x7963 # <CJK>
+0x23764 0x796B # <CJK>
+0x23765 0x7961 # <CJK>
+0x23766 0x79BB # <CJK>
+0x23767 0x79FA # <CJK>
+0x23768 0x79F8 # <CJK>
+0x23769 0x79F6 # <CJK>
+0x2376A 0x79F7 # <CJK>
+0x2376B 0x7A8F # <CJK>
+0x2376C 0x7A94 # <CJK>
+0x2376D 0x7A90 # <CJK>
+0x2376E 0x7B35 # <CJK>
+0x2376F 0x7B3B # <CJK>
+0x23770 0x7B34 # <CJK>
+0x23771 0x7B25 # <CJK>
+0x23772 0x7B30 # <CJK>
+0x23773 0x7B22 # <CJK>
+0x23774 0x7B24 # <CJK>
+0x23775 0x7B33 # <CJK>
+0x23776 0x7B18 # <CJK>
+0x23777 0x7B2A # <CJK>
+0x23778 0x7B1D # <CJK>
+0x23779 0x7B31 # <CJK>
+0x2377A 0x7B2B # <CJK>
+0x2377B 0x7B2D # <CJK>
+0x2377C 0x7B2F # <CJK>
+0x2377D 0x7B32 # <CJK>
+0x2377E 0x7B38 # <CJK>
+0x23821 0x7B1A # <CJK>
+0x23822 0x7B23 # <CJK>
+0x23823 0x7C94 # <CJK>
+0x23824 0x7C98 # <CJK>
+0x23825 0x7C96 # <CJK>
+0x23826 0x7CA3 # <CJK>
+0x23827 0x7D35 # <CJK>
+0x23828 0x7D3D # <CJK>
+0x23829 0x7D38 # <CJK>
+0x2382A 0x7D36 # <CJK>
+0x2382B 0x7D3A # <CJK>
+0x2382C 0x7D45 # <CJK>
+0x2382D 0x7D2C # <CJK>
+0x2382E 0x7D29 # <CJK>
+0x2382F 0x7D41 # <CJK>
+0x23830 0x7D47 # <CJK>
+0x23831 0x7D3E # <CJK>
+0x23832 0x7D3F # <CJK>
+0x23833 0x7D4A # <CJK>
+0x23834 0x7D3B # <CJK>
+0x23835 0x7D28 # <CJK>
+0x23836 0x7F63 # <CJK>
+0x23837 0x7F95 # <CJK>
+0x23838 0x7F9C # <CJK>
+0x23839 0x7F9D # <CJK>
+0x2383A 0x7F9B # <CJK>
+0x2383B 0x7FCA # <CJK>
+0x2383C 0x7FCB # <CJK>
+0x2383D 0x7FCD # <CJK>
+0x2383E 0x7FD0 # <CJK>
+0x2383F 0x7FD1 # <CJK>
+0x23840 0x7FC7 # <CJK>
+0x23841 0x7FCF # <CJK>
+0x23842 0x7FC9 # <CJK>
+0x23843 0x801F # <CJK>
+0x23844 0x801E # <CJK>
+0x23845 0x801B # <CJK>
+0x23846 0x8047 # <CJK>
+0x23847 0x8043 # <CJK>
+0x23848 0x8048 # <CJK>
+0x23849 0x8118 # <CJK>
+0x2384A 0x8125 # <CJK>
+0x2384B 0x8119 # <CJK>
+0x2384C 0x811B # <CJK>
+0x2384D 0x812D # <CJK>
+0x2384E 0x811F # <CJK>
+0x2384F 0x812C # <CJK>
+0x23850 0x811E # <CJK>
+0x23851 0x8121 # <CJK>
+0x23852 0x8115 # <CJK>
+0x23853 0x8127 # <CJK>
+0x23854 0x811D # <CJK>
+0x23855 0x8122 # <CJK>
+0x23856 0x8211 # <CJK>
+0x23857 0x8238 # <CJK>
+0x23858 0x8233 # <CJK>
+0x23859 0x823A # <CJK>
+0x2385A 0x8234 # <CJK>
+0x2385B 0x8232 # <CJK>
+0x2385C 0x8274 # <CJK>
+0x2385D 0x8390 # <CJK>
+0x2385E 0x83A3 # <CJK>
+0x2385F 0x83A8 # <CJK>
+0x23860 0x838D # <CJK>
+0x23861 0x837A # <CJK>
+0x23862 0x8373 # <CJK>
+0x23863 0x83A4 # <CJK>
+0x23864 0x8374 # <CJK>
+0x23865 0x838F # <CJK>
+0x23866 0x8381 # <CJK>
+0x23867 0x8395 # <CJK>
+0x23868 0x8399 # <CJK>
+0x23869 0x8375 # <CJK>
+0x2386A 0x8394 # <CJK>
+0x2386B 0x83A9 # <CJK>
+0x2386C 0x837D # <CJK>
+0x2386D 0x8383 # <CJK>
+0x2386E 0x838C # <CJK>
+0x2386F 0x839D # <CJK>
+0x23870 0x839B # <CJK>
+0x23871 0x83AA # <CJK>
+0x23872 0x838B # <CJK>
+0x23873 0x837E # <CJK>
+0x23874 0x83A5 # <CJK>
+0x23875 0x83AF # <CJK>
+0x23876 0x8388 # <CJK>
+0x23877 0x8397 # <CJK>
+0x23878 0x83B0 # <CJK>
+0x23879 0x837F # <CJK>
+0x2387A 0x83A6 # <CJK>
+0x2387B 0x8387 # <CJK>
+0x2387C 0x83AE # <CJK>
+0x2387D 0x8376 # <CJK>
+0x2387E 0x8659 # <CJK>
+0x23921 0x8656 # <CJK>
+0x23922 0x86BF # <CJK>
+0x23923 0x86B7 # <CJK>
+0x23924 0x86C2 # <CJK>
+0x23925 0x86C1 # <CJK>
+0x23926 0x86C5 # <CJK>
+0x23927 0x86BA # <CJK>
+0x23928 0x86B0 # <CJK>
+0x23929 0x86C8 # <CJK>
+0x2392A 0x86B9 # <CJK>
+0x2392B 0x86B3 # <CJK>
+0x2392C 0x86B8 # <CJK>
+0x2392D 0x86CC # <CJK>
+0x2392E 0x86B4 # <CJK>
+0x2392F 0x86BB # <CJK>
+0x23930 0x86BC # <CJK>
+0x23931 0x86C3 # <CJK>
+0x23932 0x86BD # <CJK>
+0x23933 0x86BE # <CJK>
+0x23934 0x8852 # <CJK>
+0x23935 0x8889 # <CJK>
+0x23936 0x8895 # <CJK>
+0x23937 0x88A8 # <CJK>
+0x23938 0x88A2 # <CJK>
+0x23939 0x88AA # <CJK>
+0x2393A 0x889A # <CJK>
+0x2393B 0x8891 # <CJK>
+0x2393C 0x88A1 # <CJK>
+0x2393D 0x889F # <CJK>
+0x2393E 0x8898 # <CJK>
+0x2393F 0x88A7 # <CJK>
+0x23940 0x8899 # <CJK>
+0x23941 0x889B # <CJK>
+0x23942 0x8897 # <CJK>
+0x23943 0x88A4 # <CJK>
+0x23944 0x88AC # <CJK>
+0x23945 0x888C # <CJK>
+0x23946 0x8893 # <CJK>
+0x23947 0x888E # <CJK>
+0x23948 0x8982 # <CJK>
+0x23949 0x89D6 # <CJK>
+0x2394A 0x89D9 # <CJK>
+0x2394B 0x89D5 # <CJK>
+0x2394C 0x8A30 # <CJK>
+0x2394D 0x8A27 # <CJK>
+0x2394E 0x8A2C # <CJK>
+0x2394F 0x8A1E # <CJK>
+0x23950 0x8C39 # <CJK>
+0x23951 0x8C3B # <CJK>
+0x23952 0x8C5C # <CJK>
+0x23953 0x8C5D # <CJK>
+0x23954 0x8C7D # <CJK>
+0x23955 0x8CA5 # <CJK>
+0x23956 0x8D7D # <CJK>
+0x23957 0x8D7B # <CJK>
+0x23958 0x8D79 # <CJK>
+0x23959 0x8DBC # <CJK>
+0x2395A 0x8DC2 # <CJK>
+0x2395B 0x8DB9 # <CJK>
+0x2395C 0x8DBF # <CJK>
+0x2395D 0x8DC1 # <CJK>
+0x2395E 0x8ED8 # <CJK>
+0x2395F 0x8EDE # <CJK>
+0x23960 0x8EDD # <CJK>
+0x23961 0x8EDC # <CJK>
+0x23962 0x8ED7 # <CJK>
+0x23963 0x8EE0 # <CJK>
+0x23964 0x8EE1 # <CJK>
+0x23965 0x9024 # <CJK>
+0x23966 0x900B # <CJK>
+0x23967 0x9011 # <CJK>
+0x23968 0x901C # <CJK>
+0x23969 0x900C # <CJK>
+0x2396A 0x9021 # <CJK>
+0x2396B 0x90EF # <CJK>
+0x2396C 0x90EA # <CJK>
+0x2396D 0x90F0 # <CJK>
+0x2396E 0x90F4 # <CJK>
+0x2396F 0x90F2 # <CJK>
+0x23970 0x90F3 # <CJK>
+0x23971 0x90D4 # <CJK>
+0x23972 0x90EB # <CJK>
+0x23973 0x90EC # <CJK>
+0x23974 0x90E9 # <CJK>
+0x23975 0x9156 # <CJK>
+0x23976 0x9158 # <CJK>
+0x23977 0x915A # <CJK>
+0x23978 0x9153 # <CJK>
+0x23979 0x9155 # <CJK>
+0x2397A 0x91EC # <CJK>
+0x2397B 0x91F4 # <CJK>
+0x2397C 0x91F1 # <CJK>
+0x2397D 0x91F3 # <CJK>
+0x2397E 0x91F8 # <CJK>
+0x23A21 0x91E4 # <CJK>
+0x23A22 0x91F9 # <CJK>
+0x23A23 0x91EA # <CJK>
+0x23A24 0x91EB # <CJK>
+0x23A25 0x91F7 # <CJK>
+0x23A26 0x91E8 # <CJK>
+0x23A27 0x91EE # <CJK>
+0x23A28 0x957A # <CJK>
+0x23A29 0x9586 # <CJK>
+0x23A2A 0x9588 # <CJK>
+0x23A2B 0x967C # <CJK>
+0x23A2C 0x966D # <CJK>
+0x23A2D 0x966B # <CJK>
+0x23A2E 0x9671 # <CJK>
+0x23A2F 0x966F # <CJK>
+0x23A30 0x96BF # <CJK>
+0x23A31 0x976A # <CJK>
+0x23A32 0x9804 # <CJK>
+0x23A33 0x98E5 # <CJK>
+0x23A34 0x9997 # <CJK>
+0x23A35 0x509B # <CJK>
+0x23A36 0x5095 # <CJK>
+0x23A37 0x5094 # <CJK>
+0x23A38 0x509E # <CJK>
+0x23A39 0x508B # <CJK>
+0x23A3A 0x50A3 # <CJK>
+0x23A3B 0x5083 # <CJK>
+0x23A3C 0x508C # <CJK>
+0x23A3D 0x508E # <CJK>
+0x23A3E 0x509D # <CJK>
+0x23A3F 0x5068 # <CJK>
+0x23A40 0x509C # <CJK>
+0x23A41 0x5092 # <CJK>
+0x23A42 0x5082 # <CJK>
+0x23A43 0x5087 # <CJK>
+0x23A44 0x515F # <CJK>
+0x23A45 0x51D4 # <CJK>
+0x23A46 0x5312 # <CJK>
+0x23A47 0x5311 # <CJK>
+0x23A48 0x53A4 # <CJK>
+0x23A49 0x53A7 # <CJK>
+0x23A4A 0x5591 # <CJK>
+0x23A4B 0x55A8 # <CJK>
+0x23A4C 0x55A5 # <CJK>
+0x23A4D 0x55AD # <CJK>
+0x23A4E 0x5577 # <CJK>
+0x23A4F 0x5645 # <CJK>
+0x23A50 0x55A2 # <CJK>
+0x23A51 0x5593 # <CJK>
+0x23A52 0x5588 # <CJK>
+0x23A53 0x558F # <CJK>
+0x23A54 0x55B5 # <CJK>
+0x23A55 0x5581 # <CJK>
+0x23A56 0x55A3 # <CJK>
+0x23A57 0x5592 # <CJK>
+0x23A58 0x55A4 # <CJK>
+0x23A59 0x557D # <CJK>
+0x23A5A 0x558C # <CJK>
+0x23A5B 0x55A6 # <CJK>
+0x23A5C 0x557F # <CJK>
+0x23A5D 0x5595 # <CJK>
+0x23A5E 0x55A1 # <CJK>
+0x23A5F 0x558E # <CJK>
+0x23A60 0x570C # <CJK>
+0x23A61 0x5829 # <CJK>
+0x23A62 0x5837 # <CJK>
+0x23A63 0x5819 # <CJK>
+0x23A64 0x581E # <CJK>
+0x23A65 0x5827 # <CJK>
+0x23A66 0x5823 # <CJK>
+0x23A67 0x5828 # <CJK>
+0x23A68 0x57F5 # <CJK>
+0x23A69 0x5848 # <CJK>
+0x23A6A 0x5825 # <CJK>
+0x23A6B 0x581C # <CJK>
+0x23A6C 0x581B # <CJK>
+0x23A6D 0x5833 # <CJK>
+0x23A6E 0x583F # <CJK>
+0x23A6F 0x5836 # <CJK>
+0x23A70 0x582E # <CJK>
+0x23A71 0x5839 # <CJK>
+0x23A72 0x5838 # <CJK>
+0x23A73 0x582D # <CJK>
+0x23A74 0x582C # <CJK>
+0x23A75 0x583B # <CJK>
+0x23A76 0x5961 # <CJK>
+0x23A77 0x5AAF # <CJK>
+0x23A78 0x5A94 # <CJK>
+0x23A79 0x5A9F # <CJK>
+0x23A7A 0x5A7A # <CJK>
+0x23A7B 0x5AA2 # <CJK>
+0x23A7C 0x5A9E # <CJK>
+0x23A7D 0x5A78 # <CJK>
+0x23A7E 0x5AA6 # <CJK>
+0x23B21 0x5A7C # <CJK>
+0x23B22 0x5AA5 # <CJK>
+0x23B23 0x5AAC # <CJK>
+0x23B24 0x5A95 # <CJK>
+0x23B25 0x5AAE # <CJK>
+0x23B26 0x5A37 # <CJK>
+0x23B27 0x5A84 # <CJK>
+0x23B28 0x5A8A # <CJK>
+0x23B29 0x5A97 # <CJK>
+0x23B2A 0x5A83 # <CJK>
+0x23B2B 0x5A8B # <CJK>
+0x23B2C 0x5AA9 # <CJK>
+0x23B2D 0x5A7B # <CJK>
+0x23B2E 0x5A7D # <CJK>
+0x23B2F 0x5A8C # <CJK>
+0x23B30 0x5A9C # <CJK>
+0x23B31 0x5A8F # <CJK>
+0x23B32 0x5A93 # <CJK>
+0x23B33 0x5A9D # <CJK>
+0x23B34 0x5BEA # <CJK>
+0x23B35 0x5BCD # <CJK>
+0x23B36 0x5BCB # <CJK>
+0x23B37 0x5BD4 # <CJK>
+0x23B38 0x5BD1 # <CJK>
+0x23B39 0x5BCA # <CJK>
+0x23B3A 0x5BCE # <CJK>
+0x23B3B 0x5C0C # <CJK>
+0x23B3C 0x5C30 # <CJK>
+0x23B3D 0x5D37 # <CJK>
+0x23B3E 0x5D43 # <CJK>
+0x23B3F 0x5D6B # <CJK>
+0x23B40 0x5D41 # <CJK>
+0x23B41 0x5D4B # <CJK>
+0x23B42 0x5D3F # <CJK>
+0x23B43 0x5D35 # <CJK>
+0x23B44 0x5D51 # <CJK>
+0x23B45 0x5D4E # <CJK>
+0x23B46 0x5D55 # <CJK>
+0x23B47 0x5D33 # <CJK>
+0x23B48 0x5D3A # <CJK>
+0x23B49 0x5D52 # <CJK>
+0x23B4A 0x5D3D # <CJK>
+0x23B4B 0x5D31 # <CJK>
+0x23B4C 0x5D59 # <CJK>
+0x23B4D 0x5D42 # <CJK>
+0x23B4E 0x5D39 # <CJK>
+0x23B4F 0x5D49 # <CJK>
+0x23B50 0x5D38 # <CJK>
+0x23B51 0x5D3C # <CJK>
+0x23B52 0x5D32 # <CJK>
+0x23B53 0x5D36 # <CJK>
+0x23B54 0x5D40 # <CJK>
+0x23B55 0x5D45 # <CJK>
+0x23B56 0x5E44 # <CJK>
+0x23B57 0x5E41 # <CJK>
+0x23B58 0x5F58 # <CJK>
+0x23B59 0x5FA6 # <CJK>
+0x23B5A 0x5FA5 # <CJK>
+0x23B5B 0x5FAB # <CJK>
+0x23B5C 0x60C9 # <CJK>
+0x23B5D 0x60B9 # <CJK>
+0x23B5E 0x60CC # <CJK>
+0x23B5F 0x60E2 # <CJK>
+0x23B60 0x60CE # <CJK>
+0x23B61 0x60C4 # <CJK>
+0x23B62 0x6114 # <CJK>
+0x23B63 0x60F2 # <CJK>
+0x23B64 0x610A # <CJK>
+0x23B65 0x6116 # <CJK>
+0x23B66 0x6105 # <CJK>
+0x23B67 0x60F5 # <CJK>
+0x23B68 0x6113 # <CJK>
+0x23B69 0x60F8 # <CJK>
+0x23B6A 0x60FC # <CJK>
+0x23B6B 0x60FE # <CJK>
+0x23B6C 0x60C1 # <CJK>
+0x23B6D 0x6103 # <CJK>
+0x23B6E 0x6118 # <CJK>
+0x23B6F 0x611D # <CJK>
+0x23B70 0x6110 # <CJK>
+0x23B71 0x60FF # <CJK>
+0x23B72 0x6104 # <CJK>
+0x23B73 0x610B # <CJK>
+0x23B74 0x624A # <CJK>
+0x23B75 0x6394 # <CJK>
+0x23B76 0x63B1 # <CJK>
+0x23B77 0x63B0 # <CJK>
+0x23B78 0x63CE # <CJK>
+0x23B79 0x63E5 # <CJK>
+0x23B7A 0x63E8 # <CJK>
+0x23B7B 0x63EF # <CJK>
+0x23B7C 0x63C3 # <CJK>
+0x23B7D 0x649D # <CJK>
+0x23B7E 0x63F3 # <CJK>
+0x23C21 0x63CA # <CJK>
+0x23C22 0x63E0 # <CJK>
+0x23C23 0x63F6 # <CJK>
+0x23C24 0x63D5 # <CJK>
+0x23C25 0x63F2 # <CJK>
+0x23C26 0x63F5 # <CJK>
+0x23C27 0x6461 # <CJK>
+0x23C28 0x63DF # <CJK>
+0x23C29 0x63BE # <CJK>
+0x23C2A 0x63DD # <CJK>
+0x23C2B 0x63DC # <CJK>
+0x23C2C 0x63C4 # <CJK>
+0x23C2D 0x63D8 # <CJK>
+0x23C2E 0x63D3 # <CJK>
+0x23C2F 0x63C2 # <CJK>
+0x23C30 0x63C7 # <CJK>
+0x23C31 0x63CC # <CJK>
+0x23C32 0x63CB # <CJK>
+0x23C33 0x63C8 # <CJK>
+0x23C34 0x63F0 # <CJK>
+0x23C35 0x63D7 # <CJK>
+0x23C36 0x63D9 # <CJK>
+0x23C37 0x6532 # <CJK>
+0x23C38 0x6567 # <CJK>
+0x23C39 0x656A # <CJK>
+0x23C3A 0x6564 # <CJK>
+0x23C3B 0x655C # <CJK>
+0x23C3C 0x6568 # <CJK>
+0x23C3D 0x6565 # <CJK>
+0x23C3E 0x658C # <CJK>
+0x23C3F 0x659D # <CJK>
+0x23C40 0x659E # <CJK>
+0x23C41 0x65AE # <CJK>
+0x23C42 0x65D0 # <CJK>
+0x23C43 0x65D2 # <CJK>
+0x23C44 0x667C # <CJK>
+0x23C45 0x666C # <CJK>
+0x23C46 0x667B # <CJK>
+0x23C47 0x6680 # <CJK>
+0x23C48 0x6671 # <CJK>
+0x23C49 0x6679 # <CJK>
+0x23C4A 0x666A # <CJK>
+0x23C4B 0x6672 # <CJK>
+0x23C4C 0x6701 # <CJK>
+0x23C4D 0x690C # <CJK>
+0x23C4E 0x68D3 # <CJK>
+0x23C4F 0x6904 # <CJK>
+0x23C50 0x68DC # <CJK>
+0x23C51 0x692A # <CJK>
+0x23C52 0x68EC # <CJK>
+0x23C53 0x68EA # <CJK>
+0x23C54 0x68F1 # <CJK>
+0x23C55 0x690F # <CJK>
+0x23C56 0x68D6 # <CJK>
+0x23C57 0x68F7 # <CJK>
+0x23C58 0x68EB # <CJK>
+0x23C59 0x68E4 # <CJK>
+0x23C5A 0x68F6 # <CJK>
+0x23C5B 0x6913 # <CJK>
+0x23C5C 0x6910 # <CJK>
+0x23C5D 0x68F3 # <CJK>
+0x23C5E 0x68E1 # <CJK>
+0x23C5F 0x6907 # <CJK>
+0x23C60 0x68CC # <CJK>
+0x23C61 0x6908 # <CJK>
+0x23C62 0x6970 # <CJK>
+0x23C63 0x68B4 # <CJK>
+0x23C64 0x6911 # <CJK>
+0x23C65 0x68EF # <CJK>
+0x23C66 0x68C6 # <CJK>
+0x23C67 0x6914 # <CJK>
+0x23C68 0x68F8 # <CJK>
+0x23C69 0x68D0 # <CJK>
+0x23C6A 0x68FD # <CJK>
+0x23C6B 0x68FC # <CJK>
+0x23C6C 0x68E8 # <CJK>
+0x23C6D 0x690B # <CJK>
+0x23C6E 0x690A # <CJK>
+0x23C6F 0x6917 # <CJK>
+0x23C70 0x68CE # <CJK>
+0x23C71 0x68C8 # <CJK>
+0x23C72 0x68DD # <CJK>
+0x23C73 0x68DE # <CJK>
+0x23C74 0x68E6 # <CJK>
+0x23C75 0x68F4 # <CJK>
+0x23C76 0x68D1 # <CJK>
+0x23C77 0x6906 # <CJK>
+0x23C78 0x68D4 # <CJK>
+0x23C79 0x68E9 # <CJK>
+0x23C7A 0x6915 # <CJK>
+0x23C7B 0x6925 # <CJK>
+0x23C7C 0x68C7 # <CJK>
+0x23C7D 0x6B39 # <CJK>
+0x23C7E 0x6B3B # <CJK>
+0x23D21 0x6B3F # <CJK>
+0x23D22 0x6B3C # <CJK>
+0x23D23 0x6B94 # <CJK>
+0x23D24 0x6B97 # <CJK>
+0x23D25 0x6B99 # <CJK>
+0x23D26 0x6B95 # <CJK>
+0x23D27 0x6BBD # <CJK>
+0x23D28 0x6BF0 # <CJK>
+0x23D29 0x6BF2 # <CJK>
+0x23D2A 0x6BF3 # <CJK>
+0x23D2B 0x6C30 # <CJK>
+0x23D2C 0x6DFC # <CJK>
+0x23D2D 0x6E46 # <CJK>
+0x23D2E 0x6E47 # <CJK>
+0x23D2F 0x6E1F # <CJK>
+0x23D30 0x6E49 # <CJK>
+0x23D31 0x6E88 # <CJK>
+0x23D32 0x6E3C # <CJK>
+0x23D33 0x6E3D # <CJK>
+0x23D34 0x6E45 # <CJK>
+0x23D35 0x6E62 # <CJK>
+0x23D36 0x6E2B # <CJK>
+0x23D37 0x6E3F # <CJK>
+0x23D38 0x6E41 # <CJK>
+0x23D39 0x6E5D # <CJK>
+0x23D3A 0x6E73 # <CJK>
+0x23D3B 0x6E1C # <CJK>
+0x23D3C 0x6E33 # <CJK>
+0x23D3D 0x6E4B # <CJK>
+0x23D3E 0x6E40 # <CJK>
+0x23D3F 0x6E51 # <CJK>
+0x23D40 0x6E3B # <CJK>
+0x23D41 0x6E03 # <CJK>
+0x23D42 0x6E2E # <CJK>
+0x23D43 0x6E5E # <CJK>
+0x23D44 0x6E68 # <CJK>
+0x23D45 0x6E5C # <CJK>
+0x23D46 0x6E61 # <CJK>
+0x23D47 0x6E31 # <CJK>
+0x23D48 0x6E28 # <CJK>
+0x23D49 0x6E60 # <CJK>
+0x23D4A 0x6E71 # <CJK>
+0x23D4B 0x6E6B # <CJK>
+0x23D4C 0x6E39 # <CJK>
+0x23D4D 0x6E22 # <CJK>
+0x23D4E 0x6E30 # <CJK>
+0x23D4F 0x6E53 # <CJK>
+0x23D50 0x6E65 # <CJK>
+0x23D51 0x6E27 # <CJK>
+0x23D52 0x6E78 # <CJK>
+0x23D53 0x6E64 # <CJK>
+0x23D54 0x6E77 # <CJK>
+0x23D55 0x6E55 # <CJK>
+0x23D56 0x6E79 # <CJK>
+0x23D57 0x6E52 # <CJK>
+0x23D58 0x6E66 # <CJK>
+0x23D59 0x6E35 # <CJK>
+0x23D5A 0x6E36 # <CJK>
+0x23D5B 0x6E5A # <CJK>
+0x23D5C 0x7120 # <CJK>
+0x23D5D 0x711E # <CJK>
+0x23D5E 0x712F # <CJK>
+0x23D5F 0x70FB # <CJK>
+0x23D60 0x712E # <CJK>
+0x23D61 0x7131 # <CJK>
+0x23D62 0x7123 # <CJK>
+0x23D63 0x7125 # <CJK>
+0x23D64 0x7122 # <CJK>
+0x23D65 0x7132 # <CJK>
+0x23D66 0x711F # <CJK>
+0x23D67 0x7128 # <CJK>
+0x23D68 0x713A # <CJK>
+0x23D69 0x711B # <CJK>
+0x23D6A 0x724B # <CJK>
+0x23D6B 0x725A # <CJK>
+0x23D6C 0x7288 # <CJK>
+0x23D6D 0x7289 # <CJK>
+0x23D6E 0x7286 # <CJK>
+0x23D6F 0x7285 # <CJK>
+0x23D70 0x728B # <CJK>
+0x23D71 0x7312 # <CJK>
+0x23D72 0x730B # <CJK>
+0x23D73 0x7330 # <CJK>
+0x23D74 0x7322 # <CJK>
+0x23D75 0x7331 # <CJK>
+0x23D76 0x7333 # <CJK>
+0x23D77 0x7327 # <CJK>
+0x23D78 0x7332 # <CJK>
+0x23D79 0x732D # <CJK>
+0x23D7A 0x7326 # <CJK>
+0x23D7B 0x7323 # <CJK>
+0x23D7C 0x7335 # <CJK>
+0x23D7D 0x730C # <CJK>
+0x23D7E 0x742E # <CJK>
+0x23E21 0x742C # <CJK>
+0x23E22 0x7430 # <CJK>
+0x23E23 0x742B # <CJK>
+0x23E24 0x7416 # <CJK>
+0x23E25 0x741A # <CJK>
+0x23E26 0x7421 # <CJK>
+0x23E27 0x742D # <CJK>
+0x23E28 0x7431 # <CJK>
+0x23E29 0x7424 # <CJK>
+0x23E2A 0x7423 # <CJK>
+0x23E2B 0x741D # <CJK>
+0x23E2C 0x7429 # <CJK>
+0x23E2D 0x7420 # <CJK>
+0x23E2E 0x7432 # <CJK>
+0x23E2F 0x74FB # <CJK>
+0x23E30 0x752F # <CJK>
+0x23E31 0x756F # <CJK>
+0x23E32 0x756C # <CJK>
+0x23E33 0x75E7 # <CJK>
+0x23E34 0x75DA # <CJK>
+0x23E35 0x75E1 # <CJK>
+0x23E36 0x75E6 # <CJK>
+0x23E37 0x75DD # <CJK>
+0x23E38 0x75DF # <CJK>
+0x23E39 0x75E4 # <CJK>
+0x23E3A 0x75D7 # <CJK>
+0x23E3B 0x7695 # <CJK>
+0x23E3C 0x7692 # <CJK>
+0x23E3D 0x76DA # <CJK>
+0x23E3E 0x7746 # <CJK>
+0x23E3F 0x7747 # <CJK>
+0x23E40 0x7744 # <CJK>
+0x23E41 0x774D # <CJK>
+0x23E42 0x7745 # <CJK>
+0x23E43 0x774A # <CJK>
+0x23E44 0x774E # <CJK>
+0x23E45 0x774B # <CJK>
+0x23E46 0x774C # <CJK>
+0x23E47 0x77DE # <CJK>
+0x23E48 0x77EC # <CJK>
+0x23E49 0x7860 # <CJK>
+0x23E4A 0x7864 # <CJK>
+0x23E4B 0x7865 # <CJK>
+0x23E4C 0x785C # <CJK>
+0x23E4D 0x786D # <CJK>
+0x23E4E 0x7871 # <CJK>
+0x23E4F 0x786A # <CJK>
+0x23E50 0x786E # <CJK>
+0x23E51 0x7870 # <CJK>
+0x23E52 0x7869 # <CJK>
+0x23E53 0x7868 # <CJK>
+0x23E54 0x785E # <CJK>
+0x23E55 0x7862 # <CJK>
+0x23E56 0x7974 # <CJK>
+0x23E57 0x7973 # <CJK>
+0x23E58 0x7972 # <CJK>
+0x23E59 0x7970 # <CJK>
+0x23E5A 0x7A02 # <CJK>
+0x23E5B 0x7A0A # <CJK>
+0x23E5C 0x7A03 # <CJK>
+0x23E5D 0x7A0C # <CJK>
+0x23E5E 0x7A04 # <CJK>
+0x23E5F 0x7A99 # <CJK>
+0x23E60 0x7AE6 # <CJK>
+0x23E61 0x7AE4 # <CJK>
+0x23E62 0x7B4A # <CJK>
+0x23E63 0x7B47 # <CJK>
+0x23E64 0x7B44 # <CJK>
+0x23E65 0x7B48 # <CJK>
+0x23E66 0x7B4C # <CJK>
+0x23E67 0x7B4E # <CJK>
+0x23E68 0x7B40 # <CJK>
+0x23E69 0x7B58 # <CJK>
+0x23E6A 0x7B45 # <CJK>
+0x23E6B 0x7CA2 # <CJK>
+0x23E6C 0x7C9E # <CJK>
+0x23E6D 0x7CA8 # <CJK>
+0x23E6E 0x7CA1 # <CJK>
+0x23E6F 0x7D58 # <CJK>
+0x23E70 0x7D6F # <CJK>
+0x23E71 0x7D63 # <CJK>
+0x23E72 0x7D53 # <CJK>
+0x23E73 0x7D56 # <CJK>
+0x23E74 0x7D67 # <CJK>
+0x23E75 0x7D6A # <CJK>
+0x23E76 0x7D4F # <CJK>
+0x23E77 0x7D6D # <CJK>
+0x23E78 0x7D5C # <CJK>
+0x23E79 0x7D6B # <CJK>
+0x23E7A 0x7D52 # <CJK>
+0x23E7B 0x7D54 # <CJK>
+0x23E7C 0x7D69 # <CJK>
+0x23E7D 0x7D51 # <CJK>
+0x23E7E 0x7D5F # <CJK>
+0x23F21 0x7D4E # <CJK>
+0x23F22 0x7F3E # <CJK>
+0x23F23 0x7F3F # <CJK>
+0x23F24 0x7F65 # <CJK>
+0x23F25 0x7F66 # <CJK>
+0x23F26 0x7FA2 # <CJK>
+0x23F27 0x7FA0 # <CJK>
+0x23F28 0x7FA1 # <CJK>
+0x23F29 0x7FD7 # <CJK>
+0x23F2A 0x8051 # <CJK>
+0x23F2B 0x804F # <CJK>
+0x23F2C 0x8050 # <CJK>
+0x23F2D 0x80FE # <CJK>
+0x23F2E 0x80D4 # <CJK>
+0x23F2F 0x8143 # <CJK>
+0x23F30 0x814A # <CJK>
+0x23F31 0x8152 # <CJK>
+0x23F32 0x814F # <CJK>
+0x23F33 0x8147 # <CJK>
+0x23F34 0x813D # <CJK>
+0x23F35 0x814D # <CJK>
+0x23F36 0x813A # <CJK>
+0x23F37 0x81E6 # <CJK>
+0x23F38 0x81EE # <CJK>
+0x23F39 0x81F7 # <CJK>
+0x23F3A 0x81F8 # <CJK>
+0x23F3B 0x81F9 # <CJK>
+0x23F3C 0x8204 # <CJK>
+0x23F3D 0x823C # <CJK>
+0x23F3E 0x823D # <CJK>
+0x23F3F 0x823F # <CJK>
+0x23F40 0x8275 # <CJK>
+0x23F41 0x833B # <CJK>
+0x23F42 0x83CF # <CJK>
+0x23F43 0x83F9 # <CJK>
+0x23F44 0x8423 # <CJK>
+0x23F45 0x83C0 # <CJK>
+0x23F46 0x83E8 # <CJK>
+0x23F47 0x8412 # <CJK>
+0x23F48 0x83E7 # <CJK>
+0x23F49 0x83E4 # <CJK>
+0x23F4A 0x83FC # <CJK>
+0x23F4B 0x83F6 # <CJK>
+0x23F4C 0x8410 # <CJK>
+0x23F4D 0x83C6 # <CJK>
+0x23F4E 0x83C8 # <CJK>
+0x23F4F 0x83EB # <CJK>
+0x23F50 0x83E3 # <CJK>
+0x23F51 0x83BF # <CJK>
+0x23F52 0x8401 # <CJK>
+0x23F53 0x83DD # <CJK>
+0x23F54 0x83E5 # <CJK>
+0x23F55 0x83D8 # <CJK>
+0x23F56 0x83FF # <CJK>
+0x23F57 0x83E1 # <CJK>
+0x23F58 0x83CB # <CJK>
+0x23F59 0x83CE # <CJK>
+0x23F5A 0x83D6 # <CJK>
+0x23F5B 0x83F5 # <CJK>
+0x23F5C 0x83C9 # <CJK>
+0x23F5D 0x8409 # <CJK>
+0x23F5E 0x840F # <CJK>
+0x23F5F 0x83DE # <CJK>
+0x23F60 0x8411 # <CJK>
+0x23F61 0x8406 # <CJK>
+0x23F62 0x83C2 # <CJK>
+0x23F63 0x83F3 # <CJK>
+0x23F64 0x83D5 # <CJK>
+0x23F65 0x83FA # <CJK>
+0x23F66 0x83C7 # <CJK>
+0x23F67 0x83D1 # <CJK>
+0x23F68 0x83EA # <CJK>
+0x23F69 0x8413 # <CJK>
+0x23F6A 0x839A # <CJK>
+0x23F6B 0x83C3 # <CJK>
+0x23F6C 0x83EC # <CJK>
+0x23F6D 0x83EE # <CJK>
+0x23F6E 0x83C4 # <CJK>
+0x23F6F 0x83FB # <CJK>
+0x23F70 0x83D7 # <CJK>
+0x23F71 0x83E2 # <CJK>
+0x23F72 0x841B # <CJK>
+0x23F73 0x83DB # <CJK>
+0x23F74 0x83FE # <CJK>
+0x23F75 0x86D8 # <CJK>
+0x23F76 0x86E2 # <CJK>
+0x23F77 0x86E6 # <CJK>
+0x23F78 0x86D3 # <CJK>
+0x23F79 0x86E3 # <CJK>
+0x23F7A 0x86DA # <CJK>
+0x23F7B 0x86EA # <CJK>
+0x23F7C 0x86DD # <CJK>
+0x23F7D 0x86EB # <CJK>
+0x23F7E 0x86DC # <CJK>
+0x24021 0x86EC # <CJK>
+0x24022 0x86E9 # <CJK>
+0x24023 0x86D7 # <CJK>
+0x24024 0x86E8 # <CJK>
+0x24025 0x86D1 # <CJK>
+0x24026 0x8848 # <CJK>
+0x24027 0x8856 # <CJK>
+0x24028 0x8855 # <CJK>
+0x24029 0x88BA # <CJK>
+0x2402A 0x88D7 # <CJK>
+0x2402B 0x88B9 # <CJK>
+0x2402C 0x88B8 # <CJK>
+0x2402D 0x88C0 # <CJK>
+0x2402E 0x88BE # <CJK>
+0x2402F 0x88B6 # <CJK>
+0x24030 0x88BC # <CJK>
+0x24031 0x88B7 # <CJK>
+0x24032 0x88BD # <CJK>
+0x24033 0x88B2 # <CJK>
+0x24034 0x8901 # <CJK>
+0x24035 0x88C9 # <CJK>
+0x24036 0x8995 # <CJK>
+0x24037 0x8998 # <CJK>
+0x24038 0x8997 # <CJK>
+0x24039 0x89DD # <CJK>
+0x2403A 0x89DA # <CJK>
+0x2403B 0x89DB # <CJK>
+0x2403C 0x8A4E # <CJK>
+0x2403D 0x8A4D # <CJK>
+0x2403E 0x8A39 # <CJK>
+0x2403F 0x8A59 # <CJK>
+0x24040 0x8A40 # <CJK>
+0x24041 0x8A57 # <CJK>
+0x24042 0x8A58 # <CJK>
+0x24043 0x8A44 # <CJK>
+0x24044 0x8A45 # <CJK>
+0x24045 0x8A52 # <CJK>
+0x24046 0x8A48 # <CJK>
+0x24047 0x8A51 # <CJK>
+0x24048 0x8A4A # <CJK>
+0x24049 0x8A4C # <CJK>
+0x2404A 0x8A4F # <CJK>
+0x2404B 0x8C5F # <CJK>
+0x2404C 0x8C81 # <CJK>
+0x2404D 0x8C80 # <CJK>
+0x2404E 0x8CBA # <CJK>
+0x2404F 0x8CBE # <CJK>
+0x24050 0x8CB0 # <CJK>
+0x24051 0x8CB9 # <CJK>
+0x24052 0x8CB5 # <CJK>
+0x24053 0x8D84 # <CJK>
+0x24054 0x8D80 # <CJK>
+0x24055 0x8D89 # <CJK>
+0x24056 0x8DD8 # <CJK>
+0x24057 0x8DD3 # <CJK>
+0x24058 0x8DCD # <CJK>
+0x24059 0x8DC7 # <CJK>
+0x2405A 0x8DD6 # <CJK>
+0x2405B 0x8DDC # <CJK>
+0x2405C 0x8DCF # <CJK>
+0x2405D 0x8DD5 # <CJK>
+0x2405E 0x8DD9 # <CJK>
+0x2405F 0x8DC8 # <CJK>
+0x24060 0x8DD7 # <CJK>
+0x24061 0x8DC5 # <CJK>
+0x24062 0x8EEF # <CJK>
+0x24063 0x8EF7 # <CJK>
+0x24064 0x8EFA # <CJK>
+0x24065 0x8EF9 # <CJK>
+0x24066 0x8EE6 # <CJK>
+0x24067 0x8EEE # <CJK>
+0x24068 0x8EE5 # <CJK>
+0x24069 0x8EF5 # <CJK>
+0x2406A 0x8EE7 # <CJK>
+0x2406B 0x8EE8 # <CJK>
+0x2406C 0x8EF6 # <CJK>
+0x2406D 0x8EEB # <CJK>
+0x2406E 0x8EF1 # <CJK>
+0x2406F 0x8EEC # <CJK>
+0x24070 0x8EF4 # <CJK>
+0x24071 0x8EE9 # <CJK>
+0x24072 0x902D # <CJK>
+0x24073 0x9034 # <CJK>
+0x24074 0x902F # <CJK>
+0x24075 0x9106 # <CJK>
+0x24076 0x912C # <CJK>
+0x24077 0x9104 # <CJK>
+0x24078 0x90FF # <CJK>
+0x24079 0x90FC # <CJK>
+0x2407A 0x9108 # <CJK>
+0x2407B 0x90F9 # <CJK>
+0x2407C 0x90FB # <CJK>
+0x2407D 0x9101 # <CJK>
+0x2407E 0x9100 # <CJK>
+0x24121 0x9107 # <CJK>
+0x24122 0x9105 # <CJK>
+0x24123 0x9103 # <CJK>
+0x24124 0x9161 # <CJK>
+0x24125 0x9164 # <CJK>
+0x24126 0x915F # <CJK>
+0x24127 0x9162 # <CJK>
+0x24128 0x9160 # <CJK>
+0x24129 0x9201 # <CJK>
+0x2412A 0x920A # <CJK>
+0x2412B 0x9225 # <CJK>
+0x2412C 0x9203 # <CJK>
+0x2412D 0x921A # <CJK>
+0x2412E 0x9226 # <CJK>
+0x2412F 0x920F # <CJK>
+0x24130 0x920C # <CJK>
+0x24131 0x9200 # <CJK>
+0x24132 0x9212 # <CJK>
+0x24133 0x91FF # <CJK>
+0x24134 0x91FD # <CJK>
+0x24135 0x9206 # <CJK>
+0x24136 0x9204 # <CJK>
+0x24137 0x9227 # <CJK>
+0x24138 0x9202 # <CJK>
+0x24139 0x921C # <CJK>
+0x2413A 0x9224 # <CJK>
+0x2413B 0x9219 # <CJK>
+0x2413C 0x9217 # <CJK>
+0x2413D 0x9205 # <CJK>
+0x2413E 0x9216 # <CJK>
+0x2413F 0x957B # <CJK>
+0x24140 0x958D # <CJK>
+0x24141 0x958C # <CJK>
+0x24142 0x9590 # <CJK>
+0x24143 0x9687 # <CJK>
+0x24144 0x967E # <CJK>
+0x24145 0x9688 # <CJK>
+0x24146 0x9689 # <CJK>
+0x24147 0x9683 # <CJK>
+0x24148 0x9680 # <CJK>
+0x24149 0x96C2 # <CJK>
+0x2414A 0x96C8 # <CJK>
+0x2414B 0x96C3 # <CJK>
+0x2414C 0x96F1 # <CJK>
+0x2414D 0x96F0 # <CJK>
+0x2414E 0x976C # <CJK>
+0x2414F 0x9770 # <CJK>
+0x24150 0x976E # <CJK>
+0x24151 0x9807 # <CJK>
+0x24152 0x98A9 # <CJK>
+0x24153 0x98EB # <CJK>
+0x24154 0x9CE6 # <CJK>
+0x24155 0x9EF9 # <CJK>
+0x24156 0x4E83 # <CJK>
+0x24157 0x4E84 # <CJK>
+0x24158 0x4EB6 # <CJK>
+0x24159 0x50BD # <CJK>
+0x2415A 0x50BF # <CJK>
+0x2415B 0x50C6 # <CJK>
+0x2415C 0x50AE # <CJK>
+0x2415D 0x50C4 # <CJK>
+0x2415E 0x50CA # <CJK>
+0x2415F 0x50B4 # <CJK>
+0x24160 0x50C8 # <CJK>
+0x24161 0x50C2 # <CJK>
+0x24162 0x50B0 # <CJK>
+0x24163 0x50C1 # <CJK>
+0x24164 0x50BA # <CJK>
+0x24165 0x50B1 # <CJK>
+0x24166 0x50CB # <CJK>
+0x24167 0x50C9 # <CJK>
+0x24168 0x50B6 # <CJK>
+0x24169 0x50B8 # <CJK>
+0x2416A 0x51D7 # <CJK>
+0x2416B 0x527A # <CJK>
+0x2416C 0x5278 # <CJK>
+0x2416D 0x527B # <CJK>
+0x2416E 0x527C # <CJK>
+0x2416F 0x55C3 # <CJK>
+0x24170 0x55DB # <CJK>
+0x24171 0x55CC # <CJK>
+0x24172 0x55D0 # <CJK>
+0x24173 0x55CB # <CJK>
+0x24174 0x55CA # <CJK>
+0x24175 0x55DD # <CJK>
+0x24176 0x55C0 # <CJK>
+0x24177 0x55D4 # <CJK>
+0x24178 0x55C4 # <CJK>
+0x24179 0x55E9 # <CJK>
+0x2417A 0x55BF # <CJK>
+0x2417B 0x55D2 # <CJK>
+0x2417C 0x558D # <CJK>
+0x2417D 0x55CF # <CJK>
+0x2417E 0x55D5 # <CJK>
+0x24221 0x55E2 # <CJK>
+0x24222 0x55D6 # <CJK>
+0x24223 0x55C8 # <CJK>
+0x24224 0x55F2 # <CJK>
+0x24225 0x55CD # <CJK>
+0x24226 0x55D9 # <CJK>
+0x24227 0x55C2 # <CJK>
+0x24228 0x5714 # <CJK>
+0x24229 0x5853 # <CJK>
+0x2422A 0x5868 # <CJK>
+0x2422B 0x5864 # <CJK>
+0x2422C 0x584F # <CJK>
+0x2422D 0x584D # <CJK>
+0x2422E 0x5849 # <CJK>
+0x2422F 0x586F # <CJK>
+0x24230 0x5855 # <CJK>
+0x24231 0x584E # <CJK>
+0x24232 0x585D # <CJK>
+0x24233 0x5859 # <CJK>
+0x24234 0x5865 # <CJK>
+0x24235 0x585B # <CJK>
+0x24236 0x583D # <CJK>
+0x24237 0x5863 # <CJK>
+0x24238 0x5871 # <CJK>
+0x24239 0x58FC # <CJK>
+0x2423A 0x5AC7 # <CJK>
+0x2423B 0x5AC4 # <CJK>
+0x2423C 0x5ACB # <CJK>
+0x2423D 0x5ABA # <CJK>
+0x2423E 0x5AB8 # <CJK>
+0x2423F 0x5AB1 # <CJK>
+0x24240 0x5AB5 # <CJK>
+0x24241 0x5AB0 # <CJK>
+0x24242 0x5ABF # <CJK>
+0x24243 0x5AC8 # <CJK>
+0x24244 0x5ABB # <CJK>
+0x24245 0x5AC6 # <CJK>
+0x24246 0x5AB7 # <CJK>
+0x24247 0x5AC0 # <CJK>
+0x24248 0x5ACA # <CJK>
+0x24249 0x5AB4 # <CJK>
+0x2424A 0x5AB6 # <CJK>
+0x2424B 0x5ACD # <CJK>
+0x2424C 0x5AB9 # <CJK>
+0x2424D 0x5A90 # <CJK>
+0x2424E 0x5BD6 # <CJK>
+0x2424F 0x5BD8 # <CJK>
+0x24250 0x5BD9 # <CJK>
+0x24251 0x5C1F # <CJK>
+0x24252 0x5C33 # <CJK>
+0x24253 0x5D71 # <CJK>
+0x24254 0x5D63 # <CJK>
+0x24255 0x5D4A # <CJK>
+0x24256 0x5D65 # <CJK>
+0x24257 0x5D72 # <CJK>
+0x24258 0x5D6C # <CJK>
+0x24259 0x5D5E # <CJK>
+0x2425A 0x5D68 # <CJK>
+0x2425B 0x5D67 # <CJK>
+0x2425C 0x5D62 # <CJK>
+0x2425D 0x5DF0 # <CJK>
+0x2425E 0x5E4F # <CJK>
+0x2425F 0x5E4E # <CJK>
+0x24260 0x5E4A # <CJK>
+0x24261 0x5E4D # <CJK>
+0x24262 0x5E4B # <CJK>
+0x24263 0x5EC5 # <CJK>
+0x24264 0x5ECC # <CJK>
+0x24265 0x5EC6 # <CJK>
+0x24266 0x5ECB # <CJK>
+0x24267 0x5EC7 # <CJK>
+0x24268 0x5F40 # <CJK>
+0x24269 0x5FAF # <CJK>
+0x2426A 0x5FAD # <CJK>
+0x2426B 0x60F7 # <CJK>
+0x2426C 0x6149 # <CJK>
+0x2426D 0x614A # <CJK>
+0x2426E 0x612B # <CJK>
+0x2426F 0x6145 # <CJK>
+0x24270 0x6136 # <CJK>
+0x24271 0x6132 # <CJK>
+0x24272 0x612E # <CJK>
+0x24273 0x6146 # <CJK>
+0x24274 0x612F # <CJK>
+0x24275 0x614F # <CJK>
+0x24276 0x6129 # <CJK>
+0x24277 0x6140 # <CJK>
+0x24278 0x6220 # <CJK>
+0x24279 0x9168 # <CJK>
+0x2427A 0x6223 # <CJK>
+0x2427B 0x6225 # <CJK>
+0x2427C 0x6224 # <CJK>
+0x2427D 0x63C5 # <CJK>
+0x2427E 0x63F1 # <CJK>
+0x24321 0x63EB # <CJK>
+0x24322 0x6410 # <CJK>
+0x24323 0x6412 # <CJK>
+0x24324 0x6409 # <CJK>
+0x24325 0x6420 # <CJK>
+0x24326 0x6424 # <CJK>
+0x24327 0x6433 # <CJK>
+0x24328 0x6443 # <CJK>
+0x24329 0x641F # <CJK>
+0x2432A 0x6415 # <CJK>
+0x2432B 0x6418 # <CJK>
+0x2432C 0x6439 # <CJK>
+0x2432D 0x6437 # <CJK>
+0x2432E 0x6422 # <CJK>
+0x2432F 0x6423 # <CJK>
+0x24330 0x640C # <CJK>
+0x24331 0x6426 # <CJK>
+0x24332 0x6430 # <CJK>
+0x24333 0x6428 # <CJK>
+0x24334 0x6441 # <CJK>
+0x24335 0x6435 # <CJK>
+0x24336 0x642F # <CJK>
+0x24337 0x640A # <CJK>
+0x24338 0x641A # <CJK>
+0x24339 0x6440 # <CJK>
+0x2433A 0x6425 # <CJK>
+0x2433B 0x6427 # <CJK>
+0x2433C 0x640B # <CJK>
+0x2433D 0x63E7 # <CJK>
+0x2433E 0x641B # <CJK>
+0x2433F 0x642E # <CJK>
+0x24340 0x6421 # <CJK>
+0x24341 0x640E # <CJK>
+0x24342 0x656F # <CJK>
+0x24343 0x6592 # <CJK>
+0x24344 0x65D3 # <CJK>
+0x24345 0x6686 # <CJK>
+0x24346 0x668C # <CJK>
+0x24347 0x6695 # <CJK>
+0x24348 0x6690 # <CJK>
+0x24349 0x668B # <CJK>
+0x2434A 0x668A # <CJK>
+0x2434B 0x6699 # <CJK>
+0x2434C 0x6694 # <CJK>
+0x2434D 0x6678 # <CJK>
+0x2434E 0x6720 # <CJK>
+0x2434F 0x6966 # <CJK>
+0x24350 0x695F # <CJK>
+0x24351 0x6938 # <CJK>
+0x24352 0x694E # <CJK>
+0x24353 0x6962 # <CJK>
+0x24354 0x6971 # <CJK>
+0x24355 0x693F # <CJK>
+0x24356 0x6945 # <CJK>
+0x24357 0x696A # <CJK>
+0x24358 0x6939 # <CJK>
+0x24359 0x6942 # <CJK>
+0x2435A 0x6957 # <CJK>
+0x2435B 0x6959 # <CJK>
+0x2435C 0x697A # <CJK>
+0x2435D 0x6948 # <CJK>
+0x2435E 0x6949 # <CJK>
+0x2435F 0x6935 # <CJK>
+0x24360 0x696C # <CJK>
+0x24361 0x6933 # <CJK>
+0x24362 0x693D # <CJK>
+0x24363 0x6965 # <CJK>
+0x24364 0x68F0 # <CJK>
+0x24365 0x6978 # <CJK>
+0x24366 0x6934 # <CJK>
+0x24367 0x6969 # <CJK>
+0x24368 0x6940 # <CJK>
+0x24369 0x696F # <CJK>
+0x2436A 0x6944 # <CJK>
+0x2436B 0x6976 # <CJK>
+0x2436C 0x6958 # <CJK>
+0x2436D 0x6941 # <CJK>
+0x2436E 0x6974 # <CJK>
+0x2436F 0x694C # <CJK>
+0x24370 0x693B # <CJK>
+0x24371 0x694B # <CJK>
+0x24372 0x6937 # <CJK>
+0x24373 0x695C # <CJK>
+0x24374 0x694F # <CJK>
+0x24375 0x6951 # <CJK>
+0x24376 0x6932 # <CJK>
+0x24377 0x6952 # <CJK>
+0x24378 0x692F # <CJK>
+0x24379 0x697B # <CJK>
+0x2437A 0x693C # <CJK>
+0x2437B 0x6B46 # <CJK>
+0x2437C 0x6B45 # <CJK>
+0x2437D 0x6B43 # <CJK>
+0x2437E 0x6B42 # <CJK>
+0x24421 0x6B48 # <CJK>
+0x24422 0x6B41 # <CJK>
+0x24423 0x6B9B # <CJK>
+0x24424 0x6BFB # <CJK>
+0x24425 0x6BFC # <CJK>
+0x24426 0x6BF9 # <CJK>
+0x24427 0x6BF7 # <CJK>
+0x24428 0x6BF8 # <CJK>
+0x24429 0x6E9B # <CJK>
+0x2442A 0x6ED6 # <CJK>
+0x2442B 0x6EC8 # <CJK>
+0x2442C 0x6E8F # <CJK>
+0x2442D 0x6EC0 # <CJK>
+0x2442E 0x6E9F # <CJK>
+0x2442F 0x6E93 # <CJK>
+0x24430 0x6E94 # <CJK>
+0x24431 0x6EA0 # <CJK>
+0x24432 0x6EB1 # <CJK>
+0x24433 0x6EB9 # <CJK>
+0x24434 0x6EC6 # <CJK>
+0x24435 0x6ED2 # <CJK>
+0x24436 0x6EBD # <CJK>
+0x24437 0x6EC1 # <CJK>
+0x24438 0x6E9E # <CJK>
+0x24439 0x6EC9 # <CJK>
+0x2443A 0x6EB7 # <CJK>
+0x2443B 0x6EB0 # <CJK>
+0x2443C 0x6ECD # <CJK>
+0x2443D 0x6EA6 # <CJK>
+0x2443E 0x6ECF # <CJK>
+0x2443F 0x6EB2 # <CJK>
+0x24440 0x6EBE # <CJK>
+0x24441 0x6EC3 # <CJK>
+0x24442 0x6EDC # <CJK>
+0x24443 0x6ED8 # <CJK>
+0x24444 0x6E99 # <CJK>
+0x24445 0x6E92 # <CJK>
+0x24446 0x6E8E # <CJK>
+0x24447 0x6E8D # <CJK>
+0x24448 0x6EA4 # <CJK>
+0x24449 0x6EA1 # <CJK>
+0x2444A 0x6EBF # <CJK>
+0x2444B 0x6EB3 # <CJK>
+0x2444C 0x6ED0 # <CJK>
+0x2444D 0x6ECA # <CJK>
+0x2444E 0x6E97 # <CJK>
+0x2444F 0x6EAE # <CJK>
+0x24450 0x6EA3 # <CJK>
+0x24451 0x7147 # <CJK>
+0x24452 0x7154 # <CJK>
+0x24453 0x7152 # <CJK>
+0x24454 0x7163 # <CJK>
+0x24455 0x7160 # <CJK>
+0x24456 0x7141 # <CJK>
+0x24457 0x715D # <CJK>
+0x24458 0x7162 # <CJK>
+0x24459 0x7172 # <CJK>
+0x2445A 0x7178 # <CJK>
+0x2445B 0x716A # <CJK>
+0x2445C 0x7161 # <CJK>
+0x2445D 0x7142 # <CJK>
+0x2445E 0x7158 # <CJK>
+0x2445F 0x7143 # <CJK>
+0x24460 0x714B # <CJK>
+0x24461 0x7170 # <CJK>
+0x24462 0x715F # <CJK>
+0x24463 0x7150 # <CJK>
+0x24464 0x7153 # <CJK>
+0x24465 0x7144 # <CJK>
+0x24466 0x714D # <CJK>
+0x24467 0x715A # <CJK>
+0x24468 0x724F # <CJK>
+0x24469 0x728D # <CJK>
+0x2446A 0x728C # <CJK>
+0x2446B 0x7291 # <CJK>
+0x2446C 0x7290 # <CJK>
+0x2446D 0x728E # <CJK>
+0x2446E 0x733C # <CJK>
+0x2446F 0x7342 # <CJK>
+0x24470 0x733B # <CJK>
+0x24471 0x733A # <CJK>
+0x24472 0x7340 # <CJK>
+0x24473 0x734A # <CJK>
+0x24474 0x7349 # <CJK>
+0x24475 0x7444 # <CJK>
+0x24476 0x744A # <CJK>
+0x24477 0x744B # <CJK>
+0x24478 0x7452 # <CJK>
+0x24479 0x7451 # <CJK>
+0x2447A 0x7457 # <CJK>
+0x2447B 0x7440 # <CJK>
+0x2447C 0x744F # <CJK>
+0x2447D 0x7450 # <CJK>
+0x2447E 0x744E # <CJK>
+0x24521 0x7442 # <CJK>
+0x24522 0x7446 # <CJK>
+0x24523 0x744D # <CJK>
+0x24524 0x7454 # <CJK>
+0x24525 0x74E1 # <CJK>
+0x24526 0x74FF # <CJK>
+0x24527 0x74FE # <CJK>
+0x24528 0x74FD # <CJK>
+0x24529 0x751D # <CJK>
+0x2452A 0x7579 # <CJK>
+0x2452B 0x7577 # <CJK>
+0x2452C 0x6983 # <CJK>
+0x2452D 0x75EF # <CJK>
+0x2452E 0x760F # <CJK>
+0x2452F 0x7603 # <CJK>
+0x24530 0x75F7 # <CJK>
+0x24531 0x75FE # <CJK>
+0x24532 0x75FC # <CJK>
+0x24533 0x75F9 # <CJK>
+0x24534 0x75F8 # <CJK>
+0x24535 0x7610 # <CJK>
+0x24536 0x75FB # <CJK>
+0x24537 0x75F6 # <CJK>
+0x24538 0x75ED # <CJK>
+0x24539 0x75F5 # <CJK>
+0x2453A 0x75FD # <CJK>
+0x2453B 0x7699 # <CJK>
+0x2453C 0x76B5 # <CJK>
+0x2453D 0x76DD # <CJK>
+0x2453E 0x7755 # <CJK>
+0x2453F 0x775F # <CJK>
+0x24540 0x7760 # <CJK>
+0x24541 0x7752 # <CJK>
+0x24542 0x7756 # <CJK>
+0x24543 0x775A # <CJK>
+0x24544 0x7769 # <CJK>
+0x24545 0x7767 # <CJK>
+0x24546 0x7754 # <CJK>
+0x24547 0x7759 # <CJK>
+0x24548 0x776D # <CJK>
+0x24549 0x77E0 # <CJK>
+0x2454A 0x7887 # <CJK>
+0x2454B 0x789A # <CJK>
+0x2454C 0x7894 # <CJK>
+0x2454D 0x788F # <CJK>
+0x2454E 0x7884 # <CJK>
+0x2454F 0x7895 # <CJK>
+0x24550 0x7885 # <CJK>
+0x24551 0x7886 # <CJK>
+0x24552 0x78A1 # <CJK>
+0x24553 0x7883 # <CJK>
+0x24554 0x7879 # <CJK>
+0x24555 0x7899 # <CJK>
+0x24556 0x7880 # <CJK>
+0x24557 0x7896 # <CJK>
+0x24558 0x787B # <CJK>
+0x24559 0x797C # <CJK>
+0x2455A 0x7982 # <CJK>
+0x2455B 0x797D # <CJK>
+0x2455C 0x7979 # <CJK>
+0x2455D 0x7A11 # <CJK>
+0x2455E 0x7A18 # <CJK>
+0x2455F 0x7A19 # <CJK>
+0x24560 0x7A12 # <CJK>
+0x24561 0x7A17 # <CJK>
+0x24562 0x7A15 # <CJK>
+0x24563 0x7A22 # <CJK>
+0x24564 0x7A13 # <CJK>
+0x24565 0x7A1B # <CJK>
+0x24566 0x7A10 # <CJK>
+0x24567 0x7AA3 # <CJK>
+0x24568 0x7AA2 # <CJK>
+0x24569 0x7A9E # <CJK>
+0x2456A 0x7AEB # <CJK>
+0x2456B 0x7B66 # <CJK>
+0x2456C 0x7B64 # <CJK>
+0x2456D 0x7B6D # <CJK>
+0x2456E 0x7B74 # <CJK>
+0x2456F 0x7B69 # <CJK>
+0x24570 0x7B72 # <CJK>
+0x24571 0x7B65 # <CJK>
+0x24572 0x7B73 # <CJK>
+0x24573 0x7B71 # <CJK>
+0x24574 0x7B70 # <CJK>
+0x24575 0x7B61 # <CJK>
+0x24576 0x7B78 # <CJK>
+0x24577 0x7B76 # <CJK>
+0x24578 0x7B63 # <CJK>
+0x24579 0x7CB2 # <CJK>
+0x2457A 0x7CB4 # <CJK>
+0x2457B 0x7CAF # <CJK>
+0x2457C 0x7D88 # <CJK>
+0x2457D 0x7D86 # <CJK>
+0x2457E 0x7D80 # <CJK>
+0x24621 0x7D8D # <CJK>
+0x24622 0x7D7F # <CJK>
+0x24623 0x7D85 # <CJK>
+0x24624 0x7D7A # <CJK>
+0x24625 0x7D8E # <CJK>
+0x24626 0x7D7B # <CJK>
+0x24627 0x7D83 # <CJK>
+0x24628 0x7D7C # <CJK>
+0x24629 0x7D8C # <CJK>
+0x2462A 0x7D94 # <CJK>
+0x2462B 0x7D84 # <CJK>
+0x2462C 0x7D7D # <CJK>
+0x2462D 0x7D92 # <CJK>
+0x2462E 0x7F6D # <CJK>
+0x2462F 0x7F6B # <CJK>
+0x24630 0x7F67 # <CJK>
+0x24631 0x7F68 # <CJK>
+0x24632 0x7F6C # <CJK>
+0x24633 0x7FA6 # <CJK>
+0x24634 0x7FA5 # <CJK>
+0x24635 0x7FA7 # <CJK>
+0x24636 0x7FDB # <CJK>
+0x24637 0x7FDC # <CJK>
+0x24638 0x8021 # <CJK>
+0x24639 0x8164 # <CJK>
+0x2463A 0x8160 # <CJK>
+0x2463B 0x8177 # <CJK>
+0x2463C 0x815C # <CJK>
+0x2463D 0x8169 # <CJK>
+0x2463E 0x815B # <CJK>
+0x2463F 0x8162 # <CJK>
+0x24640 0x8172 # <CJK>
+0x24641 0x6721 # <CJK>
+0x24642 0x815E # <CJK>
+0x24643 0x8176 # <CJK>
+0x24644 0x8167 # <CJK>
+0x24645 0x816F # <CJK>
+0x24646 0x8144 # <CJK>
+0x24647 0x8161 # <CJK>
+0x24648 0x821D # <CJK>
+0x24649 0x8249 # <CJK>
+0x2464A 0x8244 # <CJK>
+0x2464B 0x8240 # <CJK>
+0x2464C 0x8242 # <CJK>
+0x2464D 0x8245 # <CJK>
+0x2464E 0x84F1 # <CJK>
+0x2464F 0x843F # <CJK>
+0x24650 0x8456 # <CJK>
+0x24651 0x8476 # <CJK>
+0x24652 0x8479 # <CJK>
+0x24653 0x848F # <CJK>
+0x24654 0x848D # <CJK>
+0x24655 0x8465 # <CJK>
+0x24656 0x8451 # <CJK>
+0x24657 0x8440 # <CJK>
+0x24658 0x8486 # <CJK>
+0x24659 0x8467 # <CJK>
+0x2465A 0x8430 # <CJK>
+0x2465B 0x844D # <CJK>
+0x2465C 0x847D # <CJK>
+0x2465D 0x845A # <CJK>
+0x2465E 0x8459 # <CJK>
+0x2465F 0x8474 # <CJK>
+0x24660 0x8473 # <CJK>
+0x24661 0x845D # <CJK>
+0x24662 0x8507 # <CJK>
+0x24663 0x845E # <CJK>
+0x24664 0x8437 # <CJK>
+0x24665 0x843A # <CJK>
+0x24666 0x8434 # <CJK>
+0x24667 0x847A # <CJK>
+0x24668 0x8443 # <CJK>
+0x24669 0x8478 # <CJK>
+0x2466A 0x8432 # <CJK>
+0x2466B 0x8445 # <CJK>
+0x2466C 0x8429 # <CJK>
+0x2466D 0x83D9 # <CJK>
+0x2466E 0x844B # <CJK>
+0x2466F 0x842F # <CJK>
+0x24670 0x8442 # <CJK>
+0x24671 0x842D # <CJK>
+0x24672 0x845F # <CJK>
+0x24673 0x8470 # <CJK>
+0x24674 0x8439 # <CJK>
+0x24675 0x844E # <CJK>
+0x24676 0x844C # <CJK>
+0x24677 0x8452 # <CJK>
+0x24678 0x846F # <CJK>
+0x24679 0x84C5 # <CJK>
+0x2467A 0x848E # <CJK>
+0x2467B 0x843B # <CJK>
+0x2467C 0x8447 # <CJK>
+0x2467D 0x8436 # <CJK>
+0x2467E 0x8433 # <CJK>
+0x24721 0x8468 # <CJK>
+0x24722 0x847E # <CJK>
+0x24723 0x8444 # <CJK>
+0x24724 0x842B # <CJK>
+0x24725 0x8460 # <CJK>
+0x24726 0x8454 # <CJK>
+0x24727 0x846E # <CJK>
+0x24728 0x8450 # <CJK>
+0x24729 0x870B # <CJK>
+0x2472A 0x8704 # <CJK>
+0x2472B 0x86F7 # <CJK>
+0x2472C 0x870C # <CJK>
+0x2472D 0x86FA # <CJK>
+0x2472E 0x86D6 # <CJK>
+0x2472F 0x86F5 # <CJK>
+0x24730 0x874D # <CJK>
+0x24731 0x86F8 # <CJK>
+0x24732 0x870E # <CJK>
+0x24733 0x8709 # <CJK>
+0x24734 0x8701 # <CJK>
+0x24735 0x86F6 # <CJK>
+0x24736 0x870D # <CJK>
+0x24737 0x8705 # <CJK>
+0x24738 0x88D6 # <CJK>
+0x24739 0x88CB # <CJK>
+0x2473A 0x88CD # <CJK>
+0x2473B 0x88CE # <CJK>
+0x2473C 0x88DE # <CJK>
+0x2473D 0x88DB # <CJK>
+0x2473E 0x88DA # <CJK>
+0x2473F 0x88CC # <CJK>
+0x24740 0x88D0 # <CJK>
+0x24741 0x8985 # <CJK>
+0x24742 0x899B # <CJK>
+0x24743 0x89DF # <CJK>
+0x24744 0x89E5 # <CJK>
+0x24745 0x89E4 # <CJK>
+0x24746 0x89E1 # <CJK>
+0x24747 0x89E0 # <CJK>
+0x24748 0x89E2 # <CJK>
+0x24749 0x89DC # <CJK>
+0x2474A 0x89E6 # <CJK>
+0x2474B 0x8A76 # <CJK>
+0x2474C 0x8A86 # <CJK>
+0x2474D 0x8A7F # <CJK>
+0x2474E 0x8A61 # <CJK>
+0x2474F 0x8A3F # <CJK>
+0x24750 0x8A77 # <CJK>
+0x24751 0x8A82 # <CJK>
+0x24752 0x8A84 # <CJK>
+0x24753 0x8A75 # <CJK>
+0x24754 0x8A83 # <CJK>
+0x24755 0x8A81 # <CJK>
+0x24756 0x8A74 # <CJK>
+0x24757 0x8A7A # <CJK>
+0x24758 0x8C3C # <CJK>
+0x24759 0x8C4B # <CJK>
+0x2475A 0x8C4A # <CJK>
+0x2475B 0x8C65 # <CJK>
+0x2475C 0x8C64 # <CJK>
+0x2475D 0x8C66 # <CJK>
+0x2475E 0x8C86 # <CJK>
+0x2475F 0x8C84 # <CJK>
+0x24760 0x8C85 # <CJK>
+0x24761 0x8CCC # <CJK>
+0x24762 0x8D68 # <CJK>
+0x24763 0x8D69 # <CJK>
+0x24764 0x8D91 # <CJK>
+0x24765 0x8D8C # <CJK>
+0x24766 0x8D8E # <CJK>
+0x24767 0x8D8F # <CJK>
+0x24768 0x8D8D # <CJK>
+0x24769 0x8D93 # <CJK>
+0x2476A 0x8D94 # <CJK>
+0x2476B 0x8D90 # <CJK>
+0x2476C 0x8D92 # <CJK>
+0x2476D 0x8DF0 # <CJK>
+0x2476E 0x8DE0 # <CJK>
+0x2476F 0x8DEC # <CJK>
+0x24770 0x8DF1 # <CJK>
+0x24771 0x8DEE # <CJK>
+0x24772 0x8DD0 # <CJK>
+0x24773 0x8DE9 # <CJK>
+0x24774 0x8DE3 # <CJK>
+0x24775 0x8DE2 # <CJK>
+0x24776 0x8DE7 # <CJK>
+0x24777 0x8DF2 # <CJK>
+0x24778 0x8DEB # <CJK>
+0x24779 0x8DF4 # <CJK>
+0x2477A 0x8F06 # <CJK>
+0x2477B 0x8EFF # <CJK>
+0x2477C 0x8F01 # <CJK>
+0x2477D 0x8F00 # <CJK>
+0x2477E 0x8F05 # <CJK>
+0x24821 0x8F07 # <CJK>
+0x24822 0x8F08 # <CJK>
+0x24823 0x8F02 # <CJK>
+0x24824 0x8F0B # <CJK>
+0x24825 0x9052 # <CJK>
+0x24826 0x903F # <CJK>
+0x24827 0x9044 # <CJK>
+0x24828 0x9049 # <CJK>
+0x24829 0x903D # <CJK>
+0x2482A 0x9110 # <CJK>
+0x2482B 0x910D # <CJK>
+0x2482C 0x910F # <CJK>
+0x2482D 0x9111 # <CJK>
+0x2482E 0x9116 # <CJK>
+0x2482F 0x9114 # <CJK>
+0x24830 0x910B # <CJK>
+0x24831 0x910E # <CJK>
+0x24832 0x916E # <CJK>
+0x24833 0x916F # <CJK>
+0x24834 0x9248 # <CJK>
+0x24835 0x9252 # <CJK>
+0x24836 0x9230 # <CJK>
+0x24837 0x923A # <CJK>
+0x24838 0x9266 # <CJK>
+0x24839 0x9233 # <CJK>
+0x2483A 0x9265 # <CJK>
+0x2483B 0x925E # <CJK>
+0x2483C 0x9283 # <CJK>
+0x2483D 0x922E # <CJK>
+0x2483E 0x924A # <CJK>
+0x2483F 0x9246 # <CJK>
+0x24840 0x926D # <CJK>
+0x24841 0x926C # <CJK>
+0x24842 0x924F # <CJK>
+0x24843 0x9260 # <CJK>
+0x24844 0x9267 # <CJK>
+0x24845 0x926F # <CJK>
+0x24846 0x9236 # <CJK>
+0x24847 0x9261 # <CJK>
+0x24848 0x9270 # <CJK>
+0x24849 0x9231 # <CJK>
+0x2484A 0x9254 # <CJK>
+0x2484B 0x9263 # <CJK>
+0x2484C 0x9250 # <CJK>
+0x2484D 0x9272 # <CJK>
+0x2484E 0x924E # <CJK>
+0x2484F 0x9253 # <CJK>
+0x24850 0x924C # <CJK>
+0x24851 0x9256 # <CJK>
+0x24852 0x9232 # <CJK>
+0x24853 0x959F # <CJK>
+0x24854 0x959C # <CJK>
+0x24855 0x959E # <CJK>
+0x24856 0x959B # <CJK>
+0x24857 0x9692 # <CJK>
+0x24858 0x9693 # <CJK>
+0x24859 0x9691 # <CJK>
+0x2485A 0x9697 # <CJK>
+0x2485B 0x96CE # <CJK>
+0x2485C 0x96FA # <CJK>
+0x2485D 0x96FD # <CJK>
+0x2485E 0x96F8 # <CJK>
+0x2485F 0x96F5 # <CJK>
+0x24860 0x9773 # <CJK>
+0x24861 0x9777 # <CJK>
+0x24862 0x9778 # <CJK>
+0x24863 0x9772 # <CJK>
+0x24864 0x980F # <CJK>
+0x24865 0x980D # <CJK>
+0x24866 0x980E # <CJK>
+0x24867 0x98AC # <CJK>
+0x24868 0x98F6 # <CJK>
+0x24869 0x98F9 # <CJK>
+0x2486A 0x99AF # <CJK>
+0x2486B 0x99B2 # <CJK>
+0x2486C 0x99B0 # <CJK>
+0x2486D 0x99B5 # <CJK>
+0x2486E 0x9AAD # <CJK>
+0x2486F 0x9AAB # <CJK>
+0x24870 0x9B5B # <CJK>
+0x24871 0x9CEA # <CJK>
+0x24872 0x9CED # <CJK>
+0x24873 0x9CE7 # <CJK>
+0x24874 0x9E80 # <CJK>
+0x24875 0x9EFD # <CJK>
+0x24876 0x50E6 # <CJK>
+0x24877 0x50D4 # <CJK>
+0x24878 0x50D7 # <CJK>
+0x24879 0x50E8 # <CJK>
+0x2487A 0x50F3 # <CJK>
+0x2487B 0x50DB # <CJK>
+0x2487C 0x50EA # <CJK>
+0x2487D 0x50DD # <CJK>
+0x2487E 0x50E4 # <CJK>
+0x24921 0x50D3 # <CJK>
+0x24922 0x50EC # <CJK>
+0x24923 0x50F0 # <CJK>
+0x24924 0x50EF # <CJK>
+0x24925 0x50E3 # <CJK>
+0x24926 0x50E0 # <CJK>
+0x24927 0x51D8 # <CJK>
+0x24928 0x5280 # <CJK>
+0x24929 0x5281 # <CJK>
+0x2492A 0x52E9 # <CJK>
+0x2492B 0x52EB # <CJK>
+0x2492C 0x5330 # <CJK>
+0x2492D 0x53AC # <CJK>
+0x2492E 0x5627 # <CJK>
+0x2492F 0x5615 # <CJK>
+0x24930 0x560C # <CJK>
+0x24931 0x5612 # <CJK>
+0x24932 0x55FC # <CJK>
+0x24933 0x560F # <CJK>
+0x24934 0x561C # <CJK>
+0x24935 0x5601 # <CJK>
+0x24936 0x5613 # <CJK>
+0x24937 0x5602 # <CJK>
+0x24938 0x55FA # <CJK>
+0x24939 0x561D # <CJK>
+0x2493A 0x5604 # <CJK>
+0x2493B 0x55FF # <CJK>
+0x2493C 0x55F9 # <CJK>
+0x2493D 0x5889 # <CJK>
+0x2493E 0x587C # <CJK>
+0x2493F 0x5890 # <CJK>
+0x24940 0x5898 # <CJK>
+0x24941 0x5886 # <CJK>
+0x24942 0x5881 # <CJK>
+0x24943 0x587F # <CJK>
+0x24944 0x5874 # <CJK>
+0x24945 0x588B # <CJK>
+0x24946 0x587A # <CJK>
+0x24947 0x5887 # <CJK>
+0x24948 0x5891 # <CJK>
+0x24949 0x588E # <CJK>
+0x2494A 0x5876 # <CJK>
+0x2494B 0x5882 # <CJK>
+0x2494C 0x5888 # <CJK>
+0x2494D 0x587B # <CJK>
+0x2494E 0x5894 # <CJK>
+0x2494F 0x588F # <CJK>
+0x24950 0x58FE # <CJK>
+0x24951 0x596B # <CJK>
+0x24952 0x5ADC # <CJK>
+0x24953 0x5AEE # <CJK>
+0x24954 0x5AE5 # <CJK>
+0x24955 0x5AD5 # <CJK>
+0x24956 0x5AEA # <CJK>
+0x24957 0x5ADA # <CJK>
+0x24958 0x5AED # <CJK>
+0x24959 0x5AEB # <CJK>
+0x2495A 0x5AF3 # <CJK>
+0x2495B 0x5AE2 # <CJK>
+0x2495C 0x5AE0 # <CJK>
+0x2495D 0x5ADB # <CJK>
+0x2495E 0x5AEC # <CJK>
+0x2495F 0x5ADE # <CJK>
+0x24960 0x5ADD # <CJK>
+0x24961 0x5AD9 # <CJK>
+0x24962 0x5AE8 # <CJK>
+0x24963 0x5ADF # <CJK>
+0x24964 0x5B77 # <CJK>
+0x24965 0x5BE0 # <CJK>
+0x24966 0x5BE3 # <CJK>
+0x24967 0x5C63 # <CJK>
+0x24968 0x5D82 # <CJK>
+0x24969 0x5D80 # <CJK>
+0x2496A 0x5D7D # <CJK>
+0x2496B 0x5D86 # <CJK>
+0x2496C 0x5D7A # <CJK>
+0x2496D 0x5D81 # <CJK>
+0x2496E 0x5D77 # <CJK>
+0x2496F 0x5D8A # <CJK>
+0x24970 0x5D89 # <CJK>
+0x24971 0x5D88 # <CJK>
+0x24972 0x5D7E # <CJK>
+0x24973 0x5D7C # <CJK>
+0x24974 0x5D8D # <CJK>
+0x24975 0x5D79 # <CJK>
+0x24976 0x5D7F # <CJK>
+0x24977 0x5E58 # <CJK>
+0x24978 0x5E59 # <CJK>
+0x24979 0x5E53 # <CJK>
+0x2497A 0x5ED8 # <CJK>
+0x2497B 0x5ED1 # <CJK>
+0x2497C 0x5ED7 # <CJK>
+0x2497D 0x5ECE # <CJK>
+0x2497E 0x5EDC # <CJK>
+0x24A21 0x5ED5 # <CJK>
+0x24A22 0x5ED9 # <CJK>
+0x24A23 0x5ED2 # <CJK>
+0x24A24 0x5ED4 # <CJK>
+0x24A25 0x5F44 # <CJK>
+0x24A26 0x5F43 # <CJK>
+0x24A27 0x5F6F # <CJK>
+0x24A28 0x5FB6 # <CJK>
+0x24A29 0x612C # <CJK>
+0x24A2A 0x6128 # <CJK>
+0x24A2B 0x6141 # <CJK>
+0x24A2C 0x615E # <CJK>
+0x24A2D 0x6171 # <CJK>
+0x24A2E 0x6173 # <CJK>
+0x24A2F 0x6152 # <CJK>
+0x24A30 0x6153 # <CJK>
+0x24A31 0x6172 # <CJK>
+0x24A32 0x616C # <CJK>
+0x24A33 0x6180 # <CJK>
+0x24A34 0x6174 # <CJK>
+0x24A35 0x6154 # <CJK>
+0x24A36 0x617A # <CJK>
+0x24A37 0x615B # <CJK>
+0x24A38 0x6165 # <CJK>
+0x24A39 0x613B # <CJK>
+0x24A3A 0x616A # <CJK>
+0x24A3B 0x6161 # <CJK>
+0x24A3C 0x6156 # <CJK>
+0x24A3D 0x6229 # <CJK>
+0x24A3E 0x6227 # <CJK>
+0x24A3F 0x622B # <CJK>
+0x24A40 0x642B # <CJK>
+0x24A41 0x644D # <CJK>
+0x24A42 0x645B # <CJK>
+0x24A43 0x645D # <CJK>
+0x24A44 0x6474 # <CJK>
+0x24A45 0x6476 # <CJK>
+0x24A46 0x6472 # <CJK>
+0x24A47 0x6473 # <CJK>
+0x24A48 0x647D # <CJK>
+0x24A49 0x6475 # <CJK>
+0x24A4A 0x6466 # <CJK>
+0x24A4B 0x64A6 # <CJK>
+0x24A4C 0x644E # <CJK>
+0x24A4D 0x6482 # <CJK>
+0x24A4E 0x645E # <CJK>
+0x24A4F 0x645C # <CJK>
+0x24A50 0x644B # <CJK>
+0x24A51 0x6453 # <CJK>
+0x24A52 0x6460 # <CJK>
+0x24A53 0x6450 # <CJK>
+0x24A54 0x647F # <CJK>
+0x24A55 0x643F # <CJK>
+0x24A56 0x646C # <CJK>
+0x24A57 0x646B # <CJK>
+0x24A58 0x6459 # <CJK>
+0x24A59 0x6465 # <CJK>
+0x24A5A 0x6477 # <CJK>
+0x24A5B 0x6573 # <CJK>
+0x24A5C 0x65A0 # <CJK>
+0x24A5D 0x66A1 # <CJK>
+0x24A5E 0x66A0 # <CJK>
+0x24A5F 0x669F # <CJK>
+0x24A60 0x6705 # <CJK>
+0x24A61 0x6704 # <CJK>
+0x24A62 0x6722 # <CJK>
+0x24A63 0x69B1 # <CJK>
+0x24A64 0x69B6 # <CJK>
+0x24A65 0x69C9 # <CJK>
+0x24A66 0x69A0 # <CJK>
+0x24A67 0x69CE # <CJK>
+0x24A68 0x6996 # <CJK>
+0x24A69 0x69B0 # <CJK>
+0x24A6A 0x69AC # <CJK>
+0x24A6B 0x69BC # <CJK>
+0x24A6C 0x6991 # <CJK>
+0x24A6D 0x6999 # <CJK>
+0x24A6E 0x698E # <CJK>
+0x24A6F 0x69A7 # <CJK>
+0x24A70 0x698D # <CJK>
+0x24A71 0x69A9 # <CJK>
+0x24A72 0x69BE # <CJK>
+0x24A73 0x69AF # <CJK>
+0x24A74 0x69BF # <CJK>
+0x24A75 0x69C4 # <CJK>
+0x24A76 0x69BD # <CJK>
+0x24A77 0x69A4 # <CJK>
+0x24A78 0x69D4 # <CJK>
+0x24A79 0x69B9 # <CJK>
+0x24A7A 0x69CA # <CJK>
+0x24A7B 0x699A # <CJK>
+0x24A7C 0x69CF # <CJK>
+0x24A7D 0x69B3 # <CJK>
+0x24A7E 0x6993 # <CJK>
+0x24B21 0x69AA # <CJK>
+0x24B22 0x69A1 # <CJK>
+0x24B23 0x699E # <CJK>
+0x24B24 0x69D9 # <CJK>
+0x24B25 0x6997 # <CJK>
+0x24B26 0x6990 # <CJK>
+0x24B27 0x69C2 # <CJK>
+0x24B28 0x69B5 # <CJK>
+0x24B29 0x69A5 # <CJK>
+0x24B2A 0x69C6 # <CJK>
+0x24B2B 0x6B4A # <CJK>
+0x24B2C 0x6B4D # <CJK>
+0x24B2D 0x6B4B # <CJK>
+0x24B2E 0x6B9E # <CJK>
+0x24B2F 0x6B9F # <CJK>
+0x24B30 0x6BA0 # <CJK>
+0x24B31 0x6BC3 # <CJK>
+0x24B32 0x6BC4 # <CJK>
+0x24B33 0x6BFE # <CJK>
+0x24B34 0x6ECE # <CJK>
+0x24B35 0x6EF5 # <CJK>
+0x24B36 0x6EF1 # <CJK>
+0x24B37 0x6F03 # <CJK>
+0x24B38 0x6F25 # <CJK>
+0x24B39 0x6EF8 # <CJK>
+0x24B3A 0x6F37 # <CJK>
+0x24B3B 0x6EFB # <CJK>
+0x24B3C 0x6F2E # <CJK>
+0x24B3D 0x6F09 # <CJK>
+0x24B3E 0x6F4E # <CJK>
+0x24B3F 0x6F19 # <CJK>
+0x24B40 0x6F1A # <CJK>
+0x24B41 0x6F27 # <CJK>
+0x24B42 0x6F18 # <CJK>
+0x24B43 0x6F3B # <CJK>
+0x24B44 0x6F12 # <CJK>
+0x24B45 0x6EED # <CJK>
+0x24B46 0x6F0A # <CJK>
+0x24B47 0x6F36 # <CJK>
+0x24B48 0x6F73 # <CJK>
+0x24B49 0x6EF9 # <CJK>
+0x24B4A 0x6EEE # <CJK>
+0x24B4B 0x6F2D # <CJK>
+0x24B4C 0x6F40 # <CJK>
+0x24B4D 0x6F30 # <CJK>
+0x24B4E 0x6F3C # <CJK>
+0x24B4F 0x6F35 # <CJK>
+0x24B50 0x6EEB # <CJK>
+0x24B51 0x6F07 # <CJK>
+0x24B52 0x6F0E # <CJK>
+0x24B53 0x6F43 # <CJK>
+0x24B54 0x6F05 # <CJK>
+0x24B55 0x6EFD # <CJK>
+0x24B56 0x6EF6 # <CJK>
+0x24B57 0x6F39 # <CJK>
+0x24B58 0x6F1C # <CJK>
+0x24B59 0x6EFC # <CJK>
+0x24B5A 0x6F3A # <CJK>
+0x24B5B 0x6F1F # <CJK>
+0x24B5C 0x6F0D # <CJK>
+0x24B5D 0x6F1E # <CJK>
+0x24B5E 0x6F08 # <CJK>
+0x24B5F 0x6F21 # <CJK>
+0x24B60 0x7187 # <CJK>
+0x24B61 0x7190 # <CJK>
+0x24B62 0x7189 # <CJK>
+0x24B63 0x7180 # <CJK>
+0x24B64 0x7185 # <CJK>
+0x24B65 0x7182 # <CJK>
+0x24B66 0x718F # <CJK>
+0x24B67 0x717B # <CJK>
+0x24B68 0x7186 # <CJK>
+0x24B69 0x7181 # <CJK>
+0x24B6A 0x7197 # <CJK>
+0x24B6B 0x7244 # <CJK>
+0x24B6C 0x7253 # <CJK>
+0x24B6D 0x7297 # <CJK>
+0x24B6E 0x7295 # <CJK>
+0x24B6F 0x7293 # <CJK>
+0x24B70 0x7343 # <CJK>
+0x24B71 0x734D # <CJK>
+0x24B72 0x7351 # <CJK>
+0x24B73 0x734C # <CJK>
+0x24B74 0x7462 # <CJK>
+0x24B75 0x7473 # <CJK>
+0x24B76 0x7471 # <CJK>
+0x24B77 0x7475 # <CJK>
+0x24B78 0x7472 # <CJK>
+0x24B79 0x7467 # <CJK>
+0x24B7A 0x746E # <CJK>
+0x24B7B 0x7500 # <CJK>
+0x24B7C 0x7502 # <CJK>
+0x24B7D 0x7503 # <CJK>
+0x24B7E 0x757D # <CJK>
+0x24C21 0x7590 # <CJK>
+0x24C22 0x7616 # <CJK>
+0x24C23 0x7608 # <CJK>
+0x24C24 0x760C # <CJK>
+0x24C25 0x7615 # <CJK>
+0x24C26 0x7611 # <CJK>
+0x24C27 0x760A # <CJK>
+0x24C28 0x7614 # <CJK>
+0x24C29 0x76B8 # <CJK>
+0x24C2A 0x7781 # <CJK>
+0x24C2B 0x777C # <CJK>
+0x24C2C 0x7785 # <CJK>
+0x24C2D 0x7782 # <CJK>
+0x24C2E 0x776E # <CJK>
+0x24C2F 0x7780 # <CJK>
+0x24C30 0x776F # <CJK>
+0x24C31 0x777E # <CJK>
+0x24C32 0x7783 # <CJK>
+0x24C33 0x78B2 # <CJK>
+0x24C34 0x78AA # <CJK>
+0x24C35 0x78B4 # <CJK>
+0x24C36 0x78AD # <CJK>
+0x24C37 0x78A8 # <CJK>
+0x24C38 0x787E # <CJK>
+0x24C39 0x78AB # <CJK>
+0x24C3A 0x789E # <CJK>
+0x24C3B 0x78A5 # <CJK>
+0x24C3C 0x78A0 # <CJK>
+0x24C3D 0x78AC # <CJK>
+0x24C3E 0x78A2 # <CJK>
+0x24C3F 0x78A4 # <CJK>
+0x24C40 0x7998 # <CJK>
+0x24C41 0x798A # <CJK>
+0x24C42 0x798B # <CJK>
+0x24C43 0x7996 # <CJK>
+0x24C44 0x7995 # <CJK>
+0x24C45 0x7994 # <CJK>
+0x24C46 0x7993 # <CJK>
+0x24C47 0x7997 # <CJK>
+0x24C48 0x7988 # <CJK>
+0x24C49 0x7992 # <CJK>
+0x24C4A 0x7990 # <CJK>
+0x24C4B 0x7A2B # <CJK>
+0x24C4C 0x7A4A # <CJK>
+0x24C4D 0x7A30 # <CJK>
+0x24C4E 0x7A2F # <CJK>
+0x24C4F 0x7A28 # <CJK>
+0x24C50 0x7A26 # <CJK>
+0x24C51 0x7AA8 # <CJK>
+0x24C52 0x7AAB # <CJK>
+0x24C53 0x7AAC # <CJK>
+0x24C54 0x7AEE # <CJK>
+0x24C55 0x7B88 # <CJK>
+0x24C56 0x7B9C # <CJK>
+0x24C57 0x7B8A # <CJK>
+0x24C58 0x7B91 # <CJK>
+0x24C59 0x7B90 # <CJK>
+0x24C5A 0x7B96 # <CJK>
+0x24C5B 0x7B8D # <CJK>
+0x24C5C 0x7B8C # <CJK>
+0x24C5D 0x7B9B # <CJK>
+0x24C5E 0x7B8E # <CJK>
+0x24C5F 0x7B85 # <CJK>
+0x24C60 0x7B98 # <CJK>
+0x24C61 0x5284 # <CJK>
+0x24C62 0x7B99 # <CJK>
+0x24C63 0x7BA4 # <CJK>
+0x24C64 0x7B82 # <CJK>
+0x24C65 0x7CBB # <CJK>
+0x24C66 0x7CBF # <CJK>
+0x24C67 0x7CBC # <CJK>
+0x24C68 0x7CBA # <CJK>
+0x24C69 0x7DA7 # <CJK>
+0x24C6A 0x7DB7 # <CJK>
+0x24C6B 0x7DC2 # <CJK>
+0x24C6C 0x7DA3 # <CJK>
+0x24C6D 0x7DAA # <CJK>
+0x24C6E 0x7DC1 # <CJK>
+0x24C6F 0x7DC0 # <CJK>
+0x24C70 0x7DC5 # <CJK>
+0x24C71 0x7D9D # <CJK>
+0x24C72 0x7DCE # <CJK>
+0x24C73 0x7DC4 # <CJK>
+0x24C74 0x7DC6 # <CJK>
+0x24C75 0x7DCB # <CJK>
+0x24C76 0x7DCC # <CJK>
+0x24C77 0x7DAF # <CJK>
+0x24C78 0x7DB9 # <CJK>
+0x24C79 0x7D96 # <CJK>
+0x24C7A 0x7DBC # <CJK>
+0x24C7B 0x7D9F # <CJK>
+0x24C7C 0x7DA6 # <CJK>
+0x24C7D 0x7DAE # <CJK>
+0x24C7E 0x7DA9 # <CJK>
+0x24D21 0x7DA1 # <CJK>
+0x24D22 0x7DC9 # <CJK>
+0x24D23 0x7F73 # <CJK>
+0x24D24 0x7FE2 # <CJK>
+0x24D25 0x7FE3 # <CJK>
+0x24D26 0x7FE5 # <CJK>
+0x24D27 0x7FDE # <CJK>
+0x24D28 0x8024 # <CJK>
+0x24D29 0x805D # <CJK>
+0x24D2A 0x805C # <CJK>
+0x24D2B 0x8189 # <CJK>
+0x24D2C 0x8186 # <CJK>
+0x24D2D 0x8183 # <CJK>
+0x24D2E 0x8187 # <CJK>
+0x24D2F 0x818D # <CJK>
+0x24D30 0x818C # <CJK>
+0x24D31 0x818B # <CJK>
+0x24D32 0x8215 # <CJK>
+0x24D33 0x8497 # <CJK>
+0x24D34 0x84A4 # <CJK>
+0x24D35 0x84A1 # <CJK>
+0x24D36 0x849F # <CJK>
+0x24D37 0x84BA # <CJK>
+0x24D38 0x84CE # <CJK>
+0x24D39 0x84C2 # <CJK>
+0x24D3A 0x84AC # <CJK>
+0x24D3B 0x84AE # <CJK>
+0x24D3C 0x84AB # <CJK>
+0x24D3D 0x84B9 # <CJK>
+0x24D3E 0x84B4 # <CJK>
+0x24D3F 0x84C1 # <CJK>
+0x24D40 0x84CD # <CJK>
+0x24D41 0x84AA # <CJK>
+0x24D42 0x849A # <CJK>
+0x24D43 0x84B1 # <CJK>
+0x24D44 0x84D0 # <CJK>
+0x24D45 0x849D # <CJK>
+0x24D46 0x84A7 # <CJK>
+0x24D47 0x84BB # <CJK>
+0x24D48 0x84A2 # <CJK>
+0x24D49 0x8494 # <CJK>
+0x24D4A 0x84C7 # <CJK>
+0x24D4B 0x84CC # <CJK>
+0x24D4C 0x849B # <CJK>
+0x24D4D 0x84A9 # <CJK>
+0x24D4E 0x84AF # <CJK>
+0x24D4F 0x84A8 # <CJK>
+0x24D50 0x84D6 # <CJK>
+0x24D51 0x8498 # <CJK>
+0x24D52 0x84B6 # <CJK>
+0x24D53 0x84CF # <CJK>
+0x24D54 0x84A0 # <CJK>
+0x24D55 0x84D7 # <CJK>
+0x24D56 0x84D4 # <CJK>
+0x24D57 0x84D2 # <CJK>
+0x24D58 0x84DB # <CJK>
+0x24D59 0x84B0 # <CJK>
+0x24D5A 0x8491 # <CJK>
+0x24D5B 0x8661 # <CJK>
+0x24D5C 0x8733 # <CJK>
+0x24D5D 0x8723 # <CJK>
+0x24D5E 0x8728 # <CJK>
+0x24D5F 0x876B # <CJK>
+0x24D60 0x8740 # <CJK>
+0x24D61 0x872E # <CJK>
+0x24D62 0x871E # <CJK>
+0x24D63 0x8721 # <CJK>
+0x24D64 0x8719 # <CJK>
+0x24D65 0x871B # <CJK>
+0x24D66 0x8743 # <CJK>
+0x24D67 0x872C # <CJK>
+0x24D68 0x8741 # <CJK>
+0x24D69 0x873E # <CJK>
+0x24D6A 0x8746 # <CJK>
+0x24D6B 0x8720 # <CJK>
+0x24D6C 0x8732 # <CJK>
+0x24D6D 0x872A # <CJK>
+0x24D6E 0x872D # <CJK>
+0x24D6F 0x873C # <CJK>
+0x24D70 0x8712 # <CJK>
+0x24D71 0x873A # <CJK>
+0x24D72 0x8731 # <CJK>
+0x24D73 0x8735 # <CJK>
+0x24D74 0x8742 # <CJK>
+0x24D75 0x8726 # <CJK>
+0x24D76 0x8727 # <CJK>
+0x24D77 0x8738 # <CJK>
+0x24D78 0x8724 # <CJK>
+0x24D79 0x871A # <CJK>
+0x24D7A 0x8730 # <CJK>
+0x24D7B 0x8711 # <CJK>
+0x24D7C 0x88F7 # <CJK>
+0x24D7D 0x88E7 # <CJK>
+0x24D7E 0x88F1 # <CJK>
+0x24E21 0x88F2 # <CJK>
+0x24E22 0x88FA # <CJK>
+0x24E23 0x88FE # <CJK>
+0x24E24 0x88EE # <CJK>
+0x24E25 0x88FC # <CJK>
+0x24E26 0x88F6 # <CJK>
+0x24E27 0x88FB # <CJK>
+0x24E28 0x88F0 # <CJK>
+0x24E29 0x88EC # <CJK>
+0x24E2A 0x88EB # <CJK>
+0x24E2B 0x899D # <CJK>
+0x24E2C 0x89A1 # <CJK>
+0x24E2D 0x899F # <CJK>
+0x24E2E 0x899E # <CJK>
+0x24E2F 0x89E9 # <CJK>
+0x24E30 0x89EB # <CJK>
+0x24E31 0x89E8 # <CJK>
+0x24E32 0x8AAB # <CJK>
+0x24E33 0x8A99 # <CJK>
+0x24E34 0x8A8B # <CJK>
+0x24E35 0x8A92 # <CJK>
+0x24E36 0x8A8F # <CJK>
+0x24E37 0x8A96 # <CJK>
+0x24E38 0x8C3D # <CJK>
+0x24E39 0x8C68 # <CJK>
+0x24E3A 0x8C69 # <CJK>
+0x24E3B 0x8CD5 # <CJK>
+0x24E3C 0x8CCF # <CJK>
+0x24E3D 0x8CD7 # <CJK>
+0x24E3E 0x8D96 # <CJK>
+0x24E3F 0x8E09 # <CJK>
+0x24E40 0x8E02 # <CJK>
+0x24E41 0x8DFF # <CJK>
+0x24E42 0x8E0D # <CJK>
+0x24E43 0x8DFD # <CJK>
+0x24E44 0x8E0A # <CJK>
+0x24E45 0x8E03 # <CJK>
+0x24E46 0x8E07 # <CJK>
+0x24E47 0x8E06 # <CJK>
+0x24E48 0x8E05 # <CJK>
+0x24E49 0x8DFE # <CJK>
+0x24E4A 0x8E00 # <CJK>
+0x24E4B 0x8E04 # <CJK>
+0x24E4C 0x8F10 # <CJK>
+0x24E4D 0x8F11 # <CJK>
+0x24E4E 0x8F0E # <CJK>
+0x24E4F 0x8F0D # <CJK>
+0x24E50 0x9123 # <CJK>
+0x24E51 0x911C # <CJK>
+0x24E52 0x9120 # <CJK>
+0x24E53 0x9122 # <CJK>
+0x24E54 0x911F # <CJK>
+0x24E55 0x911D # <CJK>
+0x24E56 0x911A # <CJK>
+0x24E57 0x9124 # <CJK>
+0x24E58 0x9121 # <CJK>
+0x24E59 0x911B # <CJK>
+0x24E5A 0x917A # <CJK>
+0x24E5B 0x9172 # <CJK>
+0x24E5C 0x9179 # <CJK>
+0x24E5D 0x9173 # <CJK>
+0x24E5E 0x92A5 # <CJK>
+0x24E5F 0x92A4 # <CJK>
+0x24E60 0x9276 # <CJK>
+0x24E61 0x929B # <CJK>
+0x24E62 0x927A # <CJK>
+0x24E63 0x92A0 # <CJK>
+0x24E64 0x9294 # <CJK>
+0x24E65 0x92AA # <CJK>
+0x24E66 0x928D # <CJK>
+0x24E67 0x92A6 # <CJK>
+0x24E68 0x929A # <CJK>
+0x24E69 0x92AB # <CJK>
+0x24E6A 0x9279 # <CJK>
+0x24E6B 0x9297 # <CJK>
+0x24E6C 0x927F # <CJK>
+0x24E6D 0x92A3 # <CJK>
+0x24E6E 0x92EE # <CJK>
+0x24E6F 0x928E # <CJK>
+0x24E70 0x9282 # <CJK>
+0x24E71 0x9295 # <CJK>
+0x24E72 0x92A2 # <CJK>
+0x24E73 0x927D # <CJK>
+0x24E74 0x9288 # <CJK>
+0x24E75 0x92A1 # <CJK>
+0x24E76 0x928A # <CJK>
+0x24E77 0x9286 # <CJK>
+0x24E78 0x928C # <CJK>
+0x24E79 0x9299 # <CJK>
+0x24E7A 0x92A7 # <CJK>
+0x24E7B 0x927E # <CJK>
+0x24E7C 0x9287 # <CJK>
+0x24E7D 0x92A9 # <CJK>
+0x24E7E 0x929D # <CJK>
+0x24F21 0x928B # <CJK>
+0x24F22 0x922D # <CJK>
+0x24F23 0x969E # <CJK>
+0x24F24 0x96A1 # <CJK>
+0x24F25 0x96FF # <CJK>
+0x24F26 0x9758 # <CJK>
+0x24F27 0x977D # <CJK>
+0x24F28 0x977A # <CJK>
+0x24F29 0x977E # <CJK>
+0x24F2A 0x9783 # <CJK>
+0x24F2B 0x9780 # <CJK>
+0x24F2C 0x9782 # <CJK>
+0x24F2D 0x977B # <CJK>
+0x24F2E 0x9784 # <CJK>
+0x24F2F 0x9781 # <CJK>
+0x24F30 0x977F # <CJK>
+0x24F31 0x97CE # <CJK>
+0x24F32 0x97CD # <CJK>
+0x24F33 0x9816 # <CJK>
+0x24F34 0x98AD # <CJK>
+0x24F35 0x98AE # <CJK>
+0x24F36 0x9902 # <CJK>
+0x24F37 0x9900 # <CJK>
+0x24F38 0x9907 # <CJK>
+0x24F39 0x999D # <CJK>
+0x24F3A 0x999C # <CJK>
+0x24F3B 0x99C3 # <CJK>
+0x24F3C 0x99B9 # <CJK>
+0x24F3D 0x99BB # <CJK>
+0x24F3E 0x99BA # <CJK>
+0x24F3F 0x99C2 # <CJK>
+0x24F40 0x99BD # <CJK>
+0x24F41 0x99C7 # <CJK>
+0x24F42 0x9AB1 # <CJK>
+0x24F43 0x9AE3 # <CJK>
+0x24F44 0x9AE7 # <CJK>
+0x24F45 0x9B3E # <CJK>
+0x24F46 0x9B3F # <CJK>
+0x24F47 0x9B60 # <CJK>
+0x24F48 0x9B61 # <CJK>
+0x24F49 0x9B5F # <CJK>
+0x24F4A 0x9CF1 # <CJK>
+0x24F4B 0x9CF2 # <CJK>
+0x24F4C 0x9CF5 # <CJK>
+0x24F4D 0x9EA7 # <CJK>
+0x24F4E 0x50FF # <CJK>
+0x24F4F 0x5103 # <CJK>
+0x24F50 0x5130 # <CJK>
+0x24F51 0x50F8 # <CJK>
+0x24F52 0x5106 # <CJK>
+0x24F53 0x5107 # <CJK>
+0x24F54 0x50F6 # <CJK>
+0x24F55 0x50FE # <CJK>
+0x24F56 0x510B # <CJK>
+0x24F57 0x510C # <CJK>
+0x24F58 0x50FD # <CJK>
+0x24F59 0x510A # <CJK>
+0x24F5A 0x528B # <CJK>
+0x24F5B 0x528C # <CJK>
+0x24F5C 0x52F1 # <CJK>
+0x24F5D 0x52EF # <CJK>
+0x24F5E 0x5648 # <CJK>
+0x24F5F 0x5642 # <CJK>
+0x24F60 0x564C # <CJK>
+0x24F61 0x5635 # <CJK>
+0x24F62 0x5641 # <CJK>
+0x24F63 0x564A # <CJK>
+0x24F64 0x5649 # <CJK>
+0x24F65 0x5646 # <CJK>
+0x24F66 0x5658 # <CJK>
+0x24F67 0x565A # <CJK>
+0x24F68 0x5640 # <CJK>
+0x24F69 0x5633 # <CJK>
+0x24F6A 0x563D # <CJK>
+0x24F6B 0x562C # <CJK>
+0x24F6C 0x563E # <CJK>
+0x24F6D 0x5638 # <CJK>
+0x24F6E 0x562A # <CJK>
+0x24F6F 0x563A # <CJK>
+0x24F70 0x571A # <CJK>
+0x24F71 0x58AB # <CJK>
+0x24F72 0x589D # <CJK>
+0x24F73 0x58B1 # <CJK>
+0x24F74 0x58A0 # <CJK>
+0x24F75 0x58A3 # <CJK>
+0x24F76 0x58AF # <CJK>
+0x24F77 0x58AC # <CJK>
+0x24F78 0x58A5 # <CJK>
+0x24F79 0x58A1 # <CJK>
+0x24F7A 0x58FF # <CJK>
+0x24F7B 0x5AFF # <CJK>
+0x24F7C 0x5AF4 # <CJK>
+0x24F7D 0x5AFD # <CJK>
+0x24F7E 0x5AF7 # <CJK>
+0x25021 0x5AF6 # <CJK>
+0x25022 0x5B03 # <CJK>
+0x25023 0x5AF8 # <CJK>
+0x25024 0x5B02 # <CJK>
+0x25025 0x5AF9 # <CJK>
+0x25026 0x5B01 # <CJK>
+0x25027 0x5B07 # <CJK>
+0x25028 0x5B05 # <CJK>
+0x25029 0x5B0F # <CJK>
+0x2502A 0x5C67 # <CJK>
+0x2502B 0x5D99 # <CJK>
+0x2502C 0x5D97 # <CJK>
+0x2502D 0x5D9F # <CJK>
+0x2502E 0x5D92 # <CJK>
+0x2502F 0x5DA2 # <CJK>
+0x25030 0x5D93 # <CJK>
+0x25031 0x5D95 # <CJK>
+0x25032 0x5DA0 # <CJK>
+0x25033 0x5D9C # <CJK>
+0x25034 0x5DA1 # <CJK>
+0x25035 0x5D9A # <CJK>
+0x25036 0x5D9E # <CJK>
+0x25037 0x5E69 # <CJK>
+0x25038 0x5E5D # <CJK>
+0x25039 0x5E60 # <CJK>
+0x2503A 0x5E5C # <CJK>
+0x2503B 0x7DF3 # <CJK>
+0x2503C 0x5EDB # <CJK>
+0x2503D 0x5EDE # <CJK>
+0x2503E 0x5EE1 # <CJK>
+0x2503F 0x5F49 # <CJK>
+0x25040 0x5FB2 # <CJK>
+0x25041 0x618B # <CJK>
+0x25042 0x6183 # <CJK>
+0x25043 0x6179 # <CJK>
+0x25044 0x61B1 # <CJK>
+0x25045 0x61B0 # <CJK>
+0x25046 0x61A2 # <CJK>
+0x25047 0x6189 # <CJK>
+0x25048 0x619B # <CJK>
+0x25049 0x6193 # <CJK>
+0x2504A 0x61AF # <CJK>
+0x2504B 0x61AD # <CJK>
+0x2504C 0x619F # <CJK>
+0x2504D 0x6192 # <CJK>
+0x2504E 0x61AA # <CJK>
+0x2504F 0x61A1 # <CJK>
+0x25050 0x618D # <CJK>
+0x25051 0x6166 # <CJK>
+0x25052 0x61B3 # <CJK>
+0x25053 0x622D # <CJK>
+0x25054 0x646E # <CJK>
+0x25055 0x6470 # <CJK>
+0x25056 0x6496 # <CJK>
+0x25057 0x64A0 # <CJK>
+0x25058 0x6485 # <CJK>
+0x25059 0x6497 # <CJK>
+0x2505A 0x649C # <CJK>
+0x2505B 0x648F # <CJK>
+0x2505C 0x648B # <CJK>
+0x2505D 0x648A # <CJK>
+0x2505E 0x648C # <CJK>
+0x2505F 0x64A3 # <CJK>
+0x25060 0x649F # <CJK>
+0x25061 0x6468 # <CJK>
+0x25062 0x64B1 # <CJK>
+0x25063 0x6498 # <CJK>
+0x25064 0x6576 # <CJK>
+0x25065 0x657A # <CJK>
+0x25066 0x6579 # <CJK>
+0x25067 0x657B # <CJK>
+0x25068 0x65B2 # <CJK>
+0x25069 0x65B3 # <CJK>
+0x2506A 0x66B5 # <CJK>
+0x2506B 0x66B0 # <CJK>
+0x2506C 0x66A9 # <CJK>
+0x2506D 0x66B2 # <CJK>
+0x2506E 0x66B7 # <CJK>
+0x2506F 0x66AA # <CJK>
+0x25070 0x66AF # <CJK>
+0x25071 0x6A00 # <CJK>
+0x25072 0x6A06 # <CJK>
+0x25073 0x6A17 # <CJK>
+0x25074 0x69E5 # <CJK>
+0x25075 0x69F8 # <CJK>
+0x25076 0x6A15 # <CJK>
+0x25077 0x69F1 # <CJK>
+0x25078 0x69E4 # <CJK>
+0x25079 0x6A20 # <CJK>
+0x2507A 0x69FF # <CJK>
+0x2507B 0x69EC # <CJK>
+0x2507C 0x69E2 # <CJK>
+0x2507D 0x6A1B # <CJK>
+0x2507E 0x6A1D # <CJK>
+0x25121 0x69FE # <CJK>
+0x25122 0x6A27 # <CJK>
+0x25123 0x69F2 # <CJK>
+0x25124 0x69EE # <CJK>
+0x25125 0x6A14 # <CJK>
+0x25126 0x69F7 # <CJK>
+0x25127 0x69E7 # <CJK>
+0x25128 0x6A40 # <CJK>
+0x25129 0x6A08 # <CJK>
+0x2512A 0x69E6 # <CJK>
+0x2512B 0x69FB # <CJK>
+0x2512C 0x6A0D # <CJK>
+0x2512D 0x69FC # <CJK>
+0x2512E 0x69EB # <CJK>
+0x2512F 0x6A09 # <CJK>
+0x25130 0x6A04 # <CJK>
+0x25131 0x6A18 # <CJK>
+0x25132 0x6A25 # <CJK>
+0x25133 0x6A0F # <CJK>
+0x25134 0x69F6 # <CJK>
+0x25135 0x6A26 # <CJK>
+0x25136 0x6A07 # <CJK>
+0x25137 0x69F4 # <CJK>
+0x25138 0x6A16 # <CJK>
+0x25139 0x6B51 # <CJK>
+0x2513A 0x6BA5 # <CJK>
+0x2513B 0x6BA3 # <CJK>
+0x2513C 0x6BA2 # <CJK>
+0x2513D 0x6BA6 # <CJK>
+0x2513E 0x6C01 # <CJK>
+0x2513F 0x6C00 # <CJK>
+0x25140 0x6BFF # <CJK>
+0x25141 0x6C02 # <CJK>
+0x25142 0x6F41 # <CJK>
+0x25143 0x6F26 # <CJK>
+0x25144 0x6F7E # <CJK>
+0x25145 0x6F87 # <CJK>
+0x25146 0x6FC6 # <CJK>
+0x25147 0x6F92 # <CJK>
+0x25148 0x6F8D # <CJK>
+0x25149 0x6F89 # <CJK>
+0x2514A 0x6F8C # <CJK>
+0x2514B 0x6F62 # <CJK>
+0x2514C 0x6F4F # <CJK>
+0x2514D 0x6F85 # <CJK>
+0x2514E 0x6F5A # <CJK>
+0x2514F 0x6F96 # <CJK>
+0x25150 0x6F76 # <CJK>
+0x25151 0x6F6C # <CJK>
+0x25152 0x6F82 # <CJK>
+0x25153 0x6F55 # <CJK>
+0x25154 0x6F72 # <CJK>
+0x25155 0x6F52 # <CJK>
+0x25156 0x6F50 # <CJK>
+0x25157 0x6F57 # <CJK>
+0x25158 0x6F94 # <CJK>
+0x25159 0x6F93 # <CJK>
+0x2515A 0x6F5D # <CJK>
+0x2515B 0x6F00 # <CJK>
+0x2515C 0x6F61 # <CJK>
+0x2515D 0x6F6B # <CJK>
+0x2515E 0x6F7D # <CJK>
+0x2515F 0x6F67 # <CJK>
+0x25160 0x6F90 # <CJK>
+0x25161 0x6F53 # <CJK>
+0x25162 0x6F8B # <CJK>
+0x25163 0x6F69 # <CJK>
+0x25164 0x6F7F # <CJK>
+0x25165 0x6F95 # <CJK>
+0x25166 0x6F63 # <CJK>
+0x25167 0x6F77 # <CJK>
+0x25168 0x6F6A # <CJK>
+0x25169 0x6F7B # <CJK>
+0x2516A 0x71B2 # <CJK>
+0x2516B 0x71AF # <CJK>
+0x2516C 0x719B # <CJK>
+0x2516D 0x71B0 # <CJK>
+0x2516E 0x71A0 # <CJK>
+0x2516F 0x719A # <CJK>
+0x25170 0x71A9 # <CJK>
+0x25171 0x71B5 # <CJK>
+0x25172 0x719D # <CJK>
+0x25173 0x71A5 # <CJK>
+0x25174 0x719E # <CJK>
+0x25175 0x71A4 # <CJK>
+0x25176 0x71A1 # <CJK>
+0x25177 0x71AA # <CJK>
+0x25178 0x719C # <CJK>
+0x25179 0x71A7 # <CJK>
+0x2517A 0x71B3 # <CJK>
+0x2517B 0x7298 # <CJK>
+0x2517C 0x729A # <CJK>
+0x2517D 0x7358 # <CJK>
+0x2517E 0x7352 # <CJK>
+0x25221 0x735E # <CJK>
+0x25222 0x735F # <CJK>
+0x25223 0x7360 # <CJK>
+0x25224 0x735D # <CJK>
+0x25225 0x735B # <CJK>
+0x25226 0x7361 # <CJK>
+0x25227 0x735A # <CJK>
+0x25228 0x7359 # <CJK>
+0x25229 0x7362 # <CJK>
+0x2522A 0x7487 # <CJK>
+0x2522B 0x7489 # <CJK>
+0x2522C 0x748A # <CJK>
+0x2522D 0x7486 # <CJK>
+0x2522E 0x7481 # <CJK>
+0x2522F 0x747D # <CJK>
+0x25230 0x7485 # <CJK>
+0x25231 0x7488 # <CJK>
+0x25232 0x747C # <CJK>
+0x25233 0x7479 # <CJK>
+0x25234 0x7508 # <CJK>
+0x25235 0x7507 # <CJK>
+0x25236 0x757E # <CJK>
+0x25237 0x7625 # <CJK>
+0x25238 0x761E # <CJK>
+0x25239 0x7619 # <CJK>
+0x2523A 0x761D # <CJK>
+0x2523B 0x761C # <CJK>
+0x2523C 0x7623 # <CJK>
+0x2523D 0x761A # <CJK>
+0x2523E 0x7628 # <CJK>
+0x2523F 0x761B # <CJK>
+0x25240 0x769C # <CJK>
+0x25241 0x769D # <CJK>
+0x25242 0x769E # <CJK>
+0x25243 0x769B # <CJK>
+0x25244 0x778D # <CJK>
+0x25245 0x778F # <CJK>
+0x25246 0x7789 # <CJK>
+0x25247 0x7788 # <CJK>
+0x25248 0x78CD # <CJK>
+0x25249 0x78BB # <CJK>
+0x2524A 0x78CF # <CJK>
+0x2524B 0x78CC # <CJK>
+0x2524C 0x78D1 # <CJK>
+0x2524D 0x78CE # <CJK>
+0x2524E 0x78D4 # <CJK>
+0x2524F 0x78C8 # <CJK>
+0x25250 0x78C3 # <CJK>
+0x25251 0x78C4 # <CJK>
+0x25252 0x78C9 # <CJK>
+0x25253 0x799A # <CJK>
+0x25254 0x79A1 # <CJK>
+0x25255 0x79A0 # <CJK>
+0x25256 0x799C # <CJK>
+0x25257 0x79A2 # <CJK>
+0x25258 0x799B # <CJK>
+0x25259 0x6B76 # <CJK>
+0x2525A 0x7A39 # <CJK>
+0x2525B 0x7AB2 # <CJK>
+0x2525C 0x7AB4 # <CJK>
+0x2525D 0x7AB3 # <CJK>
+0x2525E 0x7BB7 # <CJK>
+0x2525F 0x7BCB # <CJK>
+0x25260 0x7BBE # <CJK>
+0x25261 0x7BAC # <CJK>
+0x25262 0x7BCE # <CJK>
+0x25263 0x7BAF # <CJK>
+0x25264 0x7BB9 # <CJK>
+0x25265 0x7BCA # <CJK>
+0x25266 0x7BB5 # <CJK>
+0x25267 0x7CC5 # <CJK>
+0x25268 0x7CC8 # <CJK>
+0x25269 0x7CCC # <CJK>
+0x2526A 0x7CCB # <CJK>
+0x2526B 0x7DF7 # <CJK>
+0x2526C 0x7DDB # <CJK>
+0x2526D 0x7DEA # <CJK>
+0x2526E 0x7DE7 # <CJK>
+0x2526F 0x7DD7 # <CJK>
+0x25270 0x7DE1 # <CJK>
+0x25271 0x7E03 # <CJK>
+0x25272 0x7DFA # <CJK>
+0x25273 0x7DE6 # <CJK>
+0x25274 0x7DF6 # <CJK>
+0x25275 0x7DF1 # <CJK>
+0x25276 0x7DF0 # <CJK>
+0x25277 0x7DEE # <CJK>
+0x25278 0x7DDF # <CJK>
+0x25279 0x7F76 # <CJK>
+0x2527A 0x7FAC # <CJK>
+0x2527B 0x7FB0 # <CJK>
+0x2527C 0x7FAD # <CJK>
+0x2527D 0x7FED # <CJK>
+0x2527E 0x7FEB # <CJK>
+0x25321 0x7FEA # <CJK>
+0x25322 0x7FEC # <CJK>
+0x25323 0x7FE6 # <CJK>
+0x25324 0x7FE8 # <CJK>
+0x25325 0x8064 # <CJK>
+0x25326 0x8067 # <CJK>
+0x25327 0x81A3 # <CJK>
+0x25328 0x819F # <CJK>
+0x25329 0x819E # <CJK>
+0x2532A 0x8195 # <CJK>
+0x2532B 0x81A2 # <CJK>
+0x2532C 0x8199 # <CJK>
+0x2532D 0x8197 # <CJK>
+0x2532E 0x8216 # <CJK>
+0x2532F 0x824F # <CJK>
+0x25330 0x8253 # <CJK>
+0x25331 0x8252 # <CJK>
+0x25332 0x8250 # <CJK>
+0x25333 0x824E # <CJK>
+0x25334 0x8251 # <CJK>
+0x25335 0x8524 # <CJK>
+0x25336 0x853B # <CJK>
+0x25337 0x850F # <CJK>
+0x25338 0x8500 # <CJK>
+0x25339 0x8529 # <CJK>
+0x2533A 0x850E # <CJK>
+0x2533B 0x8509 # <CJK>
+0x2533C 0x850D # <CJK>
+0x2533D 0x851F # <CJK>
+0x2533E 0x850A # <CJK>
+0x2533F 0x8527 # <CJK>
+0x25340 0x851C # <CJK>
+0x25341 0x84FB # <CJK>
+0x25342 0x852B # <CJK>
+0x25343 0x84FA # <CJK>
+0x25344 0x8508 # <CJK>
+0x25345 0x850C # <CJK>
+0x25346 0x84F4 # <CJK>
+0x25347 0x852A # <CJK>
+0x25348 0x84F2 # <CJK>
+0x25349 0x8515 # <CJK>
+0x2534A 0x84F7 # <CJK>
+0x2534B 0x84EB # <CJK>
+0x2534C 0x84F3 # <CJK>
+0x2534D 0x84FC # <CJK>
+0x2534E 0x8512 # <CJK>
+0x2534F 0x84EA # <CJK>
+0x25350 0x84E9 # <CJK>
+0x25351 0x8516 # <CJK>
+0x25352 0x84FE # <CJK>
+0x25353 0x8528 # <CJK>
+0x25354 0x851D # <CJK>
+0x25355 0x852E # <CJK>
+0x25356 0x8502 # <CJK>
+0x25357 0x84FD # <CJK>
+0x25358 0x851E # <CJK>
+0x25359 0x84F6 # <CJK>
+0x2535A 0x8531 # <CJK>
+0x2535B 0x8526 # <CJK>
+0x2535C 0x84E7 # <CJK>
+0x2535D 0x84E8 # <CJK>
+0x2535E 0x84F0 # <CJK>
+0x2535F 0x84EF # <CJK>
+0x25360 0x84F9 # <CJK>
+0x25361 0x8518 # <CJK>
+0x25362 0x8520 # <CJK>
+0x25363 0x8530 # <CJK>
+0x25364 0x850B # <CJK>
+0x25365 0x8519 # <CJK>
+0x25366 0x852F # <CJK>
+0x25367 0x8662 # <CJK>
+0x25368 0x8756 # <CJK>
+0x25369 0x8763 # <CJK>
+0x2536A 0x8764 # <CJK>
+0x2536B 0x8777 # <CJK>
+0x2536C 0x87E1 # <CJK>
+0x2536D 0x8773 # <CJK>
+0x2536E 0x8758 # <CJK>
+0x2536F 0x8754 # <CJK>
+0x25370 0x875B # <CJK>
+0x25371 0x8752 # <CJK>
+0x25372 0x8761 # <CJK>
+0x25373 0x875A # <CJK>
+0x25374 0x8751 # <CJK>
+0x25375 0x875E # <CJK>
+0x25376 0x876D # <CJK>
+0x25377 0x876A # <CJK>
+0x25378 0x8750 # <CJK>
+0x25379 0x874E # <CJK>
+0x2537A 0x875F # <CJK>
+0x2537B 0x875D # <CJK>
+0x2537C 0x876F # <CJK>
+0x2537D 0x876C # <CJK>
+0x2537E 0x877A # <CJK>
+0x25421 0x876E # <CJK>
+0x25422 0x875C # <CJK>
+0x25423 0x8765 # <CJK>
+0x25424 0x874F # <CJK>
+0x25425 0x877B # <CJK>
+0x25426 0x8775 # <CJK>
+0x25427 0x8762 # <CJK>
+0x25428 0x8767 # <CJK>
+0x25429 0x8769 # <CJK>
+0x2542A 0x885A # <CJK>
+0x2542B 0x8905 # <CJK>
+0x2542C 0x890C # <CJK>
+0x2542D 0x8914 # <CJK>
+0x2542E 0x890B # <CJK>
+0x2542F 0x8917 # <CJK>
+0x25430 0x8918 # <CJK>
+0x25431 0x8919 # <CJK>
+0x25432 0x8906 # <CJK>
+0x25433 0x8916 # <CJK>
+0x25434 0x8911 # <CJK>
+0x25435 0x890E # <CJK>
+0x25436 0x8909 # <CJK>
+0x25437 0x89A2 # <CJK>
+0x25438 0x89A4 # <CJK>
+0x25439 0x89A3 # <CJK>
+0x2543A 0x89ED # <CJK>
+0x2543B 0x89F0 # <CJK>
+0x2543C 0x89EC # <CJK>
+0x2543D 0x8ACF # <CJK>
+0x2543E 0x8AC6 # <CJK>
+0x2543F 0x8AB8 # <CJK>
+0x25440 0x8AD3 # <CJK>
+0x25441 0x8AD1 # <CJK>
+0x25442 0x8AD4 # <CJK>
+0x25443 0x8AD5 # <CJK>
+0x25444 0x8ABB # <CJK>
+0x25445 0x8AD7 # <CJK>
+0x25446 0x8ABE # <CJK>
+0x25447 0x8AC0 # <CJK>
+0x25448 0x8AC5 # <CJK>
+0x25449 0x8AD8 # <CJK>
+0x2544A 0x8AC3 # <CJK>
+0x2544B 0x8ABA # <CJK>
+0x2544C 0x8ABD # <CJK>
+0x2544D 0x8AD9 # <CJK>
+0x2544E 0x8C3E # <CJK>
+0x2544F 0x8C4D # <CJK>
+0x25450 0x8C8F # <CJK>
+0x25451 0x8CE5 # <CJK>
+0x25452 0x8CDF # <CJK>
+0x25453 0x8CD9 # <CJK>
+0x25454 0x8CE8 # <CJK>
+0x25455 0x8CDA # <CJK>
+0x25456 0x8CDD # <CJK>
+0x25457 0x8CE7 # <CJK>
+0x25458 0x8DA0 # <CJK>
+0x25459 0x8D9C # <CJK>
+0x2545A 0x8DA1 # <CJK>
+0x2545B 0x8D9B # <CJK>
+0x2545C 0x8E20 # <CJK>
+0x2545D 0x8E23 # <CJK>
+0x2545E 0x8E25 # <CJK>
+0x2545F 0x8E24 # <CJK>
+0x25460 0x8E2E # <CJK>
+0x25461 0x8E15 # <CJK>
+0x25462 0x8E1B # <CJK>
+0x25463 0x8E16 # <CJK>
+0x25464 0x8E11 # <CJK>
+0x25465 0x8E19 # <CJK>
+0x25466 0x8E26 # <CJK>
+0x25467 0x8E27 # <CJK>
+0x25468 0x8E14 # <CJK>
+0x25469 0x8E12 # <CJK>
+0x2546A 0x8E18 # <CJK>
+0x2546B 0x8E13 # <CJK>
+0x2546C 0x8E1C # <CJK>
+0x2546D 0x8E17 # <CJK>
+0x2546E 0x8E1A # <CJK>
+0x2546F 0x8F2C # <CJK>
+0x25470 0x8F24 # <CJK>
+0x25471 0x8F18 # <CJK>
+0x25472 0x8F1A # <CJK>
+0x25473 0x8F20 # <CJK>
+0x25474 0x8F23 # <CJK>
+0x25475 0x8F16 # <CJK>
+0x25476 0x8F17 # <CJK>
+0x25477 0x9073 # <CJK>
+0x25478 0x9070 # <CJK>
+0x25479 0x906F # <CJK>
+0x2547A 0x9067 # <CJK>
+0x2547B 0x906B # <CJK>
+0x2547C 0x912F # <CJK>
+0x2547D 0x912B # <CJK>
+0x2547E 0x9129 # <CJK>
+0x25521 0x912A # <CJK>
+0x25522 0x9132 # <CJK>
+0x25523 0x9126 # <CJK>
+0x25524 0x912E # <CJK>
+0x25525 0x9185 # <CJK>
+0x25526 0x9186 # <CJK>
+0x25527 0x918A # <CJK>
+0x25528 0x9181 # <CJK>
+0x25529 0x9182 # <CJK>
+0x2552A 0x9184 # <CJK>
+0x2552B 0x9180 # <CJK>
+0x2552C 0x92D0 # <CJK>
+0x2552D 0x92C3 # <CJK>
+0x2552E 0x92C4 # <CJK>
+0x2552F 0x92C0 # <CJK>
+0x25530 0x92D9 # <CJK>
+0x25531 0x92B6 # <CJK>
+0x25532 0x92CF # <CJK>
+0x25533 0x92F1 # <CJK>
+0x25534 0x92DF # <CJK>
+0x25535 0x92D8 # <CJK>
+0x25536 0x92E9 # <CJK>
+0x25537 0x92D7 # <CJK>
+0x25538 0x92DD # <CJK>
+0x25539 0x92CC # <CJK>
+0x2553A 0x92EF # <CJK>
+0x2553B 0x92C2 # <CJK>
+0x2553C 0x92E8 # <CJK>
+0x2553D 0x92CA # <CJK>
+0x2553E 0x92C8 # <CJK>
+0x2553F 0x92CE # <CJK>
+0x25540 0x92E6 # <CJK>
+0x25541 0x92CD # <CJK>
+0x25542 0x92D5 # <CJK>
+0x25543 0x92C9 # <CJK>
+0x25544 0x92E0 # <CJK>
+0x25545 0x92DE # <CJK>
+0x25546 0x92E7 # <CJK>
+0x25547 0x92D1 # <CJK>
+0x25548 0x92D3 # <CJK>
+0x25549 0x92B5 # <CJK>
+0x2554A 0x92E1 # <CJK>
+0x2554B 0x9325 # <CJK>
+0x2554C 0x92C6 # <CJK>
+0x2554D 0x92B4 # <CJK>
+0x2554E 0x957C # <CJK>
+0x2554F 0x95AC # <CJK>
+0x25550 0x95AB # <CJK>
+0x25551 0x95AE # <CJK>
+0x25552 0x95B0 # <CJK>
+0x25553 0x96A4 # <CJK>
+0x25554 0x96A2 # <CJK>
+0x25555 0x96D3 # <CJK>
+0x25556 0x9705 # <CJK>
+0x25557 0x9708 # <CJK>
+0x25558 0x9702 # <CJK>
+0x25559 0x975A # <CJK>
+0x2555A 0x978A # <CJK>
+0x2555B 0x978E # <CJK>
+0x2555C 0x9788 # <CJK>
+0x2555D 0x97D0 # <CJK>
+0x2555E 0x97CF # <CJK>
+0x2555F 0x981E # <CJK>
+0x25560 0x981D # <CJK>
+0x25561 0x9826 # <CJK>
+0x25562 0x9829 # <CJK>
+0x25563 0x9828 # <CJK>
+0x25564 0x9820 # <CJK>
+0x25565 0x981B # <CJK>
+0x25566 0x9827 # <CJK>
+0x25567 0x98B2 # <CJK>
+0x25568 0x9908 # <CJK>
+0x25569 0x98FA # <CJK>
+0x2556A 0x9911 # <CJK>
+0x2556B 0x9914 # <CJK>
+0x2556C 0x9916 # <CJK>
+0x2556D 0x9917 # <CJK>
+0x2556E 0x9915 # <CJK>
+0x2556F 0x99DC # <CJK>
+0x25570 0x99CD # <CJK>
+0x25571 0x99CF # <CJK>
+0x25572 0x99D3 # <CJK>
+0x25573 0x99D4 # <CJK>
+0x25574 0x99CE # <CJK>
+0x25575 0x99C9 # <CJK>
+0x25576 0x99D6 # <CJK>
+0x25577 0x99D8 # <CJK>
+0x25578 0x99CB # <CJK>
+0x25579 0x99D7 # <CJK>
+0x2557A 0x99CC # <CJK>
+0x2557B 0x9AB3 # <CJK>
+0x2557C 0x9AEC # <CJK>
+0x2557D 0x9AEB # <CJK>
+0x2557E 0x9AF3 # <CJK>
+0x25621 0x9AF2 # <CJK>
+0x25622 0x9AF1 # <CJK>
+0x25623 0x9B46 # <CJK>
+0x25624 0x9B43 # <CJK>
+0x25625 0x9B67 # <CJK>
+0x25626 0x9B74 # <CJK>
+0x25627 0x9B71 # <CJK>
+0x25628 0x9B66 # <CJK>
+0x25629 0x9B76 # <CJK>
+0x2562A 0x9B75 # <CJK>
+0x2562B 0x9B70 # <CJK>
+0x2562C 0x9B68 # <CJK>
+0x2562D 0x9B64 # <CJK>
+0x2562E 0x9B6C # <CJK>
+0x2562F 0x9CFC # <CJK>
+0x25630 0x9CFA # <CJK>
+0x25631 0x9CFD # <CJK>
+0x25632 0x9CFF # <CJK>
+0x25633 0x9CF7 # <CJK>
+0x25634 0x9D07 # <CJK>
+0x25635 0x9D00 # <CJK>
+0x25636 0x9CF9 # <CJK>
+0x25637 0x9CFB # <CJK>
+0x25638 0x9D08 # <CJK>
+0x25639 0x9D05 # <CJK>
+0x2563A 0x9D04 # <CJK>
+0x2563B 0x9E83 # <CJK>
+0x2563C 0x9ED3 # <CJK>
+0x2563D 0x9F0F # <CJK>
+0x2563E 0x9F10 # <CJK>
+0x2563F 0x511C # <CJK>
+0x25640 0x5113 # <CJK>
+0x25641 0x5117 # <CJK>
+0x25642 0x511A # <CJK>
+0x25643 0x5111 # <CJK>
+0x25644 0x51DE # <CJK>
+0x25645 0x5334 # <CJK>
+0x25646 0x53E1 # <CJK>
+0x25647 0x5670 # <CJK>
+0x25648 0x5660 # <CJK>
+0x25649 0x566E # <CJK>
+0x2564A 0x5673 # <CJK>
+0x2564B 0x5666 # <CJK>
+0x2564C 0x5663 # <CJK>
+0x2564D 0x566D # <CJK>
+0x2564E 0x5672 # <CJK>
+0x2564F 0x565E # <CJK>
+0x25650 0x5677 # <CJK>
+0x25651 0x571C # <CJK>
+0x25652 0x571B # <CJK>
+0x25653 0x58C8 # <CJK>
+0x25654 0x58BD # <CJK>
+0x25655 0x58C9 # <CJK>
+0x25656 0x58BF # <CJK>
+0x25657 0x58BA # <CJK>
+0x25658 0x58C2 # <CJK>
+0x25659 0x58BC # <CJK>
+0x2565A 0x58C6 # <CJK>
+0x2565B 0x5B17 # <CJK>
+0x2565C 0x5B19 # <CJK>
+0x2565D 0x5B1B # <CJK>
+0x2565E 0x5B21 # <CJK>
+0x2565F 0x5B14 # <CJK>
+0x25660 0x5B13 # <CJK>
+0x25661 0x5B10 # <CJK>
+0x25662 0x5B16 # <CJK>
+0x25663 0x5B28 # <CJK>
+0x25664 0x5B1A # <CJK>
+0x25665 0x5B20 # <CJK>
+0x25666 0x5B1E # <CJK>
+0x25667 0x5BEF # <CJK>
+0x25668 0x5DAC # <CJK>
+0x25669 0x5DB1 # <CJK>
+0x2566A 0x5DA9 # <CJK>
+0x2566B 0x5DA7 # <CJK>
+0x2566C 0x5DB5 # <CJK>
+0x2566D 0x5DB0 # <CJK>
+0x2566E 0x5DAE # <CJK>
+0x2566F 0x5DAA # <CJK>
+0x25670 0x5DA8 # <CJK>
+0x25671 0x5DB2 # <CJK>
+0x25672 0x5DAD # <CJK>
+0x25673 0x5DAF # <CJK>
+0x25674 0x5DB4 # <CJK>
+0x25675 0x5E67 # <CJK>
+0x25676 0x5E68 # <CJK>
+0x25677 0x5E66 # <CJK>
+0x25678 0x5E6F # <CJK>
+0x25679 0x5EE9 # <CJK>
+0x2567A 0x5EE7 # <CJK>
+0x2567B 0x5EE6 # <CJK>
+0x2567C 0x5EE8 # <CJK>
+0x2567D 0x5EE5 # <CJK>
+0x2567E 0x5F4B # <CJK>
+0x25721 0x5FBC # <CJK>
+0x25722 0x5FBB # <CJK>
+0x25723 0x619D # <CJK>
+0x25724 0x61A8 # <CJK>
+0x25725 0x6196 # <CJK>
+0x25726 0x61C5 # <CJK>
+0x25727 0x61B4 # <CJK>
+0x25728 0x61C6 # <CJK>
+0x25729 0x61C1 # <CJK>
+0x2572A 0x61CC # <CJK>
+0x2572B 0x61BA # <CJK>
+0x2572C 0x61BF # <CJK>
+0x2572D 0x61B8 # <CJK>
+0x2572E 0x618C # <CJK>
+0x2572F 0x64D7 # <CJK>
+0x25730 0x64D6 # <CJK>
+0x25731 0x64D0 # <CJK>
+0x25732 0x64CF # <CJK>
+0x25733 0x64C9 # <CJK>
+0x25734 0x64BD # <CJK>
+0x25735 0x6489 # <CJK>
+0x25736 0x64C3 # <CJK>
+0x25737 0x64DB # <CJK>
+0x25738 0x64F3 # <CJK>
+0x25739 0x64D9 # <CJK>
+0x2573A 0x6533 # <CJK>
+0x2573B 0x657F # <CJK>
+0x2573C 0x657C # <CJK>
+0x2573D 0x65A2 # <CJK>
+0x2573E 0x66C8 # <CJK>
+0x2573F 0x66BE # <CJK>
+0x25740 0x66C0 # <CJK>
+0x25741 0x66CA # <CJK>
+0x25742 0x66CB # <CJK>
+0x25743 0x66CF # <CJK>
+0x25744 0x66BD # <CJK>
+0x25745 0x66BB # <CJK>
+0x25746 0x66BA # <CJK>
+0x25747 0x66CC # <CJK>
+0x25748 0x6723 # <CJK>
+0x25749 0x6A34 # <CJK>
+0x2574A 0x6A66 # <CJK>
+0x2574B 0x6A49 # <CJK>
+0x2574C 0x6A67 # <CJK>
+0x2574D 0x6A32 # <CJK>
+0x2574E 0x6A68 # <CJK>
+0x2574F 0x6A3E # <CJK>
+0x25750 0x6A5D # <CJK>
+0x25751 0x6A6D # <CJK>
+0x25752 0x6A76 # <CJK>
+0x25753 0x6A5B # <CJK>
+0x25754 0x6A51 # <CJK>
+0x25755 0x6A28 # <CJK>
+0x25756 0x6A5A # <CJK>
+0x25757 0x6A3B # <CJK>
+0x25758 0x6A3F # <CJK>
+0x25759 0x6A41 # <CJK>
+0x2575A 0x6A6A # <CJK>
+0x2575B 0x6A64 # <CJK>
+0x2575C 0x6A50 # <CJK>
+0x2575D 0x6A4F # <CJK>
+0x2575E 0x6A54 # <CJK>
+0x2575F 0x6A6F # <CJK>
+0x25760 0x6A69 # <CJK>
+0x25761 0x6A60 # <CJK>
+0x25762 0x6A3C # <CJK>
+0x25763 0x6A5E # <CJK>
+0x25764 0x6A56 # <CJK>
+0x25765 0x6A55 # <CJK>
+0x25766 0x6A4D # <CJK>
+0x25767 0x6A4E # <CJK>
+0x25768 0x6A46 # <CJK>
+0x25769 0x6B55 # <CJK>
+0x2576A 0x6B54 # <CJK>
+0x2576B 0x6B56 # <CJK>
+0x2576C 0x6BA7 # <CJK>
+0x2576D 0x6BAA # <CJK>
+0x2576E 0x6BAB # <CJK>
+0x2576F 0x6BC8 # <CJK>
+0x25770 0x6BC7 # <CJK>
+0x25771 0x6C04 # <CJK>
+0x25772 0x6C03 # <CJK>
+0x25773 0x6C06 # <CJK>
+0x25774 0x6FAD # <CJK>
+0x25775 0x6FCB # <CJK>
+0x25776 0x6FA3 # <CJK>
+0x25777 0x6FC7 # <CJK>
+0x25778 0x6FBC # <CJK>
+0x25779 0x6FCE # <CJK>
+0x2577A 0x6FC8 # <CJK>
+0x2577B 0x6F5E # <CJK>
+0x2577C 0x6FC4 # <CJK>
+0x2577D 0x6FBD # <CJK>
+0x2577E 0x6F9E # <CJK>
+0x25821 0x6FCA # <CJK>
+0x25822 0x6FA8 # <CJK>
+0x25823 0x7004 # <CJK>
+0x25824 0x6FA5 # <CJK>
+0x25825 0x6FAE # <CJK>
+0x25826 0x6FBA # <CJK>
+0x25827 0x6FAC # <CJK>
+0x25828 0x6FAA # <CJK>
+0x25829 0x6FCF # <CJK>
+0x2582A 0x6FBF # <CJK>
+0x2582B 0x6FB8 # <CJK>
+0x2582C 0x6FA2 # <CJK>
+0x2582D 0x6FC9 # <CJK>
+0x2582E 0x6FAB # <CJK>
+0x2582F 0x6FCD # <CJK>
+0x25830 0x6FAF # <CJK>
+0x25831 0x6FB2 # <CJK>
+0x25832 0x6FB0 # <CJK>
+0x25833 0x71C5 # <CJK>
+0x25834 0x71C2 # <CJK>
+0x25835 0x71BF # <CJK>
+0x25836 0x71B8 # <CJK>
+0x25837 0x71D6 # <CJK>
+0x25838 0x71C0 # <CJK>
+0x25839 0x71C1 # <CJK>
+0x2583A 0x71CB # <CJK>
+0x2583B 0x71D4 # <CJK>
+0x2583C 0x71CA # <CJK>
+0x2583D 0x71C7 # <CJK>
+0x2583E 0x71CF # <CJK>
+0x2583F 0x71BD # <CJK>
+0x25840 0x71D8 # <CJK>
+0x25841 0x71BC # <CJK>
+0x25842 0x71C6 # <CJK>
+0x25843 0x71DA # <CJK>
+0x25844 0x71DB # <CJK>
+0x25845 0x729D # <CJK>
+0x25846 0x729E # <CJK>
+0x25847 0x7369 # <CJK>
+0x25848 0x7366 # <CJK>
+0x25849 0x7367 # <CJK>
+0x2584A 0x736C # <CJK>
+0x2584B 0x7365 # <CJK>
+0x2584C 0x736B # <CJK>
+0x2584D 0x736A # <CJK>
+0x2584E 0x747F # <CJK>
+0x2584F 0x749A # <CJK>
+0x25850 0x74A0 # <CJK>
+0x25851 0x7494 # <CJK>
+0x25852 0x7492 # <CJK>
+0x25853 0x7495 # <CJK>
+0x25854 0x74A1 # <CJK>
+0x25855 0x750B # <CJK>
+0x25856 0x7580 # <CJK>
+0x25857 0x762F # <CJK>
+0x25858 0x762D # <CJK>
+0x25859 0x7631 # <CJK>
+0x2585A 0x763D # <CJK>
+0x2585B 0x7633 # <CJK>
+0x2585C 0x763C # <CJK>
+0x2585D 0x7635 # <CJK>
+0x2585E 0x7632 # <CJK>
+0x2585F 0x7630 # <CJK>
+0x25860 0x76BB # <CJK>
+0x25861 0x76E6 # <CJK>
+0x25862 0x779A # <CJK>
+0x25863 0x779D # <CJK>
+0x25864 0x77A1 # <CJK>
+0x25865 0x779C # <CJK>
+0x25866 0x779B # <CJK>
+0x25867 0x77A2 # <CJK>
+0x25868 0x77A3 # <CJK>
+0x25869 0x7795 # <CJK>
+0x2586A 0x7799 # <CJK>
+0x2586B 0x7797 # <CJK>
+0x2586C 0x78DD # <CJK>
+0x2586D 0x78E9 # <CJK>
+0x2586E 0x78E5 # <CJK>
+0x2586F 0x78EA # <CJK>
+0x25870 0x78DE # <CJK>
+0x25871 0x78E3 # <CJK>
+0x25872 0x78DB # <CJK>
+0x25873 0x78E1 # <CJK>
+0x25874 0x78E2 # <CJK>
+0x25875 0x78ED # <CJK>
+0x25876 0x78DF # <CJK>
+0x25877 0x78E0 # <CJK>
+0x25878 0x79A4 # <CJK>
+0x25879 0x7A44 # <CJK>
+0x2587A 0x7A48 # <CJK>
+0x2587B 0x7A47 # <CJK>
+0x2587C 0x7AB6 # <CJK>
+0x2587D 0x7AB8 # <CJK>
+0x2587E 0x7AB5 # <CJK>
+0x25921 0x7AB1 # <CJK>
+0x25922 0x7AB7 # <CJK>
+0x25923 0x7BDE # <CJK>
+0x25924 0x7BE3 # <CJK>
+0x25925 0x7BE7 # <CJK>
+0x25926 0x7BDD # <CJK>
+0x25927 0x7BD5 # <CJK>
+0x25928 0x7BE5 # <CJK>
+0x25929 0x7BDA # <CJK>
+0x2592A 0x7BE8 # <CJK>
+0x2592B 0x7BF9 # <CJK>
+0x2592C 0x7BD4 # <CJK>
+0x2592D 0x7BEA # <CJK>
+0x2592E 0x7BE2 # <CJK>
+0x2592F 0x7BDC # <CJK>
+0x25930 0x7BEB # <CJK>
+0x25931 0x7BD8 # <CJK>
+0x25932 0x7BDF # <CJK>
+0x25933 0x7CD2 # <CJK>
+0x25934 0x7CD4 # <CJK>
+0x25935 0x7CD7 # <CJK>
+0x25936 0x7CD0 # <CJK>
+0x25937 0x7CD1 # <CJK>
+0x25938 0x7E12 # <CJK>
+0x25939 0x7E21 # <CJK>
+0x2593A 0x7E17 # <CJK>
+0x2593B 0x7E0C # <CJK>
+0x2593C 0x7E1F # <CJK>
+0x2593D 0x7E20 # <CJK>
+0x2593E 0x7E13 # <CJK>
+0x2593F 0x7E0E # <CJK>
+0x25940 0x7E1C # <CJK>
+0x25941 0x7E15 # <CJK>
+0x25942 0x7E1A # <CJK>
+0x25943 0x7E22 # <CJK>
+0x25944 0x7E0B # <CJK>
+0x25945 0x7E0F # <CJK>
+0x25946 0x7E16 # <CJK>
+0x25947 0x7E0D # <CJK>
+0x25948 0x7E14 # <CJK>
+0x25949 0x7E25 # <CJK>
+0x2594A 0x7E24 # <CJK>
+0x2594B 0x7F43 # <CJK>
+0x2594C 0x7F7B # <CJK>
+0x2594D 0x7F7C # <CJK>
+0x2594E 0x7F7A # <CJK>
+0x2594F 0x7FB1 # <CJK>
+0x25950 0x7FEF # <CJK>
+0x25951 0x802A # <CJK>
+0x25952 0x8029 # <CJK>
+0x25953 0x806C # <CJK>
+0x25954 0x81B1 # <CJK>
+0x25955 0x81A6 # <CJK>
+0x25956 0x81AE # <CJK>
+0x25957 0x81B9 # <CJK>
+0x25958 0x81B5 # <CJK>
+0x25959 0x81AB # <CJK>
+0x2595A 0x81B0 # <CJK>
+0x2595B 0x81AC # <CJK>
+0x2595C 0x81B4 # <CJK>
+0x2595D 0x81B2 # <CJK>
+0x2595E 0x81B7 # <CJK>
+0x2595F 0x81A7 # <CJK>
+0x25960 0x81F2 # <CJK>
+0x25961 0x8255 # <CJK>
+0x25962 0x8256 # <CJK>
+0x25963 0x8257 # <CJK>
+0x25964 0x8556 # <CJK>
+0x25965 0x8545 # <CJK>
+0x25966 0x856B # <CJK>
+0x25967 0x854D # <CJK>
+0x25968 0x8553 # <CJK>
+0x25969 0x8561 # <CJK>
+0x2596A 0x8558 # <CJK>
+0x2596B 0x8540 # <CJK>
+0x2596C 0x8546 # <CJK>
+0x2596D 0x8564 # <CJK>
+0x2596E 0x8541 # <CJK>
+0x2596F 0x8562 # <CJK>
+0x25970 0x8544 # <CJK>
+0x25971 0x8551 # <CJK>
+0x25972 0x8547 # <CJK>
+0x25973 0x8563 # <CJK>
+0x25974 0x853E # <CJK>
+0x25975 0x855B # <CJK>
+0x25976 0x8571 # <CJK>
+0x25977 0x854E # <CJK>
+0x25978 0x856E # <CJK>
+0x25979 0x8575 # <CJK>
+0x2597A 0x8555 # <CJK>
+0x2597B 0x8567 # <CJK>
+0x2597C 0x8560 # <CJK>
+0x2597D 0x858C # <CJK>
+0x2597E 0x8566 # <CJK>
+0x25A21 0x855D # <CJK>
+0x25A22 0x8554 # <CJK>
+0x25A23 0x8565 # <CJK>
+0x25A24 0x856C # <CJK>
+0x25A25 0x8663 # <CJK>
+0x25A26 0x8665 # <CJK>
+0x25A27 0x8664 # <CJK>
+0x25A28 0x87A4 # <CJK>
+0x25A29 0x879B # <CJK>
+0x25A2A 0x878F # <CJK>
+0x25A2B 0x8797 # <CJK>
+0x25A2C 0x8793 # <CJK>
+0x25A2D 0x8792 # <CJK>
+0x25A2E 0x8788 # <CJK>
+0x25A2F 0x8781 # <CJK>
+0x25A30 0x8796 # <CJK>
+0x25A31 0x8798 # <CJK>
+0x25A32 0x8779 # <CJK>
+0x25A33 0x8787 # <CJK>
+0x25A34 0x87A3 # <CJK>
+0x25A35 0x8785 # <CJK>
+0x25A36 0x8790 # <CJK>
+0x25A37 0x8791 # <CJK>
+0x25A38 0x879D # <CJK>
+0x25A39 0x8784 # <CJK>
+0x25A3A 0x8794 # <CJK>
+0x25A3B 0x879C # <CJK>
+0x25A3C 0x879A # <CJK>
+0x25A3D 0x8789 # <CJK>
+0x25A3E 0x891E # <CJK>
+0x25A3F 0x8926 # <CJK>
+0x25A40 0x8930 # <CJK>
+0x25A41 0x892D # <CJK>
+0x25A42 0x892E # <CJK>
+0x25A43 0x8927 # <CJK>
+0x25A44 0x8931 # <CJK>
+0x25A45 0x8922 # <CJK>
+0x25A46 0x8929 # <CJK>
+0x25A47 0x8923 # <CJK>
+0x25A48 0x892F # <CJK>
+0x25A49 0x892C # <CJK>
+0x25A4A 0x891F # <CJK>
+0x25A4B 0x89F1 # <CJK>
+0x25A4C 0x8AE0 # <CJK>
+0x25A4D 0x8AE2 # <CJK>
+0x25A4E 0x8AF2 # <CJK>
+0x25A4F 0x8AF4 # <CJK>
+0x25A50 0x8AF5 # <CJK>
+0x25A51 0x8ADD # <CJK>
+0x25A52 0x8B14 # <CJK>
+0x25A53 0x8AE4 # <CJK>
+0x25A54 0x8ADF # <CJK>
+0x25A55 0x8AF0 # <CJK>
+0x25A56 0x8AC8 # <CJK>
+0x25A57 0x8ADE # <CJK>
+0x25A58 0x8AE1 # <CJK>
+0x25A59 0x8AE8 # <CJK>
+0x25A5A 0x8AFF # <CJK>
+0x25A5B 0x8AEF # <CJK>
+0x25A5C 0x8AFB # <CJK>
+0x25A5D 0x8C91 # <CJK>
+0x25A5E 0x8C92 # <CJK>
+0x25A5F 0x8C90 # <CJK>
+0x25A60 0x8CF5 # <CJK>
+0x25A61 0x8CEE # <CJK>
+0x25A62 0x8CF1 # <CJK>
+0x25A63 0x8CF0 # <CJK>
+0x25A64 0x8CF3 # <CJK>
+0x25A65 0x8D6C # <CJK>
+0x25A66 0x8D6E # <CJK>
+0x25A67 0x8DA5 # <CJK>
+0x25A68 0x8DA7 # <CJK>
+0x25A69 0x8E33 # <CJK>
+0x25A6A 0x8E3E # <CJK>
+0x25A6B 0x8E38 # <CJK>
+0x25A6C 0x8E40 # <CJK>
+0x25A6D 0x8E45 # <CJK>
+0x25A6E 0x8E36 # <CJK>
+0x25A6F 0x8E3C # <CJK>
+0x25A70 0x8E3D # <CJK>
+0x25A71 0x8E41 # <CJK>
+0x25A72 0x8E30 # <CJK>
+0x25A73 0x8E3F # <CJK>
+0x25A74 0x8EBD # <CJK>
+0x25A75 0x8F36 # <CJK>
+0x25A76 0x8F2E # <CJK>
+0x25A77 0x8F35 # <CJK>
+0x25A78 0x8F32 # <CJK>
+0x25A79 0x8F39 # <CJK>
+0x25A7A 0x8F37 # <CJK>
+0x25A7B 0x8F34 # <CJK>
+0x25A7C 0x9076 # <CJK>
+0x25A7D 0x9079 # <CJK>
+0x25A7E 0x907B # <CJK>
+0x25B21 0x9086 # <CJK>
+0x25B22 0x90FA # <CJK>
+0x25B23 0x9133 # <CJK>
+0x25B24 0x9135 # <CJK>
+0x25B25 0x9136 # <CJK>
+0x25B26 0x9193 # <CJK>
+0x25B27 0x9190 # <CJK>
+0x25B28 0x9191 # <CJK>
+0x25B29 0x918D # <CJK>
+0x25B2A 0x918F # <CJK>
+0x25B2B 0x9327 # <CJK>
+0x25B2C 0x931E # <CJK>
+0x25B2D 0x9308 # <CJK>
+0x25B2E 0x931F # <CJK>
+0x25B2F 0x9306 # <CJK>
+0x25B30 0x930F # <CJK>
+0x25B31 0x937A # <CJK>
+0x25B32 0x9338 # <CJK>
+0x25B33 0x933C # <CJK>
+0x25B34 0x931B # <CJK>
+0x25B35 0x9323 # <CJK>
+0x25B36 0x9312 # <CJK>
+0x25B37 0x9301 # <CJK>
+0x25B38 0x9346 # <CJK>
+0x25B39 0x932D # <CJK>
+0x25B3A 0x930E # <CJK>
+0x25B3B 0x930D # <CJK>
+0x25B3C 0x92CB # <CJK>
+0x25B3D 0x931D # <CJK>
+0x25B3E 0x92FA # <CJK>
+0x25B3F 0x9313 # <CJK>
+0x25B40 0x92F9 # <CJK>
+0x25B41 0x92F7 # <CJK>
+0x25B42 0x9334 # <CJK>
+0x25B43 0x9302 # <CJK>
+0x25B44 0x9324 # <CJK>
+0x25B45 0x92FF # <CJK>
+0x25B46 0x9329 # <CJK>
+0x25B47 0x9339 # <CJK>
+0x25B48 0x9335 # <CJK>
+0x25B49 0x932A # <CJK>
+0x25B4A 0x9314 # <CJK>
+0x25B4B 0x930C # <CJK>
+0x25B4C 0x930B # <CJK>
+0x25B4D 0x92FE # <CJK>
+0x25B4E 0x9309 # <CJK>
+0x25B4F 0x9300 # <CJK>
+0x25B50 0x92FB # <CJK>
+0x25B51 0x9316 # <CJK>
+0x25B52 0x95BC # <CJK>
+0x25B53 0x95CD # <CJK>
+0x25B54 0x95BE # <CJK>
+0x25B55 0x95B9 # <CJK>
+0x25B56 0x95BA # <CJK>
+0x25B57 0x95B6 # <CJK>
+0x25B58 0x95BF # <CJK>
+0x25B59 0x95B5 # <CJK>
+0x25B5A 0x95BD # <CJK>
+0x25B5B 0x96A9 # <CJK>
+0x25B5C 0x96D4 # <CJK>
+0x25B5D 0x970B # <CJK>
+0x25B5E 0x9712 # <CJK>
+0x25B5F 0x9710 # <CJK>
+0x25B60 0x9799 # <CJK>
+0x25B61 0x9797 # <CJK>
+0x25B62 0x9794 # <CJK>
+0x25B63 0x97F0 # <CJK>
+0x25B64 0x97F8 # <CJK>
+0x25B65 0x9835 # <CJK>
+0x25B66 0x982F # <CJK>
+0x25B67 0x9832 # <CJK>
+0x25B68 0x9924 # <CJK>
+0x25B69 0x991F # <CJK>
+0x25B6A 0x9927 # <CJK>
+0x25B6B 0x9929 # <CJK>
+0x25B6C 0x999E # <CJK>
+0x25B6D 0x99EE # <CJK>
+0x25B6E 0x99EC # <CJK>
+0x25B6F 0x99E5 # <CJK>
+0x25B70 0x99E4 # <CJK>
+0x25B71 0x99F0 # <CJK>
+0x25B72 0x99E3 # <CJK>
+0x25B73 0x99EA # <CJK>
+0x25B74 0x99E9 # <CJK>
+0x25B75 0x99E7 # <CJK>
+0x25B76 0x9AB9 # <CJK>
+0x25B77 0x9ABF # <CJK>
+0x25B78 0x9AB4 # <CJK>
+0x25B79 0x9ABB # <CJK>
+0x25B7A 0x9AF6 # <CJK>
+0x25B7B 0x9AFA # <CJK>
+0x25B7C 0x9AF9 # <CJK>
+0x25B7D 0x9AF7 # <CJK>
+0x25B7E 0x9B33 # <CJK>
+0x25C21 0x9B80 # <CJK>
+0x25C22 0x9B85 # <CJK>
+0x25C23 0x9B87 # <CJK>
+0x25C24 0x9B7C # <CJK>
+0x25C25 0x9B7E # <CJK>
+0x25C26 0x9B7B # <CJK>
+0x25C27 0x9B82 # <CJK>
+0x25C28 0x9B93 # <CJK>
+0x25C29 0x9B92 # <CJK>
+0x25C2A 0x9B90 # <CJK>
+0x25C2B 0x9B7A # <CJK>
+0x25C2C 0x9B95 # <CJK>
+0x25C2D 0x9B7D # <CJK>
+0x25C2E 0x9B88 # <CJK>
+0x25C2F 0x9D25 # <CJK>
+0x25C30 0x9D17 # <CJK>
+0x25C31 0x9D20 # <CJK>
+0x25C32 0x9D1E # <CJK>
+0x25C33 0x9D14 # <CJK>
+0x25C34 0x9D29 # <CJK>
+0x25C35 0x9D1D # <CJK>
+0x25C36 0x9D18 # <CJK>
+0x25C37 0x9D22 # <CJK>
+0x25C38 0x9D10 # <CJK>
+0x25C39 0x9D19 # <CJK>
+0x25C3A 0x9D1F # <CJK>
+0x25C3B 0x9E88 # <CJK>
+0x25C3C 0x9E86 # <CJK>
+0x25C3D 0x9E87 # <CJK>
+0x25C3E 0x9EAE # <CJK>
+0x25C3F 0x9EAD # <CJK>
+0x25C40 0x9ED5 # <CJK>
+0x25C41 0x9ED6 # <CJK>
+0x25C42 0x9EFA # <CJK>
+0x25C43 0x9F12 # <CJK>
+0x25C44 0x9F3D # <CJK>
+0x25C45 0x5126 # <CJK>
+0x25C46 0x5125 # <CJK>
+0x25C47 0x5122 # <CJK>
+0x25C48 0x5124 # <CJK>
+0x25C49 0x5120 # <CJK>
+0x25C4A 0x5129 # <CJK>
+0x25C4B 0x52F4 # <CJK>
+0x25C4C 0x5693 # <CJK>
+0x25C4D 0x568C # <CJK>
+0x25C4E 0x568D # <CJK>
+0x25C4F 0x5686 # <CJK>
+0x25C50 0x5684 # <CJK>
+0x25C51 0x5683 # <CJK>
+0x25C52 0x567E # <CJK>
+0x25C53 0x5682 # <CJK>
+0x25C54 0x567F # <CJK>
+0x25C55 0x5681 # <CJK>
+0x25C56 0x58D6 # <CJK>
+0x25C57 0x58D4 # <CJK>
+0x25C58 0x58CF # <CJK>
+0x25C59 0x58D2 # <CJK>
+0x25C5A 0x5B2D # <CJK>
+0x25C5B 0x5B25 # <CJK>
+0x25C5C 0x5B32 # <CJK>
+0x25C5D 0x5B23 # <CJK>
+0x25C5E 0x5B2C # <CJK>
+0x25C5F 0x5B27 # <CJK>
+0x25C60 0x5B26 # <CJK>
+0x25C61 0x5B2F # <CJK>
+0x25C62 0x5B2E # <CJK>
+0x25C63 0x5B7B # <CJK>
+0x25C64 0x5BF1 # <CJK>
+0x25C65 0x5BF2 # <CJK>
+0x25C66 0x5DB7 # <CJK>
+0x25C67 0x5E6C # <CJK>
+0x25C68 0x5E6A # <CJK>
+0x25C69 0x5FBE # <CJK>
+0x25C6A 0x61C3 # <CJK>
+0x25C6B 0x61B5 # <CJK>
+0x25C6C 0x61BC # <CJK>
+0x25C6D 0x61E7 # <CJK>
+0x25C6E 0x61E0 # <CJK>
+0x25C6F 0x61E5 # <CJK>
+0x25C70 0x61E4 # <CJK>
+0x25C71 0x61E8 # <CJK>
+0x25C72 0x61DE # <CJK>
+0x25C73 0x64EF # <CJK>
+0x25C74 0x64E9 # <CJK>
+0x25C75 0x64E3 # <CJK>
+0x25C76 0x64EB # <CJK>
+0x25C77 0x64E4 # <CJK>
+0x25C78 0x64E8 # <CJK>
+0x25C79 0x6581 # <CJK>
+0x25C7A 0x6580 # <CJK>
+0x25C7B 0x65B6 # <CJK>
+0x25C7C 0x65DA # <CJK>
+0x25C7D 0x66D2 # <CJK>
+0x25C7E 0x6A8D # <CJK>
+0x25D21 0x6A96 # <CJK>
+0x25D22 0x6A81 # <CJK>
+0x25D23 0x6AA5 # <CJK>
+0x25D24 0x6A89 # <CJK>
+0x25D25 0x6A9F # <CJK>
+0x25D26 0x6A9B # <CJK>
+0x25D27 0x6AA1 # <CJK>
+0x25D28 0x6A9E # <CJK>
+0x25D29 0x6A87 # <CJK>
+0x25D2A 0x6A93 # <CJK>
+0x25D2B 0x6A8E # <CJK>
+0x25D2C 0x6A95 # <CJK>
+0x25D2D 0x6A83 # <CJK>
+0x25D2E 0x6AA8 # <CJK>
+0x25D2F 0x6AA4 # <CJK>
+0x25D30 0x6A91 # <CJK>
+0x25D31 0x6A7F # <CJK>
+0x25D32 0x6AA6 # <CJK>
+0x25D33 0x6A9A # <CJK>
+0x25D34 0x6A85 # <CJK>
+0x25D35 0x6A8C # <CJK>
+0x25D36 0x6A92 # <CJK>
+0x25D37 0x6B5B # <CJK>
+0x25D38 0x6BAD # <CJK>
+0x25D39 0x6C09 # <CJK>
+0x25D3A 0x6FCC # <CJK>
+0x25D3B 0x6FA9 # <CJK>
+0x25D3C 0x6FF4 # <CJK>
+0x25D3D 0x6FD4 # <CJK>
+0x25D3E 0x6FE3 # <CJK>
+0x25D3F 0x6FDC # <CJK>
+0x25D40 0x6FED # <CJK>
+0x25D41 0x6FE7 # <CJK>
+0x25D42 0x6FE6 # <CJK>
+0x25D43 0x6FDE # <CJK>
+0x25D44 0x6FF2 # <CJK>
+0x25D45 0x6FDD # <CJK>
+0x25D46 0x6FE2 # <CJK>
+0x25D47 0x6FE8 # <CJK>
+0x25D48 0x71E1 # <CJK>
+0x25D49 0x71F1 # <CJK>
+0x25D4A 0x71E8 # <CJK>
+0x25D4B 0x71F2 # <CJK>
+0x25D4C 0x71E4 # <CJK>
+0x25D4D 0x71F0 # <CJK>
+0x25D4E 0x71E2 # <CJK>
+0x25D4F 0x7373 # <CJK>
+0x25D50 0x736E # <CJK>
+0x25D51 0x736F # <CJK>
+0x25D52 0x7497 # <CJK>
+0x25D53 0x74B2 # <CJK>
+0x25D54 0x74AB # <CJK>
+0x25D55 0x7490 # <CJK>
+0x25D56 0x74AA # <CJK>
+0x25D57 0x74AD # <CJK>
+0x25D58 0x74B1 # <CJK>
+0x25D59 0x74A5 # <CJK>
+0x25D5A 0x74AF # <CJK>
+0x25D5B 0x7510 # <CJK>
+0x25D5C 0x7511 # <CJK>
+0x25D5D 0x7512 # <CJK>
+0x25D5E 0x750F # <CJK>
+0x25D5F 0x7584 # <CJK>
+0x25D60 0x7643 # <CJK>
+0x25D61 0x7648 # <CJK>
+0x25D62 0x7649 # <CJK>
+0x25D63 0x7647 # <CJK>
+0x25D64 0x76A4 # <CJK>
+0x25D65 0x76E9 # <CJK>
+0x25D66 0x77B5 # <CJK>
+0x25D67 0x77AB # <CJK>
+0x25D68 0x77B2 # <CJK>
+0x25D69 0x77B7 # <CJK>
+0x25D6A 0x77B6 # <CJK>
+0x25D6B 0x77B4 # <CJK>
+0x25D6C 0x77B1 # <CJK>
+0x25D6D 0x77A8 # <CJK>
+0x25D6E 0x77F0 # <CJK>
+0x25D6F 0x78F3 # <CJK>
+0x25D70 0x78FD # <CJK>
+0x25D71 0x7902 # <CJK>
+0x25D72 0x78FB # <CJK>
+0x25D73 0x78FC # <CJK>
+0x25D74 0x78FF # <CJK>
+0x25D75 0x78F2 # <CJK>
+0x25D76 0x7905 # <CJK>
+0x25D77 0x78F9 # <CJK>
+0x25D78 0x78FE # <CJK>
+0x25D79 0x7904 # <CJK>
+0x25D7A 0x79AB # <CJK>
+0x25D7B 0x79A8 # <CJK>
+0x25D7C 0x7A5C # <CJK>
+0x25D7D 0x7A5B # <CJK>
+0x25D7E 0x7A56 # <CJK>
+0x25E21 0x7A58 # <CJK>
+0x25E22 0x7A54 # <CJK>
+0x25E23 0x7A5A # <CJK>
+0x25E24 0x7ABE # <CJK>
+0x25E25 0x7AC0 # <CJK>
+0x25E26 0x7AC1 # <CJK>
+0x25E27 0x7C05 # <CJK>
+0x25E28 0x7C0F # <CJK>
+0x25E29 0x7BF2 # <CJK>
+0x25E2A 0x7C00 # <CJK>
+0x25E2B 0x7BFF # <CJK>
+0x25E2C 0x7BFB # <CJK>
+0x25E2D 0x7C0E # <CJK>
+0x25E2E 0x7BF4 # <CJK>
+0x25E2F 0x7C0B # <CJK>
+0x25E30 0x7BF3 # <CJK>
+0x25E31 0x7C02 # <CJK>
+0x25E32 0x7C09 # <CJK>
+0x25E33 0x7C03 # <CJK>
+0x25E34 0x7C01 # <CJK>
+0x25E35 0x7BF8 # <CJK>
+0x25E36 0x7BFD # <CJK>
+0x25E37 0x7C06 # <CJK>
+0x25E38 0x7BF0 # <CJK>
+0x25E39 0x7BF1 # <CJK>
+0x25E3A 0x7C10 # <CJK>
+0x25E3B 0x7C0A # <CJK>
+0x25E3C 0x7CE8 # <CJK>
+0x25E3D 0x7E2D # <CJK>
+0x25E3E 0x7E3C # <CJK>
+0x25E3F 0x7E42 # <CJK>
+0x25E40 0x7E33 # <CJK>
+0x25E41 0x9848 # <CJK>
+0x25E42 0x7E38 # <CJK>
+0x25E43 0x7E2A # <CJK>
+0x25E44 0x7E49 # <CJK>
+0x25E45 0x7E40 # <CJK>
+0x25E46 0x7E47 # <CJK>
+0x25E47 0x7E29 # <CJK>
+0x25E48 0x7E4C # <CJK>
+0x25E49 0x7E30 # <CJK>
+0x25E4A 0x7E3B # <CJK>
+0x25E4B 0x7E36 # <CJK>
+0x25E4C 0x7E44 # <CJK>
+0x25E4D 0x7E3A # <CJK>
+0x25E4E 0x7F45 # <CJK>
+0x25E4F 0x7F7F # <CJK>
+0x25E50 0x7F7E # <CJK>
+0x25E51 0x7F7D # <CJK>
+0x25E52 0x7FF4 # <CJK>
+0x25E53 0x7FF2 # <CJK>
+0x25E54 0x802C # <CJK>
+0x25E55 0x81BB # <CJK>
+0x25E56 0x81C4 # <CJK>
+0x25E57 0x81CC # <CJK>
+0x25E58 0x81CA # <CJK>
+0x25E59 0x81C5 # <CJK>
+0x25E5A 0x81C7 # <CJK>
+0x25E5B 0x81BC # <CJK>
+0x25E5C 0x81E9 # <CJK>
+0x25E5D 0x825B # <CJK>
+0x25E5E 0x825A # <CJK>
+0x25E5F 0x825C # <CJK>
+0x25E60 0x8583 # <CJK>
+0x25E61 0x8580 # <CJK>
+0x25E62 0x858F # <CJK>
+0x25E63 0x85A7 # <CJK>
+0x25E64 0x8595 # <CJK>
+0x25E65 0x85A0 # <CJK>
+0x25E66 0x858B # <CJK>
+0x25E67 0x85A3 # <CJK>
+0x25E68 0x857B # <CJK>
+0x25E69 0x85A4 # <CJK>
+0x25E6A 0x859A # <CJK>
+0x25E6B 0x859E # <CJK>
+0x25E6C 0x8577 # <CJK>
+0x25E6D 0x857C # <CJK>
+0x25E6E 0x8589 # <CJK>
+0x25E6F 0x85A1 # <CJK>
+0x25E70 0x857A # <CJK>
+0x25E71 0x8578 # <CJK>
+0x25E72 0x8557 # <CJK>
+0x25E73 0x858E # <CJK>
+0x25E74 0x8596 # <CJK>
+0x25E75 0x8586 # <CJK>
+0x25E76 0x858D # <CJK>
+0x25E77 0x8599 # <CJK>
+0x25E78 0x859D # <CJK>
+0x25E79 0x8581 # <CJK>
+0x25E7A 0x85A2 # <CJK>
+0x25E7B 0x8582 # <CJK>
+0x25E7C 0x8588 # <CJK>
+0x25E7D 0x8585 # <CJK>
+0x25E7E 0x8579 # <CJK>
+0x25F21 0x8576 # <CJK>
+0x25F22 0x8598 # <CJK>
+0x25F23 0x8590 # <CJK>
+0x25F24 0x859F # <CJK>
+0x25F25 0x8668 # <CJK>
+0x25F26 0x87BE # <CJK>
+0x25F27 0x87AA # <CJK>
+0x25F28 0x87AD # <CJK>
+0x25F29 0x87C5 # <CJK>
+0x25F2A 0x87B0 # <CJK>
+0x25F2B 0x87AC # <CJK>
+0x25F2C 0x87B9 # <CJK>
+0x25F2D 0x87B5 # <CJK>
+0x25F2E 0x87BC # <CJK>
+0x25F2F 0x87AE # <CJK>
+0x25F30 0x87C9 # <CJK>
+0x25F31 0x87C3 # <CJK>
+0x25F32 0x87C2 # <CJK>
+0x25F33 0x87CC # <CJK>
+0x25F34 0x87B7 # <CJK>
+0x25F35 0x87AF # <CJK>
+0x25F36 0x87C4 # <CJK>
+0x25F37 0x87CA # <CJK>
+0x25F38 0x87B4 # <CJK>
+0x25F39 0x87B6 # <CJK>
+0x25F3A 0x87BF # <CJK>
+0x25F3B 0x87B8 # <CJK>
+0x25F3C 0x87BD # <CJK>
+0x25F3D 0x87DE # <CJK>
+0x25F3E 0x87B2 # <CJK>
+0x25F3F 0x8935 # <CJK>
+0x25F40 0x8933 # <CJK>
+0x25F41 0x893C # <CJK>
+0x25F42 0x893E # <CJK>
+0x25F43 0x8941 # <CJK>
+0x25F44 0x8952 # <CJK>
+0x25F45 0x8937 # <CJK>
+0x25F46 0x8942 # <CJK>
+0x25F47 0x89AD # <CJK>
+0x25F48 0x89AF # <CJK>
+0x25F49 0x89AE # <CJK>
+0x25F4A 0x89F2 # <CJK>
+0x25F4B 0x89F3 # <CJK>
+0x25F4C 0x8B1E # <CJK>
+0x25F4D 0x8B18 # <CJK>
+0x25F4E 0x8B16 # <CJK>
+0x25F4F 0x8B11 # <CJK>
+0x25F50 0x8B05 # <CJK>
+0x25F51 0x8B0B # <CJK>
+0x25F52 0x8B22 # <CJK>
+0x25F53 0x8B0F # <CJK>
+0x25F54 0x8B12 # <CJK>
+0x25F55 0x8B15 # <CJK>
+0x25F56 0x8B07 # <CJK>
+0x25F57 0x8B0D # <CJK>
+0x25F58 0x8B08 # <CJK>
+0x25F59 0x8B06 # <CJK>
+0x25F5A 0x8B1C # <CJK>
+0x25F5B 0x8B13 # <CJK>
+0x25F5C 0x8B1A # <CJK>
+0x25F5D 0x8C4F # <CJK>
+0x25F5E 0x8C70 # <CJK>
+0x25F5F 0x8C72 # <CJK>
+0x25F60 0x8C71 # <CJK>
+0x25F61 0x8C6F # <CJK>
+0x25F62 0x8C95 # <CJK>
+0x25F63 0x8C94 # <CJK>
+0x25F64 0x8CF9 # <CJK>
+0x25F65 0x8D6F # <CJK>
+0x25F66 0x8E4E # <CJK>
+0x25F67 0x8E4D # <CJK>
+0x25F68 0x8E53 # <CJK>
+0x25F69 0x8E50 # <CJK>
+0x25F6A 0x8E4C # <CJK>
+0x25F6B 0x8E47 # <CJK>
+0x25F6C 0x8F43 # <CJK>
+0x25F6D 0x8F40 # <CJK>
+0x25F6E 0x9085 # <CJK>
+0x25F6F 0x907E # <CJK>
+0x25F70 0x9138 # <CJK>
+0x25F71 0x919A # <CJK>
+0x25F72 0x91A2 # <CJK>
+0x25F73 0x919B # <CJK>
+0x25F74 0x9199 # <CJK>
+0x25F75 0x919F # <CJK>
+0x25F76 0x91A1 # <CJK>
+0x25F77 0x919D # <CJK>
+0x25F78 0x91A0 # <CJK>
+0x25F79 0x93A1 # <CJK>
+0x25F7A 0x9383 # <CJK>
+0x25F7B 0x93AF # <CJK>
+0x25F7C 0x9364 # <CJK>
+0x25F7D 0x9356 # <CJK>
+0x25F7E 0x9347 # <CJK>
+0x26021 0x937C # <CJK>
+0x26022 0x9358 # <CJK>
+0x26023 0x935C # <CJK>
+0x26024 0x9376 # <CJK>
+0x26025 0x9349 # <CJK>
+0x26026 0x9350 # <CJK>
+0x26027 0x9351 # <CJK>
+0x26028 0x9360 # <CJK>
+0x26029 0x936D # <CJK>
+0x2602A 0x938F # <CJK>
+0x2602B 0x934C # <CJK>
+0x2602C 0x936A # <CJK>
+0x2602D 0x9379 # <CJK>
+0x2602E 0x9357 # <CJK>
+0x2602F 0x9355 # <CJK>
+0x26030 0x9352 # <CJK>
+0x26031 0x934F # <CJK>
+0x26032 0x9371 # <CJK>
+0x26033 0x9377 # <CJK>
+0x26034 0x937B # <CJK>
+0x26035 0x9361 # <CJK>
+0x26036 0x935E # <CJK>
+0x26037 0x9363 # <CJK>
+0x26038 0x9367 # <CJK>
+0x26039 0x934E # <CJK>
+0x2603A 0x9359 # <CJK>
+0x2603B 0x95C7 # <CJK>
+0x2603C 0x95C0 # <CJK>
+0x2603D 0x95C9 # <CJK>
+0x2603E 0x95C3 # <CJK>
+0x2603F 0x95C5 # <CJK>
+0x26040 0x95B7 # <CJK>
+0x26041 0x96AE # <CJK>
+0x26042 0x96B0 # <CJK>
+0x26043 0x96AC # <CJK>
+0x26044 0x9720 # <CJK>
+0x26045 0x971F # <CJK>
+0x26046 0x9718 # <CJK>
+0x26047 0x971D # <CJK>
+0x26048 0x9719 # <CJK>
+0x26049 0x979A # <CJK>
+0x2604A 0x97A1 # <CJK>
+0x2604B 0x979C # <CJK>
+0x2604C 0x979E # <CJK>
+0x2604D 0x979D # <CJK>
+0x2604E 0x97D5 # <CJK>
+0x2604F 0x97D4 # <CJK>
+0x26050 0x97F1 # <CJK>
+0x26051 0x9841 # <CJK>
+0x26052 0x9844 # <CJK>
+0x26053 0x984A # <CJK>
+0x26054 0x9849 # <CJK>
+0x26055 0x9845 # <CJK>
+0x26056 0x9843 # <CJK>
+0x26057 0x9925 # <CJK>
+0x26058 0x992B # <CJK>
+0x26059 0x992C # <CJK>
+0x2605A 0x992A # <CJK>
+0x2605B 0x9933 # <CJK>
+0x2605C 0x9932 # <CJK>
+0x2605D 0x992F # <CJK>
+0x2605E 0x992D # <CJK>
+0x2605F 0x9931 # <CJK>
+0x26060 0x9930 # <CJK>
+0x26061 0x9998 # <CJK>
+0x26062 0x99A3 # <CJK>
+0x26063 0x99A1 # <CJK>
+0x26064 0x9A02 # <CJK>
+0x26065 0x99FA # <CJK>
+0x26066 0x99F4 # <CJK>
+0x26067 0x99F7 # <CJK>
+0x26068 0x99F9 # <CJK>
+0x26069 0x99F8 # <CJK>
+0x2606A 0x99F6 # <CJK>
+0x2606B 0x99FB # <CJK>
+0x2606C 0x99FD # <CJK>
+0x2606D 0x99FE # <CJK>
+0x2606E 0x99FC # <CJK>
+0x2606F 0x9A03 # <CJK>
+0x26070 0x9ABE # <CJK>
+0x26071 0x9AFE # <CJK>
+0x26072 0x9AFD # <CJK>
+0x26073 0x9B01 # <CJK>
+0x26074 0x9AFC # <CJK>
+0x26075 0x9B48 # <CJK>
+0x26076 0x9B9A # <CJK>
+0x26077 0x9BA8 # <CJK>
+0x26078 0x9B9E # <CJK>
+0x26079 0x9B9B # <CJK>
+0x2607A 0x9BA6 # <CJK>
+0x2607B 0x9BA1 # <CJK>
+0x2607C 0x9BA5 # <CJK>
+0x2607D 0x9BA4 # <CJK>
+0x2607E 0x9B86 # <CJK>
+0x26121 0x9BA2 # <CJK>
+0x26122 0x9BA0 # <CJK>
+0x26123 0x9BAF # <CJK>
+0x26124 0x9D33 # <CJK>
+0x26125 0x9D41 # <CJK>
+0x26126 0x9D67 # <CJK>
+0x26127 0x9D36 # <CJK>
+0x26128 0x9D2E # <CJK>
+0x26129 0x9D2F # <CJK>
+0x2612A 0x9D31 # <CJK>
+0x2612B 0x9D38 # <CJK>
+0x2612C 0x9D30 # <CJK>
+0x2612D 0x9D45 # <CJK>
+0x2612E 0x9D42 # <CJK>
+0x2612F 0x9D43 # <CJK>
+0x26130 0x9D3E # <CJK>
+0x26131 0x9D37 # <CJK>
+0x26132 0x9D40 # <CJK>
+0x26133 0x9D3D # <CJK>
+0x26134 0x7FF5 # <CJK>
+0x26135 0x9D2D # <CJK>
+0x26136 0x9E8A # <CJK>
+0x26137 0x9E89 # <CJK>
+0x26138 0x9E8D # <CJK>
+0x26139 0x9EB0 # <CJK>
+0x2613A 0x9EC8 # <CJK>
+0x2613B 0x9EDA # <CJK>
+0x2613C 0x9EFB # <CJK>
+0x2613D 0x9EFF # <CJK>
+0x2613E 0x9F24 # <CJK>
+0x2613F 0x9F23 # <CJK>
+0x26140 0x9F22 # <CJK>
+0x26141 0x9F54 # <CJK>
+0x26142 0x9FA0 # <CJK>
+0x26143 0x5131 # <CJK>
+0x26144 0x512D # <CJK>
+0x26145 0x512E # <CJK>
+0x26146 0x5698 # <CJK>
+0x26147 0x569C # <CJK>
+0x26148 0x5697 # <CJK>
+0x26149 0x569A # <CJK>
+0x2614A 0x569D # <CJK>
+0x2614B 0x5699 # <CJK>
+0x2614C 0x5970 # <CJK>
+0x2614D 0x5B3C # <CJK>
+0x2614E 0x5C69 # <CJK>
+0x2614F 0x5C6A # <CJK>
+0x26150 0x5DC0 # <CJK>
+0x26151 0x5E6D # <CJK>
+0x26152 0x5E6E # <CJK>
+0x26153 0x61D8 # <CJK>
+0x26154 0x61DF # <CJK>
+0x26155 0x61ED # <CJK>
+0x26156 0x61EE # <CJK>
+0x26157 0x61F1 # <CJK>
+0x26158 0x61EA # <CJK>
+0x26159 0x61F0 # <CJK>
+0x2615A 0x61EB # <CJK>
+0x2615B 0x61D6 # <CJK>
+0x2615C 0x61E9 # <CJK>
+0x2615D 0x64FF # <CJK>
+0x2615E 0x6504 # <CJK>
+0x2615F 0x64FD # <CJK>
+0x26160 0x64F8 # <CJK>
+0x26161 0x6501 # <CJK>
+0x26162 0x6503 # <CJK>
+0x26163 0x64FC # <CJK>
+0x26164 0x6594 # <CJK>
+0x26165 0x65DB # <CJK>
+0x26166 0x66DA # <CJK>
+0x26167 0x66DB # <CJK>
+0x26168 0x66D8 # <CJK>
+0x26169 0x6AC5 # <CJK>
+0x2616A 0x6AB9 # <CJK>
+0x2616B 0x6ABD # <CJK>
+0x2616C 0x6AE1 # <CJK>
+0x2616D 0x6AC6 # <CJK>
+0x2616E 0x6ABA # <CJK>
+0x2616F 0x6AB6 # <CJK>
+0x26170 0x6AB7 # <CJK>
+0x26171 0x6AC7 # <CJK>
+0x26172 0x6AB4 # <CJK>
+0x26173 0x6AAD # <CJK>
+0x26174 0x6B5E # <CJK>
+0x26175 0x6BC9 # <CJK>
+0x26176 0x6C0B # <CJK>
+0x26177 0x7007 # <CJK>
+0x26178 0x700C # <CJK>
+0x26179 0x700D # <CJK>
+0x2617A 0x7001 # <CJK>
+0x2617B 0x7005 # <CJK>
+0x2617C 0x7014 # <CJK>
+0x2617D 0x700E # <CJK>
+0x2617E 0x6FFF # <CJK>
+0x26221 0x7000 # <CJK>
+0x26222 0x6FFB # <CJK>
+0x26223 0x7026 # <CJK>
+0x26224 0x6FFC # <CJK>
+0x26225 0x6FF7 # <CJK>
+0x26226 0x700A # <CJK>
+0x26227 0x7201 # <CJK>
+0x26228 0x71FF # <CJK>
+0x26229 0x71F9 # <CJK>
+0x2622A 0x7203 # <CJK>
+0x2622B 0x71FD # <CJK>
+0x2622C 0x7376 # <CJK>
+0x2622D 0x74B8 # <CJK>
+0x2622E 0x74C0 # <CJK>
+0x2622F 0x74B5 # <CJK>
+0x26230 0x74C1 # <CJK>
+0x26231 0x74BE # <CJK>
+0x26232 0x74B6 # <CJK>
+0x26233 0x74BB # <CJK>
+0x26234 0x74C2 # <CJK>
+0x26235 0x7514 # <CJK>
+0x26236 0x7513 # <CJK>
+0x26237 0x765C # <CJK>
+0x26238 0x7664 # <CJK>
+0x26239 0x7659 # <CJK>
+0x2623A 0x7650 # <CJK>
+0x2623B 0x7653 # <CJK>
+0x2623C 0x7657 # <CJK>
+0x2623D 0x765A # <CJK>
+0x2623E 0x76A6 # <CJK>
+0x2623F 0x76BD # <CJK>
+0x26240 0x76EC # <CJK>
+0x26241 0x77C2 # <CJK>
+0x26242 0x77BA # <CJK>
+0x26243 0x790C # <CJK>
+0x26244 0x7913 # <CJK>
+0x26245 0x7914 # <CJK>
+0x26246 0x7909 # <CJK>
+0x26247 0x7910 # <CJK>
+0x26248 0x7912 # <CJK>
+0x26249 0x7911 # <CJK>
+0x2624A 0x79AD # <CJK>
+0x2624B 0x79AC # <CJK>
+0x2624C 0x7A5F # <CJK>
+0x2624D 0x7C1C # <CJK>
+0x2624E 0x7C29 # <CJK>
+0x2624F 0x7C19 # <CJK>
+0x26250 0x7C20 # <CJK>
+0x26251 0x7C1F # <CJK>
+0x26252 0x7C2D # <CJK>
+0x26253 0x7C1D # <CJK>
+0x26254 0x7C26 # <CJK>
+0x26255 0x7C28 # <CJK>
+0x26256 0x7C22 # <CJK>
+0x26257 0x7C25 # <CJK>
+0x26258 0x7C30 # <CJK>
+0x26259 0x7E5C # <CJK>
+0x2625A 0x7E50 # <CJK>
+0x2625B 0x7E56 # <CJK>
+0x2625C 0x7E63 # <CJK>
+0x2625D 0x7E58 # <CJK>
+0x2625E 0x7E62 # <CJK>
+0x2625F 0x7E5F # <CJK>
+0x26260 0x7E51 # <CJK>
+0x26261 0x7E60 # <CJK>
+0x26262 0x7E57 # <CJK>
+0x26263 0x7E53 # <CJK>
+0x26264 0x7FB5 # <CJK>
+0x26265 0x7FB3 # <CJK>
+0x26266 0x7FF7 # <CJK>
+0x26267 0x7FF8 # <CJK>
+0x26268 0x8075 # <CJK>
+0x26269 0x81D1 # <CJK>
+0x2626A 0x81D2 # <CJK>
+0x2626B 0x81D0 # <CJK>
+0x2626C 0x825F # <CJK>
+0x2626D 0x825E # <CJK>
+0x2626E 0x85B4 # <CJK>
+0x2626F 0x85C6 # <CJK>
+0x26270 0x85C0 # <CJK>
+0x26271 0x85C3 # <CJK>
+0x26272 0x85C2 # <CJK>
+0x26273 0x85B3 # <CJK>
+0x26274 0x85B5 # <CJK>
+0x26275 0x85BD # <CJK>
+0x26276 0x85C7 # <CJK>
+0x26277 0x85C4 # <CJK>
+0x26278 0x85BF # <CJK>
+0x26279 0x85CB # <CJK>
+0x2627A 0x85CE # <CJK>
+0x2627B 0x85C8 # <CJK>
+0x2627C 0x85C5 # <CJK>
+0x2627D 0x85B1 # <CJK>
+0x2627E 0x85B6 # <CJK>
+0x26321 0x85D2 # <CJK>
+0x26322 0x8624 # <CJK>
+0x26323 0x85B8 # <CJK>
+0x26324 0x85B7 # <CJK>
+0x26325 0x85BE # <CJK>
+0x26326 0x8669 # <CJK>
+0x26327 0x87E7 # <CJK>
+0x26328 0x87E6 # <CJK>
+0x26329 0x87E2 # <CJK>
+0x2632A 0x87DB # <CJK>
+0x2632B 0x87EB # <CJK>
+0x2632C 0x87EA # <CJK>
+0x2632D 0x87E5 # <CJK>
+0x2632E 0x87DF # <CJK>
+0x2632F 0x87F3 # <CJK>
+0x26330 0x87E4 # <CJK>
+0x26331 0x87D4 # <CJK>
+0x26332 0x87DC # <CJK>
+0x26333 0x87D3 # <CJK>
+0x26334 0x87ED # <CJK>
+0x26335 0x87D8 # <CJK>
+0x26336 0x87E3 # <CJK>
+0x26337 0x87D7 # <CJK>
+0x26338 0x87D9 # <CJK>
+0x26339 0x8801 # <CJK>
+0x2633A 0x87F4 # <CJK>
+0x2633B 0x87E8 # <CJK>
+0x2633C 0x87DD # <CJK>
+0x2633D 0x8953 # <CJK>
+0x2633E 0x894B # <CJK>
+0x2633F 0x894F # <CJK>
+0x26340 0x894C # <CJK>
+0x26341 0x8946 # <CJK>
+0x26342 0x8950 # <CJK>
+0x26343 0x8951 # <CJK>
+0x26344 0x8949 # <CJK>
+0x26345 0x8B2A # <CJK>
+0x26346 0x8B27 # <CJK>
+0x26347 0x8B23 # <CJK>
+0x26348 0x8B33 # <CJK>
+0x26349 0x8B30 # <CJK>
+0x2634A 0x8B35 # <CJK>
+0x2634B 0x8B47 # <CJK>
+0x2634C 0x8B2F # <CJK>
+0x2634D 0x8B3C # <CJK>
+0x2634E 0x8B3E # <CJK>
+0x2634F 0x8B31 # <CJK>
+0x26350 0x8B25 # <CJK>
+0x26351 0x8B37 # <CJK>
+0x26352 0x8B26 # <CJK>
+0x26353 0x8B36 # <CJK>
+0x26354 0x8B2E # <CJK>
+0x26355 0x8B24 # <CJK>
+0x26356 0x8B3B # <CJK>
+0x26357 0x8B3D # <CJK>
+0x26358 0x8B3A # <CJK>
+0x26359 0x8C42 # <CJK>
+0x2635A 0x8C75 # <CJK>
+0x2635B 0x8C99 # <CJK>
+0x2635C 0x8C98 # <CJK>
+0x2635D 0x8C97 # <CJK>
+0x2635E 0x8CFE # <CJK>
+0x2635F 0x8D04 # <CJK>
+0x26360 0x8D02 # <CJK>
+0x26361 0x8D00 # <CJK>
+0x26362 0x8E5C # <CJK>
+0x26363 0x8E62 # <CJK>
+0x26364 0x8E60 # <CJK>
+0x26365 0x8E57 # <CJK>
+0x26366 0x8E56 # <CJK>
+0x26367 0x8E5E # <CJK>
+0x26368 0x8E65 # <CJK>
+0x26369 0x8E67 # <CJK>
+0x2636A 0x8E5B # <CJK>
+0x2636B 0x8E5A # <CJK>
+0x2636C 0x8E61 # <CJK>
+0x2636D 0x8E5D # <CJK>
+0x2636E 0x8E69 # <CJK>
+0x2636F 0x8E54 # <CJK>
+0x26370 0x8F46 # <CJK>
+0x26371 0x8F47 # <CJK>
+0x26372 0x8F48 # <CJK>
+0x26373 0x8F4B # <CJK>
+0x26374 0x9128 # <CJK>
+0x26375 0x913A # <CJK>
+0x26376 0x913B # <CJK>
+0x26377 0x913E # <CJK>
+0x26378 0x91A8 # <CJK>
+0x26379 0x91A5 # <CJK>
+0x2637A 0x91A7 # <CJK>
+0x2637B 0x91AF # <CJK>
+0x2637C 0x91AA # <CJK>
+0x2637D 0x93B5 # <CJK>
+0x2637E 0x938C # <CJK>
+0x26421 0x9392 # <CJK>
+0x26422 0x93B7 # <CJK>
+0x26423 0x939B # <CJK>
+0x26424 0x939D # <CJK>
+0x26425 0x9389 # <CJK>
+0x26426 0x93A7 # <CJK>
+0x26427 0x938E # <CJK>
+0x26428 0x93AA # <CJK>
+0x26429 0x939E # <CJK>
+0x2642A 0x93A6 # <CJK>
+0x2642B 0x9395 # <CJK>
+0x2642C 0x9388 # <CJK>
+0x2642D 0x9399 # <CJK>
+0x2642E 0x939F # <CJK>
+0x2642F 0x9380 # <CJK>
+0x26430 0x938D # <CJK>
+0x26431 0x93B1 # <CJK>
+0x26432 0x9391 # <CJK>
+0x26433 0x93B2 # <CJK>
+0x26434 0x93A4 # <CJK>
+0x26435 0x93A8 # <CJK>
+0x26436 0x93B4 # <CJK>
+0x26437 0x93A3 # <CJK>
+0x26438 0x95D2 # <CJK>
+0x26439 0x95D3 # <CJK>
+0x2643A 0x95D1 # <CJK>
+0x2643B 0x96B3 # <CJK>
+0x2643C 0x96D7 # <CJK>
+0x2643D 0x96DA # <CJK>
+0x2643E 0x5DC2 # <CJK>
+0x2643F 0x96DF # <CJK>
+0x26440 0x96D8 # <CJK>
+0x26441 0x96DD # <CJK>
+0x26442 0x9723 # <CJK>
+0x26443 0x9722 # <CJK>
+0x26444 0x9725 # <CJK>
+0x26445 0x97AC # <CJK>
+0x26446 0x97AE # <CJK>
+0x26447 0x97A8 # <CJK>
+0x26448 0x97AB # <CJK>
+0x26449 0x97A4 # <CJK>
+0x2644A 0x97AA # <CJK>
+0x2644B 0x97A2 # <CJK>
+0x2644C 0x97A5 # <CJK>
+0x2644D 0x97D7 # <CJK>
+0x2644E 0x97D9 # <CJK>
+0x2644F 0x97D6 # <CJK>
+0x26450 0x97D8 # <CJK>
+0x26451 0x97FA # <CJK>
+0x26452 0x9850 # <CJK>
+0x26453 0x9851 # <CJK>
+0x26454 0x9852 # <CJK>
+0x26455 0x98B8 # <CJK>
+0x26456 0x9941 # <CJK>
+0x26457 0x993C # <CJK>
+0x26458 0x993A # <CJK>
+0x26459 0x9A0F # <CJK>
+0x2645A 0x9A0B # <CJK>
+0x2645B 0x9A09 # <CJK>
+0x2645C 0x9A0D # <CJK>
+0x2645D 0x9A04 # <CJK>
+0x2645E 0x9A11 # <CJK>
+0x2645F 0x9A0A # <CJK>
+0x26460 0x9A05 # <CJK>
+0x26461 0x9A07 # <CJK>
+0x26462 0x9A06 # <CJK>
+0x26463 0x9AC0 # <CJK>
+0x26464 0x9ADC # <CJK>
+0x26465 0x9B08 # <CJK>
+0x26466 0x9B04 # <CJK>
+0x26467 0x9B05 # <CJK>
+0x26468 0x9B29 # <CJK>
+0x26469 0x9B35 # <CJK>
+0x2646A 0x9B4A # <CJK>
+0x2646B 0x9B4C # <CJK>
+0x2646C 0x9B4B # <CJK>
+0x2646D 0x9BC7 # <CJK>
+0x2646E 0x9BC6 # <CJK>
+0x2646F 0x9BC3 # <CJK>
+0x26470 0x9BBF # <CJK>
+0x26471 0x9BC1 # <CJK>
+0x26472 0x9BB5 # <CJK>
+0x26473 0x9BB8 # <CJK>
+0x26474 0x9BD3 # <CJK>
+0x26475 0x9BB6 # <CJK>
+0x26476 0x9BC4 # <CJK>
+0x26477 0x9BB9 # <CJK>
+0x26478 0x9BBD # <CJK>
+0x26479 0x9D5C # <CJK>
+0x2647A 0x9D53 # <CJK>
+0x2647B 0x9D4F # <CJK>
+0x2647C 0x9D4A # <CJK>
+0x2647D 0x9D5B # <CJK>
+0x2647E 0x9D4B # <CJK>
+0x26521 0x9D59 # <CJK>
+0x26522 0x9D56 # <CJK>
+0x26523 0x9D4C # <CJK>
+0x26524 0x9D57 # <CJK>
+0x26525 0x9D52 # <CJK>
+0x26526 0x9D54 # <CJK>
+0x26527 0x9D5F # <CJK>
+0x26528 0x9D58 # <CJK>
+0x26529 0x9D5A # <CJK>
+0x2652A 0x9E8E # <CJK>
+0x2652B 0x9E8C # <CJK>
+0x2652C 0x9EDF # <CJK>
+0x2652D 0x9F01 # <CJK>
+0x2652E 0x9F00 # <CJK>
+0x2652F 0x9F16 # <CJK>
+0x26530 0x9F25 # <CJK>
+0x26531 0x9F2B # <CJK>
+0x26532 0x9F2A # <CJK>
+0x26533 0x9F29 # <CJK>
+0x26534 0x9F28 # <CJK>
+0x26535 0x9F4C # <CJK>
+0x26536 0x9F55 # <CJK>
+0x26537 0x5134 # <CJK>
+0x26538 0x5135 # <CJK>
+0x26539 0x5296 # <CJK>
+0x2653A 0x52F7 # <CJK>
+0x2653B 0x53B4 # <CJK>
+0x2653C 0x56AB # <CJK>
+0x2653D 0x56AD # <CJK>
+0x2653E 0x56A6 # <CJK>
+0x2653F 0x56A7 # <CJK>
+0x26540 0x56AA # <CJK>
+0x26541 0x56AC # <CJK>
+0x26542 0x58DA # <CJK>
+0x26543 0x58DD # <CJK>
+0x26544 0x58DB # <CJK>
+0x26545 0x5912 # <CJK>
+0x26546 0x5B3D # <CJK>
+0x26547 0x5B3E # <CJK>
+0x26548 0x5B3F # <CJK>
+0x26549 0x5DC3 # <CJK>
+0x2654A 0x5E70 # <CJK>
+0x2654B 0x5FBF # <CJK>
+0x2654C 0x61FB # <CJK>
+0x2654D 0x6507 # <CJK>
+0x2654E 0x6510 # <CJK>
+0x2654F 0x650D # <CJK>
+0x26550 0x6509 # <CJK>
+0x26551 0x650C # <CJK>
+0x26552 0x650E # <CJK>
+0x26553 0x6584 # <CJK>
+0x26554 0x65DE # <CJK>
+0x26555 0x65DD # <CJK>
+0x26556 0x66DE # <CJK>
+0x26557 0x6AE7 # <CJK>
+0x26558 0x6AE0 # <CJK>
+0x26559 0x6ACC # <CJK>
+0x2655A 0x6AD1 # <CJK>
+0x2655B 0x6AD9 # <CJK>
+0x2655C 0x6ACB # <CJK>
+0x2655D 0x6ADF # <CJK>
+0x2655E 0x6ADC # <CJK>
+0x2655F 0x6AD0 # <CJK>
+0x26560 0x6AEB # <CJK>
+0x26561 0x6ACF # <CJK>
+0x26562 0x6ACD # <CJK>
+0x26563 0x6ADE # <CJK>
+0x26564 0x6B60 # <CJK>
+0x26565 0x6BB0 # <CJK>
+0x26566 0x6C0C # <CJK>
+0x26567 0x7019 # <CJK>
+0x26568 0x7027 # <CJK>
+0x26569 0x7020 # <CJK>
+0x2656A 0x7016 # <CJK>
+0x2656B 0x702B # <CJK>
+0x2656C 0x7021 # <CJK>
+0x2656D 0x7022 # <CJK>
+0x2656E 0x7023 # <CJK>
+0x2656F 0x7029 # <CJK>
+0x26570 0x7017 # <CJK>
+0x26571 0x7024 # <CJK>
+0x26572 0x701C # <CJK>
+0x26573 0x720C # <CJK>
+0x26574 0x720A # <CJK>
+0x26575 0x7207 # <CJK>
+0x26576 0x7202 # <CJK>
+0x26577 0x7205 # <CJK>
+0x26578 0x72A5 # <CJK>
+0x26579 0x72A6 # <CJK>
+0x2657A 0x72A4 # <CJK>
+0x2657B 0x72A3 # <CJK>
+0x2657C 0x72A1 # <CJK>
+0x2657D 0x74CB # <CJK>
+0x2657E 0x74C5 # <CJK>
+0x26621 0x74B7 # <CJK>
+0x26622 0x74C3 # <CJK>
+0x26623 0x7516 # <CJK>
+0x26624 0x7660 # <CJK>
+0x26625 0x77C9 # <CJK>
+0x26626 0x77CA # <CJK>
+0x26627 0x77C4 # <CJK>
+0x26628 0x77F1 # <CJK>
+0x26629 0x791D # <CJK>
+0x2662A 0x791B # <CJK>
+0x2662B 0x7921 # <CJK>
+0x2662C 0x791C # <CJK>
+0x2662D 0x7917 # <CJK>
+0x2662E 0x791E # <CJK>
+0x2662F 0x79B0 # <CJK>
+0x26630 0x7A67 # <CJK>
+0x26631 0x7A68 # <CJK>
+0x26632 0x7C33 # <CJK>
+0x26633 0x7C3C # <CJK>
+0x26634 0x7C39 # <CJK>
+0x26635 0x7C2C # <CJK>
+0x26636 0x7C3B # <CJK>
+0x26637 0x7CEC # <CJK>
+0x26638 0x7CEA # <CJK>
+0x26639 0x7E76 # <CJK>
+0x2663A 0x7E75 # <CJK>
+0x2663B 0x7E78 # <CJK>
+0x2663C 0x7E70 # <CJK>
+0x2663D 0x7E77 # <CJK>
+0x2663E 0x7E6F # <CJK>
+0x2663F 0x7E7A # <CJK>
+0x26640 0x7E72 # <CJK>
+0x26641 0x7E74 # <CJK>
+0x26642 0x7E68 # <CJK>
+0x26643 0x7F4B # <CJK>
+0x26644 0x7F4A # <CJK>
+0x26645 0x7F83 # <CJK>
+0x26646 0x7F86 # <CJK>
+0x26647 0x7FB7 # <CJK>
+0x26648 0x7FFD # <CJK>
+0x26649 0x7FFE # <CJK>
+0x2664A 0x8078 # <CJK>
+0x2664B 0x81D7 # <CJK>
+0x2664C 0x81D5 # <CJK>
+0x2664D 0x820B # <CJK>
+0x2664E 0x8264 # <CJK>
+0x2664F 0x8261 # <CJK>
+0x26650 0x8263 # <CJK>
+0x26651 0x85EB # <CJK>
+0x26652 0x85F1 # <CJK>
+0x26653 0x85ED # <CJK>
+0x26654 0x85D9 # <CJK>
+0x26655 0x85E1 # <CJK>
+0x26656 0x85E8 # <CJK>
+0x26657 0x85DA # <CJK>
+0x26658 0x85D7 # <CJK>
+0x26659 0x85EC # <CJK>
+0x2665A 0x85F2 # <CJK>
+0x2665B 0x85F8 # <CJK>
+0x2665C 0x85D8 # <CJK>
+0x2665D 0x85DF # <CJK>
+0x2665E 0x85E3 # <CJK>
+0x2665F 0x85DC # <CJK>
+0x26660 0x85D1 # <CJK>
+0x26661 0x85F0 # <CJK>
+0x26662 0x85E6 # <CJK>
+0x26663 0x85EF # <CJK>
+0x26664 0x85DE # <CJK>
+0x26665 0x85E2 # <CJK>
+0x26666 0x8800 # <CJK>
+0x26667 0x87FA # <CJK>
+0x26668 0x8803 # <CJK>
+0x26669 0x87F6 # <CJK>
+0x2666A 0x87F7 # <CJK>
+0x2666B 0x8809 # <CJK>
+0x2666C 0x880C # <CJK>
+0x2666D 0x880B # <CJK>
+0x2666E 0x8806 # <CJK>
+0x2666F 0x87FC # <CJK>
+0x26670 0x8808 # <CJK>
+0x26671 0x87FF # <CJK>
+0x26672 0x880A # <CJK>
+0x26673 0x8802 # <CJK>
+0x26674 0x8962 # <CJK>
+0x26675 0x895A # <CJK>
+0x26676 0x895B # <CJK>
+0x26677 0x8957 # <CJK>
+0x26678 0x8961 # <CJK>
+0x26679 0x895C # <CJK>
+0x2667A 0x8958 # <CJK>
+0x2667B 0x895D # <CJK>
+0x2667C 0x8959 # <CJK>
+0x2667D 0x8988 # <CJK>
+0x2667E 0x89B7 # <CJK>
+0x26721 0x89B6 # <CJK>
+0x26722 0x89F6 # <CJK>
+0x26723 0x8B50 # <CJK>
+0x26724 0x8B48 # <CJK>
+0x26725 0x8B4A # <CJK>
+0x26726 0x8B40 # <CJK>
+0x26727 0x8B53 # <CJK>
+0x26728 0x8B56 # <CJK>
+0x26729 0x8B54 # <CJK>
+0x2672A 0x8B4B # <CJK>
+0x2672B 0x8B55 # <CJK>
+0x2672C 0x8B51 # <CJK>
+0x2672D 0x8B42 # <CJK>
+0x2672E 0x8B52 # <CJK>
+0x2672F 0x8B57 # <CJK>
+0x26730 0x8C43 # <CJK>
+0x26731 0x8C77 # <CJK>
+0x26732 0x8C76 # <CJK>
+0x26733 0x8C9A # <CJK>
+0x26734 0x8D06 # <CJK>
+0x26735 0x8D07 # <CJK>
+0x26736 0x8D09 # <CJK>
+0x26737 0x8DAC # <CJK>
+0x26738 0x8DAA # <CJK>
+0x26739 0x8DAD # <CJK>
+0x2673A 0x8DAB # <CJK>
+0x2673B 0x8E6D # <CJK>
+0x2673C 0x8E78 # <CJK>
+0x2673D 0x8E73 # <CJK>
+0x2673E 0x8E6A # <CJK>
+0x2673F 0x8E6F # <CJK>
+0x26740 0x8E7B # <CJK>
+0x26741 0x8EC2 # <CJK>
+0x26742 0x8F52 # <CJK>
+0x26743 0x8F51 # <CJK>
+0x26744 0x8F4F # <CJK>
+0x26745 0x8F50 # <CJK>
+0x26746 0x8F53 # <CJK>
+0x26747 0x8FB4 # <CJK>
+0x26748 0x9140 # <CJK>
+0x26749 0x913F # <CJK>
+0x2674A 0x91B0 # <CJK>
+0x2674B 0x91AD # <CJK>
+0x2674C 0x93DE # <CJK>
+0x2674D 0x93C7 # <CJK>
+0x2674E 0x93CF # <CJK>
+0x2674F 0x93C2 # <CJK>
+0x26750 0x93DA # <CJK>
+0x26751 0x93D0 # <CJK>
+0x26752 0x93F9 # <CJK>
+0x26753 0x93EC # <CJK>
+0x26754 0x93CC # <CJK>
+0x26755 0x93D9 # <CJK>
+0x26756 0x93A9 # <CJK>
+0x26757 0x93E6 # <CJK>
+0x26758 0x93CA # <CJK>
+0x26759 0x93D4 # <CJK>
+0x2675A 0x93EE # <CJK>
+0x2675B 0x93E3 # <CJK>
+0x2675C 0x93D5 # <CJK>
+0x2675D 0x93C4 # <CJK>
+0x2675E 0x93CE # <CJK>
+0x2675F 0x93C0 # <CJK>
+0x26760 0x93D2 # <CJK>
+0x26761 0x93A5 # <CJK>
+0x26762 0x93E7 # <CJK>
+0x26763 0x957D # <CJK>
+0x26764 0x95DA # <CJK>
+0x26765 0x95DB # <CJK>
+0x26766 0x96E1 # <CJK>
+0x26767 0x9729 # <CJK>
+0x26768 0x972B # <CJK>
+0x26769 0x972C # <CJK>
+0x2676A 0x9728 # <CJK>
+0x2676B 0x9726 # <CJK>
+0x2676C 0x97B3 # <CJK>
+0x2676D 0x97B7 # <CJK>
+0x2676E 0x97B6 # <CJK>
+0x2676F 0x97DD # <CJK>
+0x26770 0x97DE # <CJK>
+0x26771 0x97DF # <CJK>
+0x26772 0x985C # <CJK>
+0x26773 0x9859 # <CJK>
+0x26774 0x985D # <CJK>
+0x26775 0x9857 # <CJK>
+0x26776 0x98BF # <CJK>
+0x26777 0x98BD # <CJK>
+0x26778 0x98BB # <CJK>
+0x26779 0x98BE # <CJK>
+0x2677A 0x9948 # <CJK>
+0x2677B 0x9947 # <CJK>
+0x2677C 0x9943 # <CJK>
+0x2677D 0x99A6 # <CJK>
+0x2677E 0x99A7 # <CJK>
+0x26821 0x9A1A # <CJK>
+0x26822 0x9A15 # <CJK>
+0x26823 0x9A25 # <CJK>
+0x26824 0x9A1D # <CJK>
+0x26825 0x9A24 # <CJK>
+0x26826 0x9A1B # <CJK>
+0x26827 0x9A22 # <CJK>
+0x26828 0x9A20 # <CJK>
+0x26829 0x9A27 # <CJK>
+0x2682A 0x9A23 # <CJK>
+0x2682B 0x9A1E # <CJK>
+0x2682C 0x9A1C # <CJK>
+0x2682D 0x9A14 # <CJK>
+0x2682E 0x9AC2 # <CJK>
+0x2682F 0x9B0B # <CJK>
+0x26830 0x9B0A # <CJK>
+0x26831 0x9B0E # <CJK>
+0x26832 0x9B0C # <CJK>
+0x26833 0x9B37 # <CJK>
+0x26834 0x9BEA # <CJK>
+0x26835 0x9BEB # <CJK>
+0x26836 0x9BE0 # <CJK>
+0x26837 0x9BDE # <CJK>
+0x26838 0x9BE4 # <CJK>
+0x26839 0x9BE6 # <CJK>
+0x2683A 0x9BE2 # <CJK>
+0x2683B 0x9BF0 # <CJK>
+0x2683C 0x9BD4 # <CJK>
+0x2683D 0x9BD7 # <CJK>
+0x2683E 0x9BEC # <CJK>
+0x2683F 0x9BDC # <CJK>
+0x26840 0x9BD9 # <CJK>
+0x26841 0x9BE5 # <CJK>
+0x26842 0x9BD5 # <CJK>
+0x26843 0x9BE1 # <CJK>
+0x26844 0x9BDA # <CJK>
+0x26845 0x9D77 # <CJK>
+0x26846 0x9D81 # <CJK>
+0x26847 0x9D8A # <CJK>
+0x26848 0x9D84 # <CJK>
+0x26849 0x9D88 # <CJK>
+0x2684A 0x9D71 # <CJK>
+0x2684B 0x9D80 # <CJK>
+0x2684C 0x9D78 # <CJK>
+0x2684D 0x9D86 # <CJK>
+0x2684E 0x9D8B # <CJK>
+0x2684F 0x9D8C # <CJK>
+0x26850 0x9D7D # <CJK>
+0x26851 0x9D6B # <CJK>
+0x26852 0x9D74 # <CJK>
+0x26853 0x9D75 # <CJK>
+0x26854 0x9D70 # <CJK>
+0x26855 0x9D69 # <CJK>
+0x26856 0x9D85 # <CJK>
+0x26857 0x9D73 # <CJK>
+0x26858 0x9D7B # <CJK>
+0x26859 0x9D82 # <CJK>
+0x2685A 0x9D6F # <CJK>
+0x2685B 0x9D79 # <CJK>
+0x2685C 0x9D7F # <CJK>
+0x2685D 0x9D87 # <CJK>
+0x2685E 0x9D68 # <CJK>
+0x2685F 0x9E94 # <CJK>
+0x26860 0x9E91 # <CJK>
+0x26861 0x9EC0 # <CJK>
+0x26862 0x9EFC # <CJK>
+0x26863 0x9F2D # <CJK>
+0x26864 0x9F40 # <CJK>
+0x26865 0x9F41 # <CJK>
+0x26866 0x9F4D # <CJK>
+0x26867 0x9F56 # <CJK>
+0x26868 0x9F57 # <CJK>
+0x26869 0x9F58 # <CJK>
+0x2686A 0x5337 # <CJK>
+0x2686B 0x56B2 # <CJK>
+0x2686C 0x56B5 # <CJK>
+0x2686D 0x56B3 # <CJK>
+0x2686E 0x58E3 # <CJK>
+0x2686F 0x5B45 # <CJK>
+0x26870 0x5DC6 # <CJK>
+0x26871 0x5DC7 # <CJK>
+0x26872 0x5EEE # <CJK>
+0x26873 0x5EEF # <CJK>
+0x26874 0x5FC0 # <CJK>
+0x26875 0x5FC1 # <CJK>
+0x26876 0x61F9 # <CJK>
+0x26877 0x6517 # <CJK>
+0x26878 0x6516 # <CJK>
+0x26879 0x6515 # <CJK>
+0x2687A 0x6513 # <CJK>
+0x2687B 0x65DF # <CJK>
+0x2687C 0x66E8 # <CJK>
+0x2687D 0x66E3 # <CJK>
+0x2687E 0x66E4 # <CJK>
+0x26921 0x6AF3 # <CJK>
+0x26922 0x6AF0 # <CJK>
+0x26923 0x6AEA # <CJK>
+0x26924 0x6AE8 # <CJK>
+0x26925 0x6AF9 # <CJK>
+0x26926 0x6AF1 # <CJK>
+0x26927 0x6AEE # <CJK>
+0x26928 0x6AEF # <CJK>
+0x26929 0x703C # <CJK>
+0x2692A 0x7035 # <CJK>
+0x2692B 0x702F # <CJK>
+0x2692C 0x7037 # <CJK>
+0x2692D 0x7034 # <CJK>
+0x2692E 0x7031 # <CJK>
+0x2692F 0x7042 # <CJK>
+0x26930 0x7038 # <CJK>
+0x26931 0x703F # <CJK>
+0x26932 0x703A # <CJK>
+0x26933 0x7039 # <CJK>
+0x26934 0x702A # <CJK>
+0x26935 0x7040 # <CJK>
+0x26936 0x703B # <CJK>
+0x26937 0x7033 # <CJK>
+0x26938 0x7041 # <CJK>
+0x26939 0x7213 # <CJK>
+0x2693A 0x7214 # <CJK>
+0x2693B 0x72A8 # <CJK>
+0x2693C 0x737D # <CJK>
+0x2693D 0x737C # <CJK>
+0x2693E 0x74BA # <CJK>
+0x2693F 0x76AB # <CJK>
+0x26940 0x76AA # <CJK>
+0x26941 0x76BE # <CJK>
+0x26942 0x76ED # <CJK>
+0x26943 0x77CC # <CJK>
+0x26944 0x77CE # <CJK>
+0x26945 0x77CF # <CJK>
+0x26946 0x77CD # <CJK>
+0x26947 0x77F2 # <CJK>
+0x26948 0x7925 # <CJK>
+0x26949 0x7923 # <CJK>
+0x2694A 0x7927 # <CJK>
+0x2694B 0x7928 # <CJK>
+0x2694C 0x7924 # <CJK>
+0x2694D 0x7929 # <CJK>
+0x2694E 0x79B2 # <CJK>
+0x2694F 0x7A6E # <CJK>
+0x26950 0x7A6C # <CJK>
+0x26951 0x7A6D # <CJK>
+0x26952 0x7AF7 # <CJK>
+0x26953 0x7C49 # <CJK>
+0x26954 0x7C48 # <CJK>
+0x26955 0x7C4A # <CJK>
+0x26956 0x7C47 # <CJK>
+0x26957 0x7C45 # <CJK>
+0x26958 0x7CEE # <CJK>
+0x26959 0x7E7B # <CJK>
+0x2695A 0x7E7E # <CJK>
+0x2695B 0x7E81 # <CJK>
+0x2695C 0x7E80 # <CJK>
+0x2695D 0x7FBA # <CJK>
+0x2695E 0x7FFF # <CJK>
+0x2695F 0x8079 # <CJK>
+0x26960 0x81DB # <CJK>
+0x26961 0x81D9 # <CJK>
+0x26962 0x8268 # <CJK>
+0x26963 0x8269 # <CJK>
+0x26964 0x8622 # <CJK>
+0x26965 0x85FF # <CJK>
+0x26966 0x8601 # <CJK>
+0x26967 0x85FE # <CJK>
+0x26968 0x861B # <CJK>
+0x26969 0x8600 # <CJK>
+0x2696A 0x85F6 # <CJK>
+0x2696B 0x8604 # <CJK>
+0x2696C 0x8609 # <CJK>
+0x2696D 0x8605 # <CJK>
+0x2696E 0x860C # <CJK>
+0x2696F 0x85FD # <CJK>
+0x26970 0x8819 # <CJK>
+0x26971 0x8810 # <CJK>
+0x26972 0x8811 # <CJK>
+0x26973 0x8817 # <CJK>
+0x26974 0x8813 # <CJK>
+0x26975 0x8816 # <CJK>
+0x26976 0x8963 # <CJK>
+0x26977 0x8966 # <CJK>
+0x26978 0x89B9 # <CJK>
+0x26979 0x89F7 # <CJK>
+0x2697A 0x8B60 # <CJK>
+0x2697B 0x8B6A # <CJK>
+0x2697C 0x8B5D # <CJK>
+0x2697D 0x8B68 # <CJK>
+0x2697E 0x8B63 # <CJK>
+0x26A21 0x8B65 # <CJK>
+0x26A22 0x8B67 # <CJK>
+0x26A23 0x8B6D # <CJK>
+0x26A24 0x8DAE # <CJK>
+0x26A25 0x8E86 # <CJK>
+0x26A26 0x8E88 # <CJK>
+0x26A27 0x8E84 # <CJK>
+0x26A28 0x8F59 # <CJK>
+0x26A29 0x8F56 # <CJK>
+0x26A2A 0x8F57 # <CJK>
+0x26A2B 0x8F55 # <CJK>
+0x26A2C 0x8F58 # <CJK>
+0x26A2D 0x8F5A # <CJK>
+0x26A2E 0x908D # <CJK>
+0x26A2F 0x9143 # <CJK>
+0x26A30 0x9141 # <CJK>
+0x26A31 0x91B7 # <CJK>
+0x26A32 0x91B5 # <CJK>
+0x26A33 0x91B2 # <CJK>
+0x26A34 0x91B3 # <CJK>
+0x26A35 0x940B # <CJK>
+0x26A36 0x9413 # <CJK>
+0x26A37 0x93FB # <CJK>
+0x26A38 0x9420 # <CJK>
+0x26A39 0x940F # <CJK>
+0x26A3A 0x9414 # <CJK>
+0x26A3B 0x93FE # <CJK>
+0x26A3C 0x9415 # <CJK>
+0x26A3D 0x9410 # <CJK>
+0x26A3E 0x9428 # <CJK>
+0x26A3F 0x9419 # <CJK>
+0x26A40 0x940D # <CJK>
+0x26A41 0x93F5 # <CJK>
+0x26A42 0x9400 # <CJK>
+0x26A43 0x93F7 # <CJK>
+0x26A44 0x9407 # <CJK>
+0x26A45 0x940E # <CJK>
+0x26A46 0x9416 # <CJK>
+0x26A47 0x9412 # <CJK>
+0x26A48 0x93FA # <CJK>
+0x26A49 0x9409 # <CJK>
+0x26A4A 0x93F8 # <CJK>
+0x26A4B 0x943C # <CJK>
+0x26A4C 0x940A # <CJK>
+0x26A4D 0x93FF # <CJK>
+0x26A4E 0x93FC # <CJK>
+0x26A4F 0x940C # <CJK>
+0x26A50 0x93F6 # <CJK>
+0x26A51 0x9411 # <CJK>
+0x26A52 0x9406 # <CJK>
+0x26A53 0x95DE # <CJK>
+0x26A54 0x95E0 # <CJK>
+0x26A55 0x95DF # <CJK>
+0x26A56 0x972E # <CJK>
+0x26A57 0x972F # <CJK>
+0x26A58 0x97B9 # <CJK>
+0x26A59 0x97BB # <CJK>
+0x26A5A 0x97FD # <CJK>
+0x26A5B 0x97FE # <CJK>
+0x26A5C 0x9860 # <CJK>
+0x26A5D 0x9862 # <CJK>
+0x26A5E 0x9863 # <CJK>
+0x26A5F 0x985F # <CJK>
+0x26A60 0x98C1 # <CJK>
+0x26A61 0x98C2 # <CJK>
+0x26A62 0x9950 # <CJK>
+0x26A63 0x994E # <CJK>
+0x26A64 0x9959 # <CJK>
+0x26A65 0x994C # <CJK>
+0x26A66 0x994B # <CJK>
+0x26A67 0x9953 # <CJK>
+0x26A68 0x9A32 # <CJK>
+0x26A69 0x9A34 # <CJK>
+0x26A6A 0x9A31 # <CJK>
+0x26A6B 0x9A2C # <CJK>
+0x26A6C 0x9A2A # <CJK>
+0x26A6D 0x9A36 # <CJK>
+0x26A6E 0x9A29 # <CJK>
+0x26A6F 0x9A2E # <CJK>
+0x26A70 0x9A38 # <CJK>
+0x26A71 0x9A2D # <CJK>
+0x26A72 0x9AC7 # <CJK>
+0x26A73 0x9ACA # <CJK>
+0x26A74 0x9AC6 # <CJK>
+0x26A75 0x9B10 # <CJK>
+0x26A76 0x9B12 # <CJK>
+0x26A77 0x9B11 # <CJK>
+0x26A78 0x9C0B # <CJK>
+0x26A79 0x9C08 # <CJK>
+0x26A7A 0x9BF7 # <CJK>
+0x26A7B 0x9C05 # <CJK>
+0x26A7C 0x9C12 # <CJK>
+0x26A7D 0x9BF8 # <CJK>
+0x26A7E 0x9C40 # <CJK>
+0x26B21 0x9C07 # <CJK>
+0x26B22 0x9C0E # <CJK>
+0x26B23 0x9C06 # <CJK>
+0x26B24 0x9C17 # <CJK>
+0x26B25 0x9C14 # <CJK>
+0x26B26 0x9C09 # <CJK>
+0x26B27 0x9D9F # <CJK>
+0x26B28 0x9D99 # <CJK>
+0x26B29 0x9DA4 # <CJK>
+0x26B2A 0x9D9D # <CJK>
+0x26B2B 0x9D92 # <CJK>
+0x26B2C 0x9D98 # <CJK>
+0x26B2D 0x9D90 # <CJK>
+0x26B2E 0x9D9B # <CJK>
+0x26B2F 0x9DA0 # <CJK>
+0x26B30 0x9D94 # <CJK>
+0x26B31 0x9D9C # <CJK>
+0x26B32 0x9DAA # <CJK>
+0x26B33 0x9D97 # <CJK>
+0x26B34 0x9DA1 # <CJK>
+0x26B35 0x9D9A # <CJK>
+0x26B36 0x9DA2 # <CJK>
+0x26B37 0x9DA8 # <CJK>
+0x26B38 0x9D9E # <CJK>
+0x26B39 0x9DA3 # <CJK>
+0x26B3A 0x9DBF # <CJK>
+0x26B3B 0x9DA9 # <CJK>
+0x26B3C 0x9D96 # <CJK>
+0x26B3D 0x9DA6 # <CJK>
+0x26B3E 0x9DA7 # <CJK>
+0x26B3F 0x9E99 # <CJK>
+0x26B40 0x9E9B # <CJK>
+0x26B41 0x9E9A # <CJK>
+0x26B42 0x9EE5 # <CJK>
+0x26B43 0x9EE4 # <CJK>
+0x26B44 0x9EE7 # <CJK>
+0x26B45 0x9EE6 # <CJK>
+0x26B46 0x9F30 # <CJK>
+0x26B47 0x9F2E # <CJK>
+0x26B48 0x9F5B # <CJK>
+0x26B49 0x9F60 # <CJK>
+0x26B4A 0x9F5E # <CJK>
+0x26B4B 0x9F5D # <CJK>
+0x26B4C 0x9F59 # <CJK>
+0x26B4D 0x9F91 # <CJK>
+0x26B4E 0x513A # <CJK>
+0x26B4F 0x5139 # <CJK>
+0x26B50 0x5298 # <CJK>
+0x26B51 0x5297 # <CJK>
+0x26B52 0x56C3 # <CJK>
+0x26B53 0x56BD # <CJK>
+0x26B54 0x56BE # <CJK>
+0x26B55 0x5B48 # <CJK>
+0x26B56 0x5B47 # <CJK>
+0x26B57 0x5DCB # <CJK>
+0x26B58 0x5DCF # <CJK>
+0x26B59 0x5EF1 # <CJK>
+0x26B5A 0x61FD # <CJK>
+0x26B5B 0x651B # <CJK>
+0x26B5C 0x6B02 # <CJK>
+0x26B5D 0x6AFC # <CJK>
+0x26B5E 0x6B03 # <CJK>
+0x26B5F 0x6AF8 # <CJK>
+0x26B60 0x6B00 # <CJK>
+0x26B61 0x7043 # <CJK>
+0x26B62 0x7044 # <CJK>
+0x26B63 0x704A # <CJK>
+0x26B64 0x7048 # <CJK>
+0x26B65 0x7049 # <CJK>
+0x26B66 0x7045 # <CJK>
+0x26B67 0x7046 # <CJK>
+0x26B68 0x721D # <CJK>
+0x26B69 0x721A # <CJK>
+0x26B6A 0x7219 # <CJK>
+0x26B6B 0x737E # <CJK>
+0x26B6C 0x7517 # <CJK>
+0x26B6D 0x766A # <CJK>
+0x26B6E 0x77D0 # <CJK>
+0x26B6F 0x792D # <CJK>
+0x26B70 0x7931 # <CJK>
+0x26B71 0x792F # <CJK>
+0x26B72 0x7C54 # <CJK>
+0x26B73 0x7C53 # <CJK>
+0x26B74 0x7CF2 # <CJK>
+0x26B75 0x7E8A # <CJK>
+0x26B76 0x7E87 # <CJK>
+0x26B77 0x7E88 # <CJK>
+0x26B78 0x7E8B # <CJK>
+0x26B79 0x7E86 # <CJK>
+0x26B7A 0x7E8D # <CJK>
+0x26B7B 0x7F4D # <CJK>
+0x26B7C 0x7FBB # <CJK>
+0x26B7D 0x8030 # <CJK>
+0x26B7E 0x81DD # <CJK>
+0x26C21 0x8618 # <CJK>
+0x26C22 0x862A # <CJK>
+0x26C23 0x8626 # <CJK>
+0x26C24 0x861F # <CJK>
+0x26C25 0x8623 # <CJK>
+0x26C26 0x861C # <CJK>
+0x26C27 0x8619 # <CJK>
+0x26C28 0x8627 # <CJK>
+0x26C29 0x862E # <CJK>
+0x26C2A 0x8621 # <CJK>
+0x26C2B 0x8620 # <CJK>
+0x26C2C 0x8629 # <CJK>
+0x26C2D 0x861E # <CJK>
+0x26C2E 0x8625 # <CJK>
+0x26C2F 0x8829 # <CJK>
+0x26C30 0x881D # <CJK>
+0x26C31 0x881B # <CJK>
+0x26C32 0x8820 # <CJK>
+0x26C33 0x8824 # <CJK>
+0x26C34 0x881C # <CJK>
+0x26C35 0x882B # <CJK>
+0x26C36 0x884A # <CJK>
+0x26C37 0x896D # <CJK>
+0x26C38 0x8969 # <CJK>
+0x26C39 0x896E # <CJK>
+0x26C3A 0x896B # <CJK>
+0x26C3B 0x89FA # <CJK>
+0x26C3C 0x8B79 # <CJK>
+0x26C3D 0x8B78 # <CJK>
+0x26C3E 0x8B45 # <CJK>
+0x26C3F 0x8B7A # <CJK>
+0x26C40 0x8B7B # <CJK>
+0x26C41 0x8D10 # <CJK>
+0x26C42 0x8D14 # <CJK>
+0x26C43 0x8DAF # <CJK>
+0x26C44 0x8E8E # <CJK>
+0x26C45 0x8E8C # <CJK>
+0x26C46 0x8F5E # <CJK>
+0x26C47 0x8F5B # <CJK>
+0x26C48 0x8F5D # <CJK>
+0x26C49 0x9146 # <CJK>
+0x26C4A 0x9144 # <CJK>
+0x26C4B 0x9145 # <CJK>
+0x26C4C 0x91B9 # <CJK>
+0x26C4D 0x943F # <CJK>
+0x26C4E 0x943B # <CJK>
+0x26C4F 0x9436 # <CJK>
+0x26C50 0x9429 # <CJK>
+0x26C51 0x943D # <CJK>
+0x26C52 0x9430 # <CJK>
+0x26C53 0x9439 # <CJK>
+0x26C54 0x942A # <CJK>
+0x26C55 0x9437 # <CJK>
+0x26C56 0x942C # <CJK>
+0x26C57 0x9440 # <CJK>
+0x26C58 0x9431 # <CJK>
+0x26C59 0x95E5 # <CJK>
+0x26C5A 0x95E4 # <CJK>
+0x26C5B 0x95E3 # <CJK>
+0x26C5C 0x9735 # <CJK>
+0x26C5D 0x973A # <CJK>
+0x26C5E 0x97BF # <CJK>
+0x26C5F 0x97E1 # <CJK>
+0x26C60 0x9864 # <CJK>
+0x26C61 0x98C9 # <CJK>
+0x26C62 0x98C6 # <CJK>
+0x26C63 0x98C0 # <CJK>
+0x26C64 0x9958 # <CJK>
+0x26C65 0x9956 # <CJK>
+0x26C66 0x9A39 # <CJK>
+0x26C67 0x9A3D # <CJK>
+0x26C68 0x9A46 # <CJK>
+0x26C69 0x9A44 # <CJK>
+0x26C6A 0x9A42 # <CJK>
+0x26C6B 0x9A41 # <CJK>
+0x26C6C 0x9A3A # <CJK>
+0x26C6D 0x9A3F # <CJK>
+0x26C6E 0x9ACD # <CJK>
+0x26C6F 0x9B15 # <CJK>
+0x26C70 0x9B17 # <CJK>
+0x26C71 0x9B18 # <CJK>
+0x26C72 0x9B16 # <CJK>
+0x26C73 0x9B3A # <CJK>
+0x26C74 0x9B52 # <CJK>
+0x26C75 0x9C2B # <CJK>
+0x26C76 0x9C1D # <CJK>
+0x26C77 0x9C1C # <CJK>
+0x26C78 0x9C2C # <CJK>
+0x26C79 0x9C23 # <CJK>
+0x26C7A 0x9C28 # <CJK>
+0x26C7B 0x9C29 # <CJK>
+0x26C7C 0x9C24 # <CJK>
+0x26C7D 0x9C21 # <CJK>
+0x26C7E 0x9DB7 # <CJK>
+0x26D21 0x9DB6 # <CJK>
+0x26D22 0x9DBC # <CJK>
+0x26D23 0x9DC1 # <CJK>
+0x26D24 0x9DC7 # <CJK>
+0x26D25 0x9DCA # <CJK>
+0x26D26 0x9DCF # <CJK>
+0x26D27 0x9DBE # <CJK>
+0x26D28 0x9DC5 # <CJK>
+0x26D29 0x9DC3 # <CJK>
+0x26D2A 0x9DBB # <CJK>
+0x26D2B 0x9DB5 # <CJK>
+0x26D2C 0x9DCE # <CJK>
+0x26D2D 0x9DB9 # <CJK>
+0x26D2E 0x9DBA # <CJK>
+0x26D2F 0x9DAC # <CJK>
+0x26D30 0x9DC8 # <CJK>
+0x26D31 0x9DB1 # <CJK>
+0x26D32 0x9DAD # <CJK>
+0x26D33 0x9DCC # <CJK>
+0x26D34 0x9DB3 # <CJK>
+0x26D35 0x9DCD # <CJK>
+0x26D36 0x9DB2 # <CJK>
+0x26D37 0x9E7A # <CJK>
+0x26D38 0x9E9C # <CJK>
+0x26D39 0x9EEB # <CJK>
+0x26D3A 0x9EEE # <CJK>
+0x26D3B 0x9EED # <CJK>
+0x26D3C 0x9F1B # <CJK>
+0x26D3D 0x9F18 # <CJK>
+0x26D3E 0x9F1A # <CJK>
+0x26D3F 0x9F31 # <CJK>
+0x26D40 0x9F4E # <CJK>
+0x26D41 0x9F65 # <CJK>
+0x26D42 0x9F64 # <CJK>
+0x26D43 0x9F92 # <CJK>
+0x26D44 0x4EB9 # <CJK>
+0x26D45 0x56C6 # <CJK>
+0x26D46 0x56C5 # <CJK>
+0x26D47 0x56CB # <CJK>
+0x26D48 0x5971 # <CJK>
+0x26D49 0x5B4B # <CJK>
+0x26D4A 0x5B4C # <CJK>
+0x26D4B 0x5DD5 # <CJK>
+0x26D4C 0x5DD1 # <CJK>
+0x26D4D 0x5EF2 # <CJK>
+0x26D4E 0x6521 # <CJK>
+0x26D4F 0x6520 # <CJK>
+0x26D50 0x6526 # <CJK>
+0x26D51 0x6522 # <CJK>
+0x26D52 0x6B0B # <CJK>
+0x26D53 0x6B08 # <CJK>
+0x26D54 0x6B09 # <CJK>
+0x26D55 0x6C0D # <CJK>
+0x26D56 0x7055 # <CJK>
+0x26D57 0x7056 # <CJK>
+0x26D58 0x7057 # <CJK>
+0x26D59 0x7052 # <CJK>
+0x26D5A 0x721E # <CJK>
+0x26D5B 0x721F # <CJK>
+0x26D5C 0x72A9 # <CJK>
+0x26D5D 0x737F # <CJK>
+0x26D5E 0x74D8 # <CJK>
+0x26D5F 0x74D5 # <CJK>
+0x26D60 0x74D9 # <CJK>
+0x26D61 0x74D7 # <CJK>
+0x26D62 0x766D # <CJK>
+0x26D63 0x76AD # <CJK>
+0x26D64 0x7935 # <CJK>
+0x26D65 0x79B4 # <CJK>
+0x26D66 0x7A70 # <CJK>
+0x26D67 0x7A71 # <CJK>
+0x26D68 0x7C57 # <CJK>
+0x26D69 0x7C5C # <CJK>
+0x26D6A 0x7C59 # <CJK>
+0x26D6B 0x7C5B # <CJK>
+0x26D6C 0x7C5A # <CJK>
+0x26D6D 0x7CF4 # <CJK>
+0x26D6E 0x7CF1 # <CJK>
+0x26D6F 0x7E91 # <CJK>
+0x26D70 0x7F4F # <CJK>
+0x26D71 0x7F87 # <CJK>
+0x26D72 0x81DE # <CJK>
+0x26D73 0x826B # <CJK>
+0x26D74 0x8634 # <CJK>
+0x26D75 0x8635 # <CJK>
+0x26D76 0x8633 # <CJK>
+0x26D77 0x862C # <CJK>
+0x26D78 0x8632 # <CJK>
+0x26D79 0x8636 # <CJK>
+0x26D7A 0x882C # <CJK>
+0x26D7B 0x8828 # <CJK>
+0x26D7C 0x8826 # <CJK>
+0x26D7D 0x882A # <CJK>
+0x26D7E 0x8825 # <CJK>
+0x26E21 0x8971 # <CJK>
+0x26E22 0x89BF # <CJK>
+0x26E23 0x89BE # <CJK>
+0x26E24 0x89FB # <CJK>
+0x26E25 0x8B7E # <CJK>
+0x26E26 0x8B84 # <CJK>
+0x26E27 0x8B82 # <CJK>
+0x26E28 0x8B86 # <CJK>
+0x26E29 0x8B85 # <CJK>
+0x26E2A 0x8B7F # <CJK>
+0x26E2B 0x8D15 # <CJK>
+0x26E2C 0x8E95 # <CJK>
+0x26E2D 0x8E94 # <CJK>
+0x26E2E 0x8E9A # <CJK>
+0x26E2F 0x8E92 # <CJK>
+0x26E30 0x8E90 # <CJK>
+0x26E31 0x8E96 # <CJK>
+0x26E32 0x8E97 # <CJK>
+0x26E33 0x8F60 # <CJK>
+0x26E34 0x8F62 # <CJK>
+0x26E35 0x9147 # <CJK>
+0x26E36 0x944C # <CJK>
+0x26E37 0x9450 # <CJK>
+0x26E38 0x944A # <CJK>
+0x26E39 0x944B # <CJK>
+0x26E3A 0x944F # <CJK>
+0x26E3B 0x9447 # <CJK>
+0x26E3C 0x9445 # <CJK>
+0x26E3D 0x9448 # <CJK>
+0x26E3E 0x9449 # <CJK>
+0x26E3F 0x9446 # <CJK>
+0x26E40 0x973F # <CJK>
+0x26E41 0x97E3 # <CJK>
+0x26E42 0x986A # <CJK>
+0x26E43 0x9869 # <CJK>
+0x26E44 0x98CB # <CJK>
+0x26E45 0x9954 # <CJK>
+0x26E46 0x995B # <CJK>
+0x26E47 0x9A4E # <CJK>
+0x26E48 0x9A53 # <CJK>
+0x26E49 0x9A54 # <CJK>
+0x26E4A 0x9A4C # <CJK>
+0x26E4B 0x9A4F # <CJK>
+0x26E4C 0x9A48 # <CJK>
+0x26E4D 0x9A4A # <CJK>
+0x26E4E 0x9A49 # <CJK>
+0x26E4F 0x9A52 # <CJK>
+0x26E50 0x9A50 # <CJK>
+0x26E51 0x9AD0 # <CJK>
+0x26E52 0x9B19 # <CJK>
+0x26E53 0x9B2B # <CJK>
+0x26E54 0x9B3B # <CJK>
+0x26E55 0x9B56 # <CJK>
+0x26E56 0x9B55 # <CJK>
+0x26E57 0x9C46 # <CJK>
+0x26E58 0x9C48 # <CJK>
+0x26E59 0x9C3F # <CJK>
+0x26E5A 0x9C44 # <CJK>
+0x26E5B 0x9C39 # <CJK>
+0x26E5C 0x9C33 # <CJK>
+0x26E5D 0x9C41 # <CJK>
+0x26E5E 0x9C3C # <CJK>
+0x26E5F 0x9C37 # <CJK>
+0x26E60 0x9C34 # <CJK>
+0x26E61 0x9C32 # <CJK>
+0x26E62 0x9C3D # <CJK>
+0x26E63 0x9C36 # <CJK>
+0x26E64 0x9DDB # <CJK>
+0x26E65 0x9DD2 # <CJK>
+0x26E66 0x9DDE # <CJK>
+0x26E67 0x9DDA # <CJK>
+0x26E68 0x9DCB # <CJK>
+0x26E69 0x9DD0 # <CJK>
+0x26E6A 0x9DDC # <CJK>
+0x26E6B 0x9DD1 # <CJK>
+0x26E6C 0x9DDF # <CJK>
+0x26E6D 0x9DE9 # <CJK>
+0x26E6E 0x9DD9 # <CJK>
+0x26E6F 0x9DD8 # <CJK>
+0x26E70 0x9DD6 # <CJK>
+0x26E71 0x9DF5 # <CJK>
+0x26E72 0x9DD5 # <CJK>
+0x26E73 0x9DDD # <CJK>
+0x26E74 0x9EB6 # <CJK>
+0x26E75 0x9EF0 # <CJK>
+0x26E76 0x9F35 # <CJK>
+0x26E77 0x9F33 # <CJK>
+0x26E78 0x9F32 # <CJK>
+0x26E79 0x9F42 # <CJK>
+0x26E7A 0x9F6B # <CJK>
+0x26E7B 0x9F95 # <CJK>
+0x26E7C 0x9FA2 # <CJK>
+0x26E7D 0x513D # <CJK>
+0x26E7E 0x5299 # <CJK>
+0x26F21 0x58E8 # <CJK>
+0x26F22 0x58E7 # <CJK>
+0x26F23 0x5972 # <CJK>
+0x26F24 0x5B4D # <CJK>
+0x26F25 0x5DD8 # <CJK>
+0x26F26 0x882F # <CJK>
+0x26F27 0x5F4F # <CJK>
+0x26F28 0x6201 # <CJK>
+0x26F29 0x6203 # <CJK>
+0x26F2A 0x6204 # <CJK>
+0x26F2B 0x6529 # <CJK>
+0x26F2C 0x6525 # <CJK>
+0x26F2D 0x6596 # <CJK>
+0x26F2E 0x66EB # <CJK>
+0x26F2F 0x6B11 # <CJK>
+0x26F30 0x6B12 # <CJK>
+0x26F31 0x6B0F # <CJK>
+0x26F32 0x6BCA # <CJK>
+0x26F33 0x705B # <CJK>
+0x26F34 0x705A # <CJK>
+0x26F35 0x7222 # <CJK>
+0x26F36 0x7382 # <CJK>
+0x26F37 0x7381 # <CJK>
+0x26F38 0x7383 # <CJK>
+0x26F39 0x7670 # <CJK>
+0x26F3A 0x77D4 # <CJK>
+0x26F3B 0x7C67 # <CJK>
+0x26F3C 0x7C66 # <CJK>
+0x26F3D 0x7E95 # <CJK>
+0x26F3E 0x826C # <CJK>
+0x26F3F 0x863A # <CJK>
+0x26F40 0x8640 # <CJK>
+0x26F41 0x8639 # <CJK>
+0x26F42 0x863C # <CJK>
+0x26F43 0x8631 # <CJK>
+0x26F44 0x863B # <CJK>
+0x26F45 0x863E # <CJK>
+0x26F46 0x8830 # <CJK>
+0x26F47 0x8832 # <CJK>
+0x26F48 0x882E # <CJK>
+0x26F49 0x8833 # <CJK>
+0x26F4A 0x8976 # <CJK>
+0x26F4B 0x8974 # <CJK>
+0x26F4C 0x8973 # <CJK>
+0x26F4D 0x89FE # <CJK>
+0x26F4E 0x8B8C # <CJK>
+0x26F4F 0x8B8E # <CJK>
+0x26F50 0x8B8B # <CJK>
+0x26F51 0x8B88 # <CJK>
+0x26F52 0x8C45 # <CJK>
+0x26F53 0x8D19 # <CJK>
+0x26F54 0x8E98 # <CJK>
+0x26F55 0x8F64 # <CJK>
+0x26F56 0x8F63 # <CJK>
+0x26F57 0x91BC # <CJK>
+0x26F58 0x9462 # <CJK>
+0x26F59 0x9455 # <CJK>
+0x26F5A 0x945D # <CJK>
+0x26F5B 0x9457 # <CJK>
+0x26F5C 0x945E # <CJK>
+0x26F5D 0x97C4 # <CJK>
+0x26F5E 0x97C5 # <CJK>
+0x26F5F 0x9800 # <CJK>
+0x26F60 0x9A56 # <CJK>
+0x26F61 0x9A59 # <CJK>
+0x26F62 0x9B1E # <CJK>
+0x26F63 0x9B1F # <CJK>
+0x26F64 0x9B20 # <CJK>
+0x26F65 0x9C52 # <CJK>
+0x26F66 0x9C58 # <CJK>
+0x26F67 0x9C50 # <CJK>
+0x26F68 0x9C4A # <CJK>
+0x26F69 0x9C4D # <CJK>
+0x26F6A 0x9C4B # <CJK>
+0x26F6B 0x9C55 # <CJK>
+0x26F6C 0x9C59 # <CJK>
+0x26F6D 0x9C4C # <CJK>
+0x26F6E 0x9C4E # <CJK>
+0x26F6F 0x9DFB # <CJK>
+0x26F70 0x9DF7 # <CJK>
+0x26F71 0x9DEF # <CJK>
+0x26F72 0x9DE3 # <CJK>
+0x26F73 0x9DEB # <CJK>
+0x26F74 0x9DF8 # <CJK>
+0x26F75 0x9DE4 # <CJK>
+0x26F76 0x9DF6 # <CJK>
+0x26F77 0x9DE1 # <CJK>
+0x26F78 0x9DEE # <CJK>
+0x26F79 0x9DE6 # <CJK>
+0x26F7A 0x9DF2 # <CJK>
+0x26F7B 0x9DF0 # <CJK>
+0x26F7C 0x9DE2 # <CJK>
+0x26F7D 0x9DEC # <CJK>
+0x26F7E 0x9DF4 # <CJK>
+0x27021 0x9DF3 # <CJK>
+0x27022 0x9DE8 # <CJK>
+0x27023 0x9DED # <CJK>
+0x27024 0x9EC2 # <CJK>
+0x27025 0x9ED0 # <CJK>
+0x27026 0x9EF2 # <CJK>
+0x27027 0x9EF3 # <CJK>
+0x27028 0x9F06 # <CJK>
+0x27029 0x9F1C # <CJK>
+0x2702A 0x9F38 # <CJK>
+0x2702B 0x9F37 # <CJK>
+0x2702C 0x9F36 # <CJK>
+0x2702D 0x9F43 # <CJK>
+0x2702E 0x9F4F # <CJK>
+0x2702F 0x9F71 # <CJK>
+0x27030 0x9F70 # <CJK>
+0x27031 0x9F6E # <CJK>
+0x27032 0x9F6F # <CJK>
+0x27033 0x56D3 # <CJK>
+0x27034 0x56CD # <CJK>
+0x27035 0x5B4E # <CJK>
+0x27036 0x5C6D # <CJK>
+0x27037 0x652D # <CJK>
+0x27038 0x66ED # <CJK>
+0x27039 0x66EE # <CJK>
+0x2703A 0x6B13 # <CJK>
+0x2703B 0x705F # <CJK>
+0x2703C 0x7061 # <CJK>
+0x2703D 0x705D # <CJK>
+0x2703E 0x7060 # <CJK>
+0x2703F 0x7223 # <CJK>
+0x27040 0x74DB # <CJK>
+0x27041 0x74E5 # <CJK>
+0x27042 0x77D5 # <CJK>
+0x27043 0x7938 # <CJK>
+0x27044 0x79B7 # <CJK>
+0x27045 0x79B6 # <CJK>
+0x27046 0x7C6A # <CJK>
+0x27047 0x7E97 # <CJK>
+0x27048 0x7F89 # <CJK>
+0x27049 0x826D # <CJK>
+0x2704A 0x8643 # <CJK>
+0x2704B 0x8838 # <CJK>
+0x2704C 0x8837 # <CJK>
+0x2704D 0x8835 # <CJK>
+0x2704E 0x884B # <CJK>
+0x2704F 0x8B94 # <CJK>
+0x27050 0x8B95 # <CJK>
+0x27051 0x8E9E # <CJK>
+0x27052 0x8E9F # <CJK>
+0x27053 0x8EA0 # <CJK>
+0x27054 0x8E9D # <CJK>
+0x27055 0x91BE # <CJK>
+0x27056 0x91BD # <CJK>
+0x27057 0x91C2 # <CJK>
+0x27058 0x946B # <CJK>
+0x27059 0x9468 # <CJK>
+0x2705A 0x9469 # <CJK>
+0x2705B 0x96E5 # <CJK>
+0x2705C 0x9746 # <CJK>
+0x2705D 0x9743 # <CJK>
+0x2705E 0x9747 # <CJK>
+0x2705F 0x97C7 # <CJK>
+0x27060 0x97E5 # <CJK>
+0x27061 0x9A5E # <CJK>
+0x27062 0x9AD5 # <CJK>
+0x27063 0x9B59 # <CJK>
+0x27064 0x9C63 # <CJK>
+0x27065 0x9C67 # <CJK>
+0x27066 0x9C66 # <CJK>
+0x27067 0x9C62 # <CJK>
+0x27068 0x9C5E # <CJK>
+0x27069 0x9C60 # <CJK>
+0x2706A 0x9E02 # <CJK>
+0x2706B 0x9DFE # <CJK>
+0x2706C 0x9E07 # <CJK>
+0x2706D 0x9E03 # <CJK>
+0x2706E 0x9E06 # <CJK>
+0x2706F 0x9E05 # <CJK>
+0x27070 0x9E00 # <CJK>
+0x27071 0x9E01 # <CJK>
+0x27072 0x9E09 # <CJK>
+0x27073 0x9DFF # <CJK>
+0x27074 0x9DFD # <CJK>
+0x27075 0x9E04 # <CJK>
+0x27076 0x9EA0 # <CJK>
+0x27077 0x9F1E # <CJK>
+0x27078 0x9F46 # <CJK>
+0x27079 0x9F74 # <CJK>
+0x2707A 0x9F75 # <CJK>
+0x2707B 0x9F76 # <CJK>
+0x2707C 0x56D4 # <CJK>
+0x2707D 0x652E # <CJK>
+0x2707E 0x65B8 # <CJK>
+0x27121 0x6B18 # <CJK>
+0x27122 0x6B19 # <CJK>
+0x27123 0x6B17 # <CJK>
+0x27124 0x6B1A # <CJK>
+0x27125 0x7062 # <CJK>
+0x27126 0x7226 # <CJK>
+0x27127 0x72AA # <CJK>
+0x27128 0x77D8 # <CJK>
+0x27129 0x77D9 # <CJK>
+0x2712A 0x7939 # <CJK>
+0x2712B 0x7C69 # <CJK>
+0x2712C 0x7C6B # <CJK>
+0x2712D 0x7CF6 # <CJK>
+0x2712E 0x7E9A # <CJK>
+0x2712F 0x7E98 # <CJK>
+0x27130 0x7E9B # <CJK>
+0x27131 0x7E99 # <CJK>
+0x27132 0x81E0 # <CJK>
+0x27133 0x81E1 # <CJK>
+0x27134 0x8646 # <CJK>
+0x27135 0x8647 # <CJK>
+0x27136 0x8648 # <CJK>
+0x27137 0x8979 # <CJK>
+0x27138 0x897A # <CJK>
+0x27139 0x897C # <CJK>
+0x2713A 0x897B # <CJK>
+0x2713B 0x89FF # <CJK>
+0x2713C 0x8B98 # <CJK>
+0x2713D 0x8B99 # <CJK>
+0x2713E 0x8EA5 # <CJK>
+0x2713F 0x8EA4 # <CJK>
+0x27140 0x8EA3 # <CJK>
+0x27141 0x946E # <CJK>
+0x27142 0x946D # <CJK>
+0x27143 0x946F # <CJK>
+0x27144 0x9471 # <CJK>
+0x27145 0x9473 # <CJK>
+0x27146 0x9749 # <CJK>
+0x27147 0x9872 # <CJK>
+0x27148 0x995F # <CJK>
+0x27149 0x9C68 # <CJK>
+0x2714A 0x9C6E # <CJK>
+0x2714B 0x9C6D # <CJK>
+0x2714C 0x9E0B # <CJK>
+0x2714D 0x9E0D # <CJK>
+0x2714E 0x9E10 # <CJK>
+0x2714F 0x9E0F # <CJK>
+0x27150 0x9E12 # <CJK>
+0x27151 0x9E11 # <CJK>
+0x27152 0x9EA1 # <CJK>
+0x27153 0x9EF5 # <CJK>
+0x27154 0x9F09 # <CJK>
+0x27155 0x9F47 # <CJK>
+0x27156 0x9F78 # <CJK>
+0x27157 0x9F7B # <CJK>
+0x27158 0x9F7A # <CJK>
+0x27159 0x9F79 # <CJK>
+0x2715A 0x571E # <CJK>
+0x2715B 0x7066 # <CJK>
+0x2715C 0x7C6F # <CJK>
+0x2715D 0x883C # <CJK>
+0x2715E 0x8DB2 # <CJK>
+0x2715F 0x8EA6 # <CJK>
+0x27160 0x91C3 # <CJK>
+0x27161 0x9474 # <CJK>
+0x27162 0x9478 # <CJK>
+0x27163 0x9476 # <CJK>
+0x27164 0x9475 # <CJK>
+0x27165 0x9A60 # <CJK>
+0x27166 0x9B2E # <CJK>
+0x27167 0x9C74 # <CJK>
+0x27168 0x9C73 # <CJK>
+0x27169 0x9C71 # <CJK>
+0x2716A 0x9C75 # <CJK>
+0x2716B 0x9E14 # <CJK>
+0x2716C 0x9E13 # <CJK>
+0x2716D 0x9EF6 # <CJK>
+0x2716E 0x9F0A # <CJK>
+0x2716F 0x9FA4 # <CJK>
+0x27170 0x7068 # <CJK>
+0x27171 0x7065 # <CJK>
+0x27172 0x7CF7 # <CJK>
+0x27173 0x866A # <CJK>
+0x27174 0x883E # <CJK>
+0x27175 0x883D # <CJK>
+0x27176 0x883F # <CJK>
+0x27177 0x8B9E # <CJK>
+0x27178 0x8C9C # <CJK>
+0x27179 0x8EA9 # <CJK>
+0x2717A 0x8EC9 # <CJK>
+0x2717B 0x974B # <CJK>
+0x2717C 0x9873 # <CJK>
+0x2717D 0x9874 # <CJK>
+0x2717E 0x98CC # <CJK>
+0x27221 0x9961 # <CJK>
+0x27222 0x99AB # <CJK>
+0x27223 0x9A64 # <CJK>
+0x27224 0x9A66 # <CJK>
+0x27225 0x9A67 # <CJK>
+0x27226 0x9B24 # <CJK>
+0x27227 0x9E15 # <CJK>
+0x27228 0x9E17 # <CJK>
+0x27229 0x9F48 # <CJK>
+0x2722A 0x6207 # <CJK>
+0x2722B 0x6B1E # <CJK>
+0x2722C 0x7227 # <CJK>
+0x2722D 0x864C # <CJK>
+0x2722E 0x8EA8 # <CJK>
+0x2722F 0x9482 # <CJK>
+0x27230 0x9480 # <CJK>
+0x27231 0x9481 # <CJK>
+0x27232 0x9A69 # <CJK>
+0x27233 0x9A68 # <CJK>
+0x27234 0x9E19 # <CJK>
+0x27235 0x864B # <CJK>
+0x27236 0x8B9F # <CJK>
+0x27237 0x9483 # <CJK>
+0x27238 0x9C79 # <CJK>
+0x27239 0x9EB7 # <CJK>
+0x2723A 0x7675 # <CJK>
+0x2723B 0x9A6B # <CJK>
+0x2723C 0x9C7A # <CJK>
+0x2723D 0x9E1D # <CJK>
+0x2723E 0x7069 # <CJK>
+0x2723F 0x706A # <CJK>
+0x27240 0x7229 # <CJK>
+0x27241 0x9EA4 # <CJK>
+0x27242 0x9F7E # <CJK>
+0x27243 0x9F49 # <CJK>
+0x27244 0x9F98 # <CJK>
+0xE2121 0x4E28 # <CJK>
+0xE2122 0x4E36 # <CJK>
+0xE2123 0x4E3F # <CJK>
+0xE2124 0x4E85 # <CJK>
+0xE2125 0x4E05 # <CJK>
+0xE2126 0x4E04 # <CJK>
+0xE2127 0x5182 # <CJK>
+0xE2128 0x5196 # <CJK>
+0xE2129 0x5338 # <CJK>
+0xE212A 0x5369 # <CJK>
+0xE212B 0x53B6 # <CJK>
+0xE212C 0x4E2A # <CJK>
+0xE212D 0x4E87 # <CJK>
+0xE212E 0x4E49 # <CJK>
+0xE212F 0x51E2 # <CJK>
+0xE2130 0x4E46 # <CJK>
+0xE2131 0x4E8F # <CJK>
+0xE2132 0x4EBC # <CJK>
+0xE2133 0x4EBE # <CJK>
+0xE2134 0x5166 # <CJK>
+0xE2135 0x51E3 # <CJK>
+0xE2136 0x5204 # <CJK>
+0xE2137 0x529C # <CJK>
+0xE2139 0x5902 # <CJK>
+0xE213A 0x590A # <CJK>
+0xE213B 0x5B80 # <CJK>
+0xE213C 0x5DDB # <CJK>
+0xE213D 0x5E7A # <CJK>
+0xE213E 0x5E7F # <CJK>
+0xE213F 0x5EF4 # <CJK>
+0xE2140 0x5F50 # <CJK>
+0xE2141 0x5F51 # <CJK>
+0xE2142 0x5F61 # <CJK>
+0xE2143 0x961D # <CJK>
+0xE2145 0x4E63 # <CJK>
+0xE2146 0x4E62 # <CJK>
+0xE2147 0x4EA3 # <CJK>
+0xE2148 0x5185 # <CJK>
+0xE2149 0x4EC5 # <CJK>
+0xE214A 0x4ECF # <CJK>
+0xE214B 0x4ECE # <CJK>
+0xE214C 0x4ECC # <CJK>
+0xE214D 0x5184 # <CJK>
+0xE214E 0x5186 # <CJK>
+0xE2151 0x51E4 # <CJK>
+0xE2152 0x5205 # <CJK>
+0xE2153 0x529E # <CJK>
+0xE2154 0x529D # <CJK>
+0xE2155 0x52FD # <CJK>
+0xE2156 0x5300 # <CJK>
+0xE2157 0x533A # <CJK>
+0xE2159 0x5346 # <CJK>
+0xE215A 0x535D # <CJK>
+0xE215B 0x5386 # <CJK>
+0xE215C 0x53B7 # <CJK>
+0xE215E 0x53CC # <CJK>
+0xE2160 0x53CE # <CJK>
+0xE2161 0x5721 # <CJK>
+0xE2163 0x5E00 # <CJK>
+0xE2164 0x5F0C # <CJK>
+0xE2165 0x6237 # <CJK>
+0xE2166 0x6238 # <CJK>
+0xE2167 0x6534 # <CJK>
+0xE2168 0x6535 # <CJK>
+0xE2169 0x65E0 # <CJK>
+0xE216B 0x738D # <CJK>
+0xE216C 0x4E97 # <CJK>
+0xE216D 0x4EE0 # <CJK>
+0xE2170 0x4EE7 # <CJK>
+0xE2172 0x4EE6 # <CJK>
+0xE2177 0x56D8 # <CJK>
+0xE2178 0x518B # <CJK>
+0xE2179 0x518C # <CJK>
+0xE217A 0x5199 # <CJK>
+0xE217B 0x51E5 # <CJK>
+0xE217D 0x520B # <CJK>
+0xE2222 0x5304 # <CJK>
+0xE2223 0x5303 # <CJK>
+0xE2224 0x5307 # <CJK>
+0xE2226 0x531E # <CJK>
+0xE2227 0x535F # <CJK>
+0xE2228 0x536D # <CJK>
+0xE2229 0x5389 # <CJK>
+0xE222A 0x53BA # <CJK>
+0xE222B 0x53D0 # <CJK>
+0xE222D 0x53F6 # <CJK>
+0xE222E 0x53F7 # <CJK>
+0xE222F 0x53F9 # <CJK>
+0xE2231 0x53F4 # <CJK>
+0xE2234 0x5724 # <CJK>
+0xE2235 0x5904 # <CJK>
+0xE2236 0x5918 # <CJK>
+0xE2237 0x5932 # <CJK>
+0xE2238 0x5930 # <CJK>
+0xE2239 0x5934 # <CJK>
+0xE223B 0x5975 # <CJK>
+0xE223D 0x5B82 # <CJK>
+0xE223E 0x5BF9 # <CJK>
+0xE223F 0x5C14 # <CJK>
+0xE2247 0x5E81 # <CJK>
+0xE2248 0x5E83 # <CJK>
+0xE2249 0x5F0D # <CJK>
+0xE224A 0x5F52 # <CJK>
+0xE224C 0x5FCA # <CJK>
+0xE224D 0x5FC7 # <CJK>
+0xE224E 0x6239 # <CJK>
+0xE2250 0x624F # <CJK>
+0xE2251 0x65E7 # <CJK>
+0xE2252 0x672F # <CJK>
+0xE2253 0x6B7A # <CJK>
+0xE2254 0x6C39 # <CJK>
+0xE2257 0x6C37 # <CJK>
+0xE2258 0x6C44 # <CJK>
+0xE2259 0x6C45 # <CJK>
+0xE225A 0x738C # <CJK>
+0xE225B 0x7592 # <CJK>
+0xE225C 0x7676 # <CJK>
+0xE225D 0x9093 # <CJK>
+0xE225E 0x9092 # <CJK>
+0xE2261 0x4E21 # <CJK>
+0xE2262 0x4E20 # <CJK>
+0xE2263 0x4E22 # <CJK>
+0xE2264 0x4E68 # <CJK>
+0xE2265 0x4E89 # <CJK>
+0xE2266 0x4E98 # <CJK>
+0xE2267 0x4EF9 # <CJK>
+0xE2268 0x4EEF # <CJK>
+0xE226B 0x4EF8 # <CJK>
+0xE226C 0x4F06 # <CJK>
+0xE226D 0x4F03 # <CJK>
+0xE226E 0x4EFC # <CJK>
+0xE226F 0x4EEE # <CJK>
+0xE2270 0x4F16 # <CJK>
+0xE2272 0x4F28 # <CJK>
+0xE2273 0x4F1C # <CJK>
+0xE2274 0x4F07 # <CJK>
+0xE2275 0x4F1A # <CJK>
+0xE2276 0x4EFA # <CJK>
+0xE2277 0x4F17 # <CJK>
+0xE2278 0x514A # <CJK>
+0xE227A 0x5172 # <CJK>
+0xE227C 0x51B4 # <CJK>
+0xE227D 0x51B3 # <CJK>
+0xE227E 0x51B2 # <CJK>
+0xE2322 0x51E8 # <CJK>
+0xE2324 0x5214 # <CJK>
+0xE2325 0x520F # <CJK>
+0xE2326 0x5215 # <CJK>
+0xE2327 0x5218 # <CJK>
+0xE2328 0x52A8 # <CJK>
+0xE232A 0x534B # <CJK>
+0xE232B 0x534F # <CJK>
+0xE232D 0x5350 # <CJK>
+0xE232F 0x538B # <CJK>
+0xE2331 0x53BE # <CJK>
+0xE2333 0x53D2 # <CJK>
+0xE2334 0x5416 # <CJK>
+0xE2335 0x53FF # <CJK>
+0xE2337 0x5400 # <CJK>
+0xE2339 0x5405 # <CJK>
+0xE233A 0x5413 # <CJK>
+0xE233B 0x5415 # <CJK>
+0xE233E 0x56E3 # <CJK>
+0xE233F 0x5735 # <CJK>
+0xE2340 0x5736 # <CJK>
+0xE2341 0x5731 # <CJK>
+0xE2342 0x5732 # <CJK>
+0xE2343 0x58EE # <CJK>
+0xE2344 0x5905 # <CJK>
+0xE2345 0x4E54 # <CJK>
+0xE2347 0x5936 # <CJK>
+0xE234B 0x597A # <CJK>
+0xE234D 0x5986 # <CJK>
+0xE2350 0x5B86 # <CJK>
+0xE2351 0x5F53 # <CJK>
+0xE2352 0x5C18 # <CJK>
+0xE2354 0x5C3D # <CJK>
+0xE2355 0x5C78 # <CJK>
+0xE235A 0x5C80 # <CJK>
+0xE235C 0x5E08 # <CJK>
+0xE2361 0x5EF5 # <CJK>
+0xE2362 0x5F0E # <CJK>
+0xE2366 0x5FD3 # <CJK>
+0xE2367 0x5FDA # <CJK>
+0xE2369 0x5FDB # <CJK>
+0xE236B 0x620F # <CJK>
+0xE236C 0x625D # <CJK>
+0xE236D 0x625F # <CJK>
+0xE236E 0x6267 # <CJK>
+0xE236F 0x6257 # <CJK>
+0xE2370 0x9F50 # <CJK>
+0xE2372 0x65EB # <CJK>
+0xE2373 0x65EA # <CJK>
+0xE2375 0x6737 # <CJK>
+0xE2377 0x6732 # <CJK>
+0xE2378 0x6736 # <CJK>
+0xE2379 0x6B22 # <CJK>
+0xE237A 0x6BCE # <CJK>
+0xE237C 0x6C58 # <CJK>
+0xE237D 0x6C51 # <CJK>
+0xE237E 0x6C77 # <CJK>
+0xE2421 0x6C3C # <CJK>
+0xE2423 0x6C5A # <CJK>
+0xE2425 0x6C53 # <CJK>
+0xE2426 0x706F # <CJK>
+0xE2427 0x7072 # <CJK>
+0xE2428 0x706E # <CJK>
+0xE242B 0x7073 # <CJK>
+0xE242C 0x72B1 # <CJK>
+0xE242D 0x72B2 # <CJK>
+0xE242F 0x738F # <CJK>
+0xE2433 0x793C # <CJK>
+0xE2435 0x808D # <CJK>
+0xE2436 0x808E # <CJK>
+0xE2438 0x827B # <CJK>
+0xE243A 0x8D71 # <CJK>
+0xE243B 0x8FB9 # <CJK>
+0xE243C 0x9096 # <CJK>
+0xE243D 0x909A # <CJK>
+0xE243F 0x4E24 # <CJK>
+0xE2440 0x4E71 # <CJK>
+0xE2442 0x4E9C # <CJK>
+0xE2443 0x4F45 # <CJK>
+0xE2444 0x4F4A # <CJK>
+0xE2445 0x4F39 # <CJK>
+0xE2446 0x4F37 # <CJK>
+0xE2448 0x4F32 # <CJK>
+0xE2449 0x4F42 # <CJK>
+0xE244B 0x4F44 # <CJK>
+0xE244C 0x4F4B # <CJK>
+0xE244E 0x4F40 # <CJK>
+0xE244F 0x4F35 # <CJK>
+0xE2450 0x4F31 # <CJK>
+0xE2451 0x5151 # <CJK>
+0xE2453 0x5150 # <CJK>
+0xE2454 0x514E # <CJK>
+0xE2457 0x519D # <CJK>
+0xE2459 0x51B5 # <CJK>
+0xE245A 0x51B8 # <CJK>
+0xE245B 0x51EC # <CJK>
+0xE245C 0x5223 # <CJK>
+0xE245D 0x5227 # <CJK>
+0xE245E 0x5226 # <CJK>
+0xE245F 0x521F # <CJK>
+0xE2460 0x522B # <CJK>
+0xE2461 0x5220 # <CJK>
+0xE2462 0x52B4 # <CJK>
+0xE2463 0x52B3 # <CJK>
+0xE2465 0x5325 # <CJK>
+0xE2466 0x533B # <CJK>
+0xE2467 0x5374 # <CJK>
+0xE246D 0x544D # <CJK>
+0xE2470 0x543A # <CJK>
+0xE2473 0x5444 # <CJK>
+0xE2474 0x544C # <CJK>
+0xE2475 0x5423 # <CJK>
+0xE2476 0x541A # <CJK>
+0xE2477 0x5432 # <CJK>
+0xE2478 0x544B # <CJK>
+0xE2479 0x5421 # <CJK>
+0xE247B 0x5434 # <CJK>
+0xE247C 0x5449 # <CJK>
+0xE247D 0x5450 # <CJK>
+0xE247E 0x5422 # <CJK>
+0xE2521 0x543F # <CJK>
+0xE2522 0x5451 # <CJK>
+0xE2523 0x545A # <CJK>
+0xE2524 0x542F # <CJK>
+0xE2526 0x56E9 # <CJK>
+0xE2527 0x56F2 # <CJK>
+0xE2528 0x56F3 # <CJK>
+0xE2529 0x56EF # <CJK>
+0xE252A 0x56ED # <CJK>
+0xE252B 0x56EC # <CJK>
+0xE252C 0x56E6 # <CJK>
+0xE252D 0x5748 # <CJK>
+0xE252F 0x5744 # <CJK>
+0xE2530 0x573F # <CJK>
+0xE2531 0x573C # <CJK>
+0xE2532 0x5753 # <CJK>
+0xE2533 0x5756 # <CJK>
+0xE2535 0x575F # <CJK>
+0xE2536 0x5743 # <CJK>
+0xE2537 0x5758 # <CJK>
+0xE2538 0x5757 # <CJK>
+0xE253C 0x5746 # <CJK>
+0xE253E 0x573D # <CJK>
+0xE2540 0x5742 # <CJK>
+0xE2541 0x5754 # <CJK>
+0xE2542 0x5755 # <CJK>
+0xE2543 0x58F1 # <CJK>
+0xE2544 0x58F2 # <CJK>
+0xE2545 0x58F0 # <CJK>
+0xE2546 0x590B # <CJK>
+0xE2547 0x9EA6 # <CJK>
+0xE2548 0x56F1 # <CJK>
+0xE2549 0x593D # <CJK>
+0xE254B 0x5994 # <CJK>
+0xE254C 0x598C # <CJK>
+0xE254E 0x599C # <CJK>
+0xE2551 0x599F # <CJK>
+0xE2553 0x599B # <CJK>
+0xE2555 0x5989 # <CJK>
+0xE2556 0x599A # <CJK>
+0xE2558 0x6588 # <CJK>
+0xE255A 0x5B8D # <CJK>
+0xE255C 0x5BFE # <CJK>
+0xE255D 0x5BFF # <CJK>
+0xE255E 0x5BFD # <CJK>
+0xE255F 0x5C2B # <CJK>
+0xE2561 0x5C84 # <CJK>
+0xE2562 0x5C8E # <CJK>
+0xE2563 0x5C9C # <CJK>
+0xE2566 0x5C85 # <CJK>
+0xE2567 0x5DF5 # <CJK>
+0xE2568 0x5E09 # <CJK>
+0xE256B 0x5E0B # <CJK>
+0xE256D 0x5E92 # <CJK>
+0xE256E 0x5E90 # <CJK>
+0xE256F 0x5F03 # <CJK>
+0xE2571 0x5F1E # <CJK>
+0xE2572 0x5F63 # <CJK>
+0xE2574 0x5FE7 # <CJK>
+0xE2575 0x5FFE # <CJK>
+0xE2576 0x5FE6 # <CJK>
+0xE2577 0x5FDC # <CJK>
+0xE2578 0x5FCE # <CJK>
+0xE257A 0x5FFC # <CJK>
+0xE257B 0x5FDF # <CJK>
+0xE257C 0x5FEC # <CJK>
+0xE257D 0x5FF6 # <CJK>
+0xE2621 0x5FF2 # <CJK>
+0xE2622 0x5FF0 # <CJK>
+0xE2623 0x5FF9 # <CJK>
+0xE2625 0x6213 # <CJK>
+0xE2628 0x623B # <CJK>
+0xE2629 0x623C # <CJK>
+0xE262A 0x6282 # <CJK>
+0xE262E 0x6278 # <CJK>
+0xE262F 0x628B # <CJK>
+0xE2631 0x629E # <CJK>
+0xE2632 0x62A5 # <CJK>
+0xE2633 0x629B # <CJK>
+0xE2634 0x629C # <CJK>
+0xE2635 0x6299 # <CJK>
+0xE2636 0x628D # <CJK>
+0xE2637 0x6285 # <CJK>
+0xE2638 0x629D # <CJK>
+0xE2639 0x6275 # <CJK>
+0xE263D 0x65F6 # <CJK>
+0xE2641 0x66F5 # <CJK>
+0xE2642 0x675B # <CJK>
+0xE2644 0x6754 # <CJK>
+0xE2645 0x6752 # <CJK>
+0xE2647 0x6758 # <CJK>
+0xE2648 0x6744 # <CJK>
+0xE2649 0x674A # <CJK>
+0xE264A 0x6761 # <CJK>
+0xE264C 0x6C7F # <CJK>
+0xE264D 0x6C91 # <CJK>
+0xE264E 0x6C9E # <CJK>
+0xE2650 0x6C6E # <CJK>
+0xE2651 0x6C7C # <CJK>
+0xE2652 0x6C9F # <CJK>
+0xE2653 0x6C75 # <CJK>
+0xE2655 0x6C56 # <CJK>
+0xE2656 0x6CA2 # <CJK>
+0xE2657 0x6C79 # <CJK>
+0xE2659 0x6CA1 # <CJK>
+0xE265B 0x6CAA # <CJK>
+0xE265C 0x6CA0 # <CJK>
+0xE265E 0x7079 # <CJK>
+0xE265F 0x7077 # <CJK>
+0xE2660 0x707E # <CJK>
+0xE2662 0x7075 # <CJK>
+0xE2663 0x707B # <CJK>
+0xE2664 0x7264 # <CJK>
+0xE2666 0x72BB # <CJK>
+0xE2667 0x72BC # <CJK>
+0xE2668 0x72C7 # <CJK>
+0xE2669 0x72B9 # <CJK>
+0xE266A 0x72BE # <CJK>
+0xE266B 0x72B6 # <CJK>
+0xE266E 0x7398 # <CJK>
+0xE2673 0x7593 # <CJK>
+0xE2674 0x7680 # <CJK>
+0xE2676 0x7683 # <CJK>
+0xE2677 0x76C0 # <CJK>
+0xE2678 0x76C1 # <CJK>
+0xE267B 0x77F4 # <CJK>
+0xE267C 0x77F5 # <CJK>
+0xE267E 0x7ACC # <CJK>
+0xE2721 0x7ACD # <CJK>
+0xE2722 0x7CFA # <CJK>
+0xE2723 0x809F # <CJK>
+0xE2724 0x8091 # <CJK>
+0xE2725 0x8097 # <CJK>
+0xE2726 0x8094 # <CJK>
+0xE2728 0x8286 # <CJK>
+0xE2729 0x828C # <CJK>
+0xE272B 0x8295 # <CJK>
+0xE272D 0x866C # <CJK>
+0xE272F 0x8FB5 # <CJK>
+0xE2730 0x8FBE # <CJK>
+0xE2731 0x8FC7 # <CJK>
+0xE2733 0x8FC1 # <CJK>
+0xE2734 0x90A9 # <CJK>
+0xE2735 0x90A4 # <CJK>
+0xE2739 0x90A8 # <CJK>
+0xE273A 0x9627 # <CJK>
+0xE273B 0x9626 # <CJK>
+0xE273C 0x962B # <CJK>
+0xE273D 0x9633 # <CJK>
+0xE273E 0x9634 # <CJK>
+0xE273F 0x9629 # <CJK>
+0xE2740 0x4E3D # <CJK>
+0xE2742 0x4E9D # <CJK>
+0xE2743 0x4F93 # <CJK>
+0xE2744 0x4F8A # <CJK>
+0xE2747 0x4F6D # <CJK>
+0xE2748 0x4F8E # <CJK>
+0xE2749 0x4FA0 # <CJK>
+0xE274A 0x4FA2 # <CJK>
+0xE274B 0x4FA1 # <CJK>
+0xE274C 0x4F9F # <CJK>
+0xE274D 0x4FA3 # <CJK>
+0xE274F 0x4F72 # <CJK>
+0xE2751 0x4F8C # <CJK>
+0xE2752 0x5156 # <CJK>
+0xE2755 0x5190 # <CJK>
+0xE2759 0x51ED # <CJK>
+0xE275A 0x51FE # <CJK>
+0xE275B 0x522F # <CJK>
+0xE275D 0x523C # <CJK>
+0xE275E 0x5234 # <CJK>
+0xE275F 0x5239 # <CJK>
+0xE2760 0x52B9 # <CJK>
+0xE2761 0x52B5 # <CJK>
+0xE2762 0x52BF # <CJK>
+0xE2763 0x5355 # <CJK>
+0xE2765 0x5376 # <CJK>
+0xE2766 0x537A # <CJK>
+0xE2767 0x5393 # <CJK>
+0xE2769 0x53C1 # <CJK>
+0xE276A 0x53C2 # <CJK>
+0xE276B 0x53D5 # <CJK>
+0xE276C 0x5485 # <CJK>
+0xE276E 0x545F # <CJK>
+0xE276F 0x5493 # <CJK>
+0xE2770 0x5489 # <CJK>
+0xE2771 0x5479 # <CJK>
+0xE2772 0x9EFE # <CJK>
+0xE2773 0x548F # <CJK>
+0xE2774 0x5469 # <CJK>
+0xE2775 0x546D # <CJK>
+0xE2777 0x5494 # <CJK>
+0xE2778 0x546A # <CJK>
+0xE2779 0x548A # <CJK>
+0xE277B 0x56FD # <CJK>
+0xE277C 0x56FB # <CJK>
+0xE277D 0x56F8 # <CJK>
+0xE2821 0x56FC # <CJK>
+0xE2822 0x56F6 # <CJK>
+0xE2823 0x5765 # <CJK>
+0xE2824 0x5781 # <CJK>
+0xE2825 0x5763 # <CJK>
+0xE2826 0x5767 # <CJK>
+0xE2828 0x576E # <CJK>
+0xE2829 0x5778 # <CJK>
+0xE282A 0x577F # <CJK>
+0xE282D 0x58F3 # <CJK>
+0xE282E 0x594B # <CJK>
+0xE282F 0x594C # <CJK>
+0xE2833 0x59AD # <CJK>
+0xE2835 0x59C4 # <CJK>
+0xE2837 0x59C2 # <CJK>
+0xE2838 0x59B0 # <CJK>
+0xE283D 0x59BF # <CJK>
+0xE283F 0x59C9 # <CJK>
+0xE2840 0x59B8 # <CJK>
+0xE2841 0x59AC # <CJK>
+0xE2845 0x59B7 # <CJK>
+0xE2846 0x59D7 # <CJK>
+0xE2848 0x5B60 # <CJK>
+0xE284A 0x5B96 # <CJK>
+0xE284B 0x5B9E # <CJK>
+0xE284C 0x5B94 # <CJK>
+0xE284D 0x5B9F # <CJK>
+0xE284E 0x5B9D # <CJK>
+0xE2850 0x5C00 # <CJK>
+0xE2851 0x5C19 # <CJK>
+0xE2854 0x5C49 # <CJK>
+0xE2855 0x5C4A # <CJK>
+0xE2857 0x5CBB # <CJK>
+0xE2858 0x5CC1 # <CJK>
+0xE285C 0x5CB9 # <CJK>
+0xE285D 0x5C9E # <CJK>
+0xE285E 0x5CB4 # <CJK>
+0xE285F 0x5CBA # <CJK>
+0xE2860 0x5DF6 # <CJK>
+0xE2861 0x5E13 # <CJK>
+0xE2862 0x5E12 # <CJK>
+0xE2863 0x5E77 # <CJK>
+0xE2865 0x5E98 # <CJK>
+0xE2867 0x5E99 # <CJK>
+0xE2868 0x5E9D # <CJK>
+0xE2869 0x5EF8 # <CJK>
+0xE286B 0x5EF9 # <CJK>
+0xE286D 0x5F06 # <CJK>
+0xE286E 0x5F21 # <CJK>
+0xE2870 0x5F25 # <CJK>
+0xE2871 0x5F55 # <CJK>
+0xE2875 0x5F84 # <CJK>
+0xE2876 0x5F83 # <CJK>
+0xE2877 0x6030 # <CJK>
+0xE2878 0x6007 # <CJK>
+0xE287A 0x6036 # <CJK>
+0xE287E 0x5FE9 # <CJK>
+0xE2921 0x603D # <CJK>
+0xE2922 0x6008 # <CJK>
+0xE2925 0x62BA # <CJK>
+0xE2926 0x62B2 # <CJK>
+0xE2928 0x62B7 # <CJK>
+0xE2929 0x62E4 # <CJK>
+0xE292A 0x62A7 # <CJK>
+0xE292E 0x62D5 # <CJK>
+0xE292F 0x62E1 # <CJK>
+0xE2930 0x62DD # <CJK>
+0xE2931 0x62A6 # <CJK>
+0xE2932 0x62C1 # <CJK>
+0xE2933 0x62C5 # <CJK>
+0xE2934 0x62C0 # <CJK>
+0xE2935 0x62DF # <CJK>
+0xE2936 0x62E0 # <CJK>
+0xE2937 0x62DE # <CJK>
+0xE2939 0x6589 # <CJK>
+0xE293B 0x65A6 # <CJK>
+0xE293C 0x65BA # <CJK>
+0xE293E 0x65FF # <CJK>
+0xE2940 0x6617 # <CJK>
+0xE2941 0x6618 # <CJK>
+0xE2942 0x6601 # <CJK>
+0xE2943 0x65FE # <CJK>
+0xE2945 0x670C # <CJK>
+0xE2947 0x676B # <CJK>
+0xE2948 0x6796 # <CJK>
+0xE2949 0x6782 # <CJK>
+0xE294A 0x678A # <CJK>
+0xE294C 0x67A3 # <CJK>
+0xE294E 0x67A2 # <CJK>
+0xE294F 0x678F # <CJK>
+0xE2951 0x67F9 # <CJK>
+0xE2952 0x6780 # <CJK>
+0xE2953 0x6B26 # <CJK>
+0xE2954 0x6B27 # <CJK>
+0xE2955 0x6B68 # <CJK>
+0xE2956 0x6B69 # <CJK>
+0xE2958 0x6B81 # <CJK>
+0xE2959 0x6BB4 # <CJK>
+0xE295A 0x6BD1 # <CJK>
+0xE295D 0x6C1C # <CJK>
+0xE2963 0x6C97 # <CJK>
+0xE2964 0x6C6C # <CJK>
+0xE2965 0x6CDF # <CJK>
+0xE2967 0x6CEA # <CJK>
+0xE2969 0x6CE4 # <CJK>
+0xE296A 0x6CD8 # <CJK>
+0xE296B 0x6CB2 # <CJK>
+0xE296C 0x6CCE # <CJK>
+0xE296D 0x6CC8 # <CJK>
+0xE296F 0x708B # <CJK>
+0xE2970 0x7088 # <CJK>
+0xE2971 0x7090 # <CJK>
+0xE2972 0x708F # <CJK>
+0xE2974 0x7087 # <CJK>
+0xE2975 0x7089 # <CJK>
+0xE2976 0x708D # <CJK>
+0xE2977 0x7081 # <CJK>
+0xE2979 0x708C # <CJK>
+0xE297C 0x7240 # <CJK>
+0xE2A21 0x7265 # <CJK>
+0xE2A22 0x7266 # <CJK>
+0xE2A23 0x7268 # <CJK>
+0xE2A26 0x72CD # <CJK>
+0xE2A27 0x72D3 # <CJK>
+0xE2A28 0x72DB # <CJK>
+0xE2A2A 0x72CF # <CJK>
+0xE2A2B 0x73A7 # <CJK>
+0xE2A2C 0x73A3 # <CJK>
+0xE2A2D 0x739E # <CJK>
+0xE2A2F 0x73AF # <CJK>
+0xE2A32 0x73AA # <CJK>
+0xE2A33 0x739C # <CJK>
+0xE2A35 0x7542 # <CJK>
+0xE2A36 0x7544 # <CJK>
+0xE2A37 0x753B # <CJK>
+0xE2A38 0x7541 # <CJK>
+0xE2A3A 0x759B # <CJK>
+0xE2A3B 0x759E # <CJK>
+0xE2A3D 0x79C4 # <CJK>
+0xE2A3E 0x79C3 # <CJK>
+0xE2A3F 0x79C6 # <CJK>
+0xE2A42 0x79C7 # <CJK>
+0xE2A44 0x79CA # <CJK>
+0xE2A47 0x7ACF # <CJK>
+0xE2A48 0x7C76 # <CJK>
+0xE2A49 0x7C74 # <CJK>
+0xE2A4A 0x7CFF # <CJK>
+0xE2A4B 0x7CFC # <CJK>
+0xE2A4E 0x7F59 # <CJK>
+0xE2A4F 0x80A8 # <CJK>
+0xE2A52 0x80B0 # <CJK>
+0xE2A54 0x80B3 # <CJK>
+0xE2A56 0x80A4 # <CJK>
+0xE2A57 0x80B6 # <CJK>
+0xE2A58 0x80A7 # <CJK>
+0xE2A59 0x80AC # <CJK>
+0xE2A5B 0x80A6 # <CJK>
+0xE2A5C 0x5367 # <CJK>
+0xE2A5D 0x820E # <CJK>
+0xE2A5E 0x82C4 # <CJK>
+0xE2A5F 0x833E # <CJK>
+0xE2A60 0x829C # <CJK>
+0xE2A66 0x82AA # <CJK>
+0xE2A68 0x82C9 # <CJK>
+0xE2A6B 0x82A6 # <CJK>
+0xE2A6C 0x82B2 # <CJK>
+0xE2A70 0x8FCC # <CJK>
+0xE2A71 0x8FD9 # <CJK>
+0xE2A72 0x8FCA # <CJK>
+0xE2A73 0x8FD8 # <CJK>
+0xE2A74 0x8FCF # <CJK>
+0xE2A75 0x90B7 # <CJK>
+0xE2A77 0x90AD # <CJK>
+0xE2A78 0x90B9 # <CJK>
+0xE2A79 0x9637 # <CJK>
+0xE2A7B 0x9641 # <CJK>
+0xE2A7C 0x963E # <CJK>
+0xE2A7D 0x96B6 # <CJK>
+0xE2A7E 0x9751 # <CJK>
+0xE2B21 0x9763 # <CJK>
+0xE2B22 0x4E57 # <CJK>
+0xE2B23 0x4E79 # <CJK>
+0xE2B24 0x4EB2 # <CJK>
+0xE2B25 0x4EB0 # <CJK>
+0xE2B26 0x4EAF # <CJK>
+0xE2B27 0x4EB1 # <CJK>
+0xE2B28 0x4FD2 # <CJK>
+0xE2B29 0x4FD5 # <CJK>
+0xE2B2B 0x4FBE # <CJK>
+0xE2B2C 0x4FB8 # <CJK>
+0xE2B2D 0x4FB0 # <CJK>
+0xE2B2E 0x4FB1 # <CJK>
+0xE2B2F 0x4FC8 # <CJK>
+0xE2B32 0x4FC6 # <CJK>
+0xE2B33 0x4FCC # <CJK>
+0xE2B34 0x4FE5 # <CJK>
+0xE2B35 0x4FE3 # <CJK>
+0xE2B36 0x4FB4 # <CJK>
+0xE2B37 0x516A # <CJK>
+0xE2B39 0x519F # <CJK>
+0xE2B3B 0x51C1 # <CJK>
+0xE2B3D 0x51C2 # <CJK>
+0xE2B3E 0x51C3 # <CJK>
+0xE2B3F 0x5245 # <CJK>
+0xE2B40 0x5248 # <CJK>
+0xE2B43 0x524F # <CJK>
+0xE2B46 0x52C5 # <CJK>
+0xE2B47 0x52CA # <CJK>
+0xE2B48 0x52C4 # <CJK>
+0xE2B49 0x5327 # <CJK>
+0xE2B4A 0x5358 # <CJK>
+0xE2B4B 0x537D # <CJK>
+0xE2B4D 0x53DD # <CJK>
+0xE2B4E 0x53DC # <CJK>
+0xE2B4F 0x53DA # <CJK>
+0xE2B50 0x53D9 # <CJK>
+0xE2B51 0x54B9 # <CJK>
+0xE2B53 0x54D0 # <CJK>
+0xE2B54 0x54B4 # <CJK>
+0xE2B55 0x54CA # <CJK>
+0xE2B57 0x54A3 # <CJK>
+0xE2B58 0x54DA # <CJK>
+0xE2B59 0x54A4 # <CJK>
+0xE2B5B 0x54B2 # <CJK>
+0xE2B5C 0x549E # <CJK>
+0xE2B5D 0x549F # <CJK>
+0xE2B5E 0x54B5 # <CJK>
+0xE2B61 0x54CD # <CJK>
+0xE2B63 0x54CC # <CJK>
+0xE2B65 0x5700 # <CJK>
+0xE2B66 0x57AC # <CJK>
+0xE2B67 0x5791 # <CJK>
+0xE2B68 0x578E # <CJK>
+0xE2B69 0x578D # <CJK>
+0xE2B6A 0x5792 # <CJK>
+0xE2B6B 0x57A1 # <CJK>
+0xE2B6C 0x5790 # <CJK>
+0xE2B6D 0x57A6 # <CJK>
+0xE2B6E 0x57A8 # <CJK>
+0xE2B70 0x579C # <CJK>
+0xE2B71 0x5796 # <CJK>
+0xE2B72 0x57A7 # <CJK>
+0xE2B77 0x58F5 # <CJK>
+0xE2B79 0x5909 # <CJK>
+0xE2B7A 0x5908 # <CJK>
+0xE2B7C 0x5952 # <CJK>
+0xE2C21 0x59DF # <CJK>
+0xE2C23 0x59EB # <CJK>
+0xE2C24 0x59EF # <CJK>
+0xE2C25 0x59F0 # <CJK>
+0xE2C26 0x59D5 # <CJK>
+0xE2C27 0x5A0D # <CJK>
+0xE2C28 0x5A04 # <CJK>
+0xE2C29 0x59F9 # <CJK>
+0xE2C2A 0x5A02 # <CJK>
+0xE2C2B 0x59F8 # <CJK>
+0xE2C2C 0x59E2 # <CJK>
+0xE2C2D 0x59D9 # <CJK>
+0xE2C2E 0x59E7 # <CJK>
+0xE2C2F 0x5B6A # <CJK>
+0xE2C32 0x5BAB # <CJK>
+0xE2C34 0x5C1B # <CJK>
+0xE2C35 0x5C2F # <CJK>
+0xE2C37 0x663C # <CJK>
+0xE2C3B 0x5CD1 # <CJK>
+0xE2C3C 0x5CDC # <CJK>
+0xE2C3D 0x5CE6 # <CJK>
+0xE2C3E 0x5CE1 # <CJK>
+0xE2C3F 0x5CCD # <CJK>
+0xE2C41 0x5CE2 # <CJK>
+0xE2C42 0x5CDD # <CJK>
+0xE2C43 0x5CE5 # <CJK>
+0xE2C44 0x5DFB # <CJK>
+0xE2C45 0x5DFA # <CJK>
+0xE2C46 0x5E1E # <CJK>
+0xE2C48 0x5EA1 # <CJK>
+0xE2C4B 0x5EFC # <CJK>
+0xE2C4C 0x5EFB # <CJK>
+0xE2C4D 0x5F2F # <CJK>
+0xE2C50 0x5F66 # <CJK>
+0xE2C54 0x605C # <CJK>
+0xE2C56 0x604E # <CJK>
+0xE2C57 0x6051 # <CJK>
+0xE2C5A 0x6023 # <CJK>
+0xE2C5B 0x6031 # <CJK>
+0xE2C5C 0x607C # <CJK>
+0xE2C5D 0x6052 # <CJK>
+0xE2C5F 0x6060 # <CJK>
+0xE2C60 0x604A # <CJK>
+0xE2C61 0x6061 # <CJK>
+0xE2C63 0x6218 # <CJK>
+0xE2C6B 0x631F # <CJK>
+0xE2C6C 0x6317 # <CJK>
+0xE2C6D 0x62EA # <CJK>
+0xE2C6E 0x6321 # <CJK>
+0xE2C6F 0x6304 # <CJK>
+0xE2C70 0x6305 # <CJK>
+0xE2C72 0x6531 # <CJK>
+0xE2C73 0x6544 # <CJK>
+0xE2C74 0x6540 # <CJK>
+0xE2C76 0x6542 # <CJK>
+0xE2C77 0x65BE # <CJK>
+0xE2C79 0x6629 # <CJK>
+0xE2C7A 0x661B # <CJK>
+0xE2C7C 0x6623 # <CJK>
+0xE2C7D 0x662C # <CJK>
+0xE2C7E 0x661A # <CJK>
+0xE2D21 0x6630 # <CJK>
+0xE2D22 0x663B # <CJK>
+0xE2D23 0x661E # <CJK>
+0xE2D24 0x6637 # <CJK>
+0xE2D25 0x6638 # <CJK>
+0xE2D27 0x670E # <CJK>
+0xE2D2A 0x67E8 # <CJK>
+0xE2D2B 0x67D6 # <CJK>
+0xE2D2D 0x67C7 # <CJK>
+0xE2D2E 0x67BC # <CJK>
+0xE2D2F 0x6852 # <CJK>
+0xE2D30 0x67BF # <CJK>
+0xE2D31 0x67D5 # <CJK>
+0xE2D32 0x67FE # <CJK>
+0xE2D33 0x8363 # <CJK>
+0xE2D34 0x67FB # <CJK>
+0xE2D36 0x67B1 # <CJK>
+0xE2D37 0x6801 # <CJK>
+0xE2D38 0x6805 # <CJK>
+0xE2D39 0x6800 # <CJK>
+0xE2D3A 0x67D7 # <CJK>
+0xE2D3C 0x6B2A # <CJK>
+0xE2D3D 0x6B6B # <CJK>
+0xE2D42 0x6BE1 # <CJK>
+0xE2D45 0x6D23 # <CJK>
+0xE2D46 0x6CFF # <CJK>
+0xE2D47 0x6D14 # <CJK>
+0xE2D48 0x6D05 # <CJK>
+0xE2D49 0x6D13 # <CJK>
+0xE2D4A 0x6D06 # <CJK>
+0xE2D4B 0x6D21 # <CJK>
+0xE2D4D 0x6D15 # <CJK>
+0xE2D4E 0x6CAF # <CJK>
+0xE2D4F 0x6CF4 # <CJK>
+0xE2D50 0x6D02 # <CJK>
+0xE2D51 0x6D45 # <CJK>
+0xE2D53 0x6D26 # <CJK>
+0xE2D55 0x6D44 # <CJK>
+0xE2D57 0x6D24 # <CJK>
+0xE2D58 0x70A5 # <CJK>
+0xE2D5A 0x70A3 # <CJK>
+0xE2D5C 0x70A2 # <CJK>
+0xE2D5D 0x70BB # <CJK>
+0xE2D5E 0x70A0 # <CJK>
+0xE2D5F 0x70AA # <CJK>
+0xE2D62 0x70A8 # <CJK>
+0xE2D63 0x70B6 # <CJK>
+0xE2D64 0x70B2 # <CJK>
+0xE2D65 0x70A7 # <CJK>
+0xE2D68 0x70B9 # <CJK>
+0xE2D69 0x722E # <CJK>
+0xE2D6B 0x723C # <CJK>
+0xE2D6D 0x726D # <CJK>
+0xE2D70 0x72E7 # <CJK>
+0xE2D71 0x72ED # <CJK>
+0xE2D73 0x72EC # <CJK>
+0xE2D74 0x72E5 # <CJK>
+0xE2D75 0x72E2 # <CJK>
+0xE2D77 0x73C4 # <CJK>
+0xE2D78 0x73BD # <CJK>
+0xE2D79 0x73CF # <CJK>
+0xE2D7A 0x73C9 # <CJK>
+0xE2D7B 0x73C1 # <CJK>
+0xE2D7C 0x73D0 # <CJK>
+0xE2D7E 0x73CE # <CJK>
+0xE2E21 0x74ED # <CJK>
+0xE2E22 0x74EB # <CJK>
+0xE2E24 0x74EF # <CJK>
+0xE2E25 0x7549 # <CJK>
+0xE2E26 0x7550 # <CJK>
+0xE2E27 0x7546 # <CJK>
+0xE2E28 0x754A # <CJK>
+0xE2E2A 0x754D # <CJK>
+0xE2E2B 0x75A6 # <CJK>
+0xE2E2F 0x75A8 # <CJK>
+0xE2E32 0x76C7 # <CJK>
+0xE2E33 0x76FF # <CJK>
+0xE2E35 0x76FD # <CJK>
+0xE2E36 0x77E6 # <CJK>
+0xE2E37 0x780A # <CJK>
+0xE2E39 0x7804 # <CJK>
+0xE2E3A 0x780B # <CJK>
+0xE2E3B 0x7807 # <CJK>
+0xE2E3D 0x7815 # <CJK>
+0xE2E3E 0x7808 # <CJK>
+0xE2E40 0x79D3 # <CJK>
+0xE2E41 0x79D4 # <CJK>
+0xE2E42 0x79D0 # <CJK>
+0xE2E43 0x79D7 # <CJK>
+0xE2E44 0x7A7C # <CJK>
+0xE2E47 0x7A7D # <CJK>
+0xE2E48 0x7A83 # <CJK>
+0xE2E49 0x7A82 # <CJK>
+0xE2E4B 0x7AD4 # <CJK>
+0xE2E4C 0x7AD5 # <CJK>
+0xE2E4D 0x7AD3 # <CJK>
+0xE2E4E 0x7AD0 # <CJK>
+0xE2E4F 0x7AD2 # <CJK>
+0xE2E50 0x7AFE # <CJK>
+0xE2E51 0x7AFC # <CJK>
+0xE2E52 0x7C77 # <CJK>
+0xE2E53 0x7C7C # <CJK>
+0xE2E54 0x7C7B # <CJK>
+0xE2E5D 0x7F8F # <CJK>
+0xE2E5E 0x80D3 # <CJK>
+0xE2E60 0x80CB # <CJK>
+0xE2E61 0x80D2 # <CJK>
+0xE2E63 0x8109 # <CJK>
+0xE2E64 0x80E2 # <CJK>
+0xE2E65 0x80DF # <CJK>
+0xE2E66 0x80C6 # <CJK>
+0xE2E68 0x8224 # <CJK>
+0xE2E69 0x82F7 # <CJK>
+0xE2E6A 0x82D8 # <CJK>
+0xE2E6B 0x82DD # <CJK>
+0xE2E6E 0x82F8 # <CJK>
+0xE2E6F 0x82FC # <CJK>
+0xE2E72 0x82E9 # <CJK>
+0xE2E74 0x82EE # <CJK>
+0xE2E76 0x82D0 # <CJK>
+0xE2E77 0x830E # <CJK>
+0xE2E78 0x82E2 # <CJK>
+0xE2E79 0x830B # <CJK>
+0xE2E7A 0x82FD # <CJK>
+0xE2E7B 0x5179 # <CJK>
+0xE2E7C 0x8676 # <CJK>
+0xE2E7E 0x8678 # <CJK>
+0xE2F23 0x8675 # <CJK>
+0xE2F24 0x867D # <CJK>
+0xE2F26 0x8842 # <CJK>
+0xE2F27 0x8866 # <CJK>
+0xE2F29 0x898C # <CJK>
+0xE2F2A 0x8A05 # <CJK>
+0xE2F2C 0x8A06 # <CJK>
+0xE2F2E 0x8C9F # <CJK>
+0xE2F30 0x8FF1 # <CJK>
+0xE2F31 0x8FE7 # <CJK>
+0xE2F32 0x8FE9 # <CJK>
+0xE2F33 0x8FEF # <CJK>
+0xE2F34 0x90C2 # <CJK>
+0xE2F35 0x90BC # <CJK>
+0xE2F37 0x90C6 # <CJK>
+0xE2F38 0x90C0 # <CJK>
+0xE2F3B 0x90CD # <CJK>
+0xE2F3C 0x90C9 # <CJK>
+0xE2F3E 0x90C4 # <CJK>
+0xE2F40 0x9581 # <CJK>
+0xE2F42 0x9CEC # <CJK>
+0xE2F43 0x5032 # <CJK>
+0xE2F44 0x4FF9 # <CJK>
+0xE2F45 0x501D # <CJK>
+0xE2F46 0x4FFF # <CJK>
+0xE2F47 0x5004 # <CJK>
+0xE2F48 0x4FF0 # <CJK>
+0xE2F49 0x5003 # <CJK>
+0xE2F4B 0x5002 # <CJK>
+0xE2F4C 0x4FFC # <CJK>
+0xE2F4D 0x4FF2 # <CJK>
+0xE2F4E 0x5024 # <CJK>
+0xE2F4F 0x5008 # <CJK>
+0xE2F50 0x5036 # <CJK>
+0xE2F51 0x502E # <CJK>
+0xE2F53 0x5010 # <CJK>
+0xE2F54 0x5038 # <CJK>
+0xE2F55 0x5039 # <CJK>
+0xE2F56 0x4FFD # <CJK>
+0xE2F57 0x5056 # <CJK>
+0xE2F58 0x4FFB # <CJK>
+0xE2F59 0x51A3 # <CJK>
+0xE2F5A 0x51A6 # <CJK>
+0xE2F5B 0x51A1 # <CJK>
+0xE2F5E 0x51C7 # <CJK>
+0xE2F5F 0x51C9 # <CJK>
+0xE2F60 0x5260 # <CJK>
+0xE2F61 0x5264 # <CJK>
+0xE2F62 0x5259 # <CJK>
+0xE2F63 0x5265 # <CJK>
+0xE2F64 0x5267 # <CJK>
+0xE2F65 0x5257 # <CJK>
+0xE2F66 0x5263 # <CJK>
+0xE2F68 0x5253 # <CJK>
+0xE2F6A 0x52CF # <CJK>
+0xE2F6C 0x52CE # <CJK>
+0xE2F6D 0x52D0 # <CJK>
+0xE2F6E 0x52D1 # <CJK>
+0xE2F6F 0x52CC # <CJK>
+0xE2F73 0x550D # <CJK>
+0xE2F74 0x54F4 # <CJK>
+0xE2F76 0x5513 # <CJK>
+0xE2F77 0x54EF # <CJK>
+0xE2F78 0x54F5 # <CJK>
+0xE2F79 0x54F9 # <CJK>
+0xE2F7A 0x5502 # <CJK>
+0xE2F7B 0x5500 # <CJK>
+0xE2F7E 0x5518 # <CJK>
+0xE3021 0x54F0 # <CJK>
+0xE3022 0x54F6 # <CJK>
+0xE3025 0x5519 # <CJK>
+0xE3027 0x5705 # <CJK>
+0xE3028 0x57C9 # <CJK>
+0xE302A 0x57B7 # <CJK>
+0xE302B 0x57CD # <CJK>
+0xE302F 0x57BE # <CJK>
+0xE3030 0x57BB # <CJK>
+0xE3032 0x57DB # <CJK>
+0xE3033 0x57C8 # <CJK>
+0xE3034 0x57C4 # <CJK>
+0xE3035 0x57C5 # <CJK>
+0xE3036 0x57D1 # <CJK>
+0xE3037 0x57CA # <CJK>
+0xE3038 0x57C0 # <CJK>
+0xE303B 0x5A21 # <CJK>
+0xE303C 0x5A2A # <CJK>
+0xE303E 0x5A1D # <CJK>
+0xE3040 0x5A0B # <CJK>
+0xE3045 0x5A22 # <CJK>
+0xE3048 0x5A24 # <CJK>
+0xE304A 0x5A14 # <CJK>
+0xE304B 0x5A31 # <CJK>
+0xE304D 0x5A2F # <CJK>
+0xE304E 0x5A1A # <CJK>
+0xE304F 0x5A12 # <CJK>
+0xE3052 0x5A26 # <CJK>
+0xE3055 0x5BBC # <CJK>
+0xE3056 0x5BBB # <CJK>
+0xE3057 0x5BB7 # <CJK>
+0xE3058 0x5C05 # <CJK>
+0xE3059 0x5C06 # <CJK>
+0xE305A 0x5C52 # <CJK>
+0xE305B 0x5C53 # <CJK>
+0xE305E 0x5CFA # <CJK>
+0xE305F 0x5CEB # <CJK>
+0xE3061 0x5CF3 # <CJK>
+0xE3062 0x5CF5 # <CJK>
+0xE3063 0x5CE9 # <CJK>
+0xE3064 0x5CEF # <CJK>
+0xE3066 0x5E2A # <CJK>
+0xE3067 0x5E30 # <CJK>
+0xE3068 0x5E2E # <CJK>
+0xE3069 0x5E2C # <CJK>
+0xE306A 0x5E2F # <CJK>
+0xE306B 0x5EAF # <CJK>
+0xE306C 0x5EA9 # <CJK>
+0xE306E 0x5EFD # <CJK>
+0xE306F 0x5F32 # <CJK>
+0xE3070 0x5F8E # <CJK>
+0xE3071 0x5F93 # <CJK>
+0xE3072 0x5F8F # <CJK>
+0xE3073 0x604F # <CJK>
+0xE3074 0x6099 # <CJK>
+0xE3076 0x607E # <CJK>
+0xE3078 0x6074 # <CJK>
+0xE3079 0x604B # <CJK>
+0xE307A 0x6073 # <CJK>
+0xE307B 0x6075 # <CJK>
+0xE307E 0x6056 # <CJK>
+0xE3121 0x60A9 # <CJK>
+0xE3122 0x608B # <CJK>
+0xE3123 0x60A6 # <CJK>
+0xE3125 0x6093 # <CJK>
+0xE3126 0x60AE # <CJK>
+0xE3127 0x609E # <CJK>
+0xE3128 0x60A7 # <CJK>
+0xE3129 0x6245 # <CJK>
+0xE312C 0x632E # <CJK>
+0xE312E 0x6352 # <CJK>
+0xE312F 0x6330 # <CJK>
+0xE3130 0x635B # <CJK>
+0xE3132 0x6319 # <CJK>
+0xE3133 0x631B # <CJK>
+0xE3135 0x6331 # <CJK>
+0xE3136 0x635D # <CJK>
+0xE3137 0x6337 # <CJK>
+0xE3138 0x6335 # <CJK>
+0xE3139 0x6353 # <CJK>
+0xE313B 0x635C # <CJK>
+0xE313C 0x633F # <CJK>
+0xE313D 0x654B # <CJK>
+0xE3140 0x658B # <CJK>
+0xE3142 0x659A # <CJK>
+0xE3143 0x6650 # <CJK>
+0xE3144 0x6646 # <CJK>
+0xE3145 0x664E # <CJK>
+0xE3146 0x6640 # <CJK>
+0xE3148 0x664B # <CJK>
+0xE3149 0x6648 # <CJK>
+0xE314B 0x6660 # <CJK>
+0xE314C 0x6644 # <CJK>
+0xE314D 0x664D # <CJK>
+0xE314F 0x6837 # <CJK>
+0xE3150 0x6824 # <CJK>
+0xE3153 0x681B # <CJK>
+0xE3154 0x6836 # <CJK>
+0xE3156 0x682C # <CJK>
+0xE3157 0x6819 # <CJK>
+0xE3158 0x6856 # <CJK>
+0xE3159 0x6847 # <CJK>
+0xE315A 0x683E # <CJK>
+0xE315B 0x681E # <CJK>
+0xE315D 0x6815 # <CJK>
+0xE315E 0x6822 # <CJK>
+0xE315F 0x6827 # <CJK>
+0xE3160 0x6859 # <CJK>
+0xE3161 0x6858 # <CJK>
+0xE3162 0x6855 # <CJK>
+0xE3163 0x6830 # <CJK>
+0xE3164 0x6823 # <CJK>
+0xE3165 0x6B2E # <CJK>
+0xE3166 0x6B2B # <CJK>
+0xE3167 0x6B30 # <CJK>
+0xE3168 0x6B6C # <CJK>
+0xE316A 0x6B8B # <CJK>
+0xE316C 0x6BE9 # <CJK>
+0xE316D 0x6BEA # <CJK>
+0xE316E 0x6BE5 # <CJK>
+0xE316F 0x6D6B # <CJK>
+0xE3172 0x6D73 # <CJK>
+0xE3173 0x6D57 # <CJK>
+0xE3176 0x6D5D # <CJK>
+0xE3177 0x6D56 # <CJK>
+0xE3178 0x6D8F # <CJK>
+0xE3179 0x6D5B # <CJK>
+0xE317A 0x6D1C # <CJK>
+0xE317B 0x6D9A # <CJK>
+0xE317C 0x6D9B # <CJK>
+0xE317D 0x6D99 # <CJK>
+0xE3221 0x6D81 # <CJK>
+0xE3222 0x6D71 # <CJK>
+0xE3225 0x6D72 # <CJK>
+0xE3226 0x6D5C # <CJK>
+0xE3227 0x6D96 # <CJK>
+0xE3228 0x70C4 # <CJK>
+0xE3229 0x70DB # <CJK>
+0xE322A 0x70CC # <CJK>
+0xE322B 0x70D0 # <CJK>
+0xE322C 0x70E3 # <CJK>
+0xE322D 0x70DF # <CJK>
+0xE322F 0x70D6 # <CJK>
+0xE3230 0x70EE # <CJK>
+0xE3231 0x70D5 # <CJK>
+0xE3236 0x727A # <CJK>
+0xE3238 0x72F5 # <CJK>
+0xE3239 0x7302 # <CJK>
+0xE323C 0x73E2 # <CJK>
+0xE323D 0x73EC # <CJK>
+0xE323E 0x73D5 # <CJK>
+0xE323F 0x73F9 # <CJK>
+0xE3240 0x73DF # <CJK>
+0xE3241 0x73E6 # <CJK>
+0xE3246 0x73E4 # <CJK>
+0xE3247 0x73E1 # <CJK>
+0xE3248 0x74F3 # <CJK>
+0xE324D 0x7556 # <CJK>
+0xE324E 0x7555 # <CJK>
+0xE324F 0x7558 # <CJK>
+0xE3250 0x7557 # <CJK>
+0xE3251 0x755E # <CJK>
+0xE3252 0x75C3 # <CJK>
+0xE3255 0x75B4 # <CJK>
+0xE3257 0x75B1 # <CJK>
+0xE325A 0x76CB # <CJK>
+0xE325B 0x76CC # <CJK>
+0xE325C 0x772A # <CJK>
+0xE325E 0x7716 # <CJK>
+0xE325F 0x770F # <CJK>
+0xE3262 0x773F # <CJK>
+0xE3263 0x772B # <CJK>
+0xE3264 0x770E # <CJK>
+0xE3265 0x7724 # <CJK>
+0xE3267 0x7721 # <CJK>
+0xE3268 0x7718 # <CJK>
+0xE3269 0x77DD # <CJK>
+0xE326C 0x7824 # <CJK>
+0xE326D 0x7836 # <CJK>
+0xE326F 0x7958 # <CJK>
+0xE3270 0x7959 # <CJK>
+0xE3272 0x7962 # <CJK>
+0xE3273 0x79DA # <CJK>
+0xE3274 0x79D9 # <CJK>
+0xE3276 0x79E1 # <CJK>
+0xE3277 0x79E5 # <CJK>
+0xE3278 0x79E8 # <CJK>
+0xE3279 0x79DB # <CJK>
+0xE327B 0x79E2 # <CJK>
+0xE327C 0x79F0 # <CJK>
+0xE3323 0x7ADA # <CJK>
+0xE3324 0x7ADD # <CJK>
+0xE3326 0x7ADB # <CJK>
+0xE3327 0x7ADC # <CJK>
+0xE332A 0x7B0D # <CJK>
+0xE332B 0x7B0B # <CJK>
+0xE332C 0x7B14 # <CJK>
+0xE332D 0x7C8E # <CJK>
+0xE332E 0x7C86 # <CJK>
+0xE3330 0x7C87 # <CJK>
+0xE3331 0x7C83 # <CJK>
+0xE3332 0x7C8B # <CJK>
+0xE3337 0x7D24 # <CJK>
+0xE333B 0x7D25 # <CJK>
+0xE333C 0x7F62 # <CJK>
+0xE333D 0x7F93 # <CJK>
+0xE333E 0x7F99 # <CJK>
+0xE333F 0x7F97 # <CJK>
+0xE3342 0x7FC4 # <CJK>
+0xE3343 0x7FC6 # <CJK>
+0xE3344 0x800A # <CJK>
+0xE3347 0x8040 # <CJK>
+0xE3348 0x803C # <CJK>
+0xE3349 0x803B # <CJK>
+0xE334A 0x80F6 # <CJK>
+0xE334B 0x80FF # <CJK>
+0xE334C 0x80EE # <CJK>
+0xE334D 0x8104 # <CJK>
+0xE334E 0x8103 # <CJK>
+0xE334F 0x8107 # <CJK>
+0xE3352 0x80F7 # <CJK>
+0xE3355 0x822D # <CJK>
+0xE3357 0x8227 # <CJK>
+0xE3358 0x8229 # <CJK>
+0xE3359 0x831F # <CJK>
+0xE335A 0x8357 # <CJK>
+0xE335F 0x8321 # <CJK>
+0xE3362 0x8318 # <CJK>
+0xE3363 0x8358 # <CJK>
+0xE3369 0x8684 # <CJK>
+0xE336A 0x869F # <CJK>
+0xE336B 0x869B # <CJK>
+0xE336C 0x8689 # <CJK>
+0xE336D 0x86A6 # <CJK>
+0xE336E 0x8692 # <CJK>
+0xE336F 0x868F # <CJK>
+0xE3370 0x86A0 # <CJK>
+0xE3371 0x884F # <CJK>
+0xE3372 0x8878 # <CJK>
+0xE3373 0x887A # <CJK>
+0xE3374 0x886E # <CJK>
+0xE3375 0x887B # <CJK>
+0xE3376 0x8884 # <CJK>
+0xE3377 0x8873 # <CJK>
+0xE337A 0x8A0D # <CJK>
+0xE337B 0x8A0B # <CJK>
+0xE337C 0x8A19 # <CJK>
+0xE3425 0x8FF9 # <CJK>
+0xE3426 0x9009 # <CJK>
+0xE3427 0x9008 # <CJK>
+0xE3429 0x90DE # <CJK>
+0xE342A 0x9151 # <CJK>
+0xE342D 0x91DB # <CJK>
+0xE342E 0x91DF # <CJK>
+0xE342F 0x91DE # <CJK>
+0xE3430 0x91D6 # <CJK>
+0xE3431 0x91E0 # <CJK>
+0xE3432 0x9585 # <CJK>
+0xE3433 0x9660 # <CJK>
+0xE3434 0x9659 # <CJK>
+0xE3436 0x9656 # <CJK>
+0xE3439 0x96BD # <CJK>
+0xE343C 0x5042 # <CJK>
+0xE343D 0x5059 # <CJK>
+0xE343F 0x5044 # <CJK>
+0xE3440 0x5066 # <CJK>
+0xE3441 0x5052 # <CJK>
+0xE3442 0x5054 # <CJK>
+0xE3443 0x5071 # <CJK>
+0xE3444 0x5050 # <CJK>
+0xE3445 0x507B # <CJK>
+0xE3446 0x507C # <CJK>
+0xE3447 0x5058 # <CJK>
+0xE344A 0x5079 # <CJK>
+0xE344B 0x506C # <CJK>
+0xE344C 0x5078 # <CJK>
+0xE344D 0x51A8 # <CJK>
+0xE344E 0x51D1 # <CJK>
+0xE344F 0x51CF # <CJK>
+0xE3450 0x5268 # <CJK>
+0xE3451 0x5276 # <CJK>
+0xE3452 0x52D4 # <CJK>
+0xE3454 0x53A0 # <CJK>
+0xE3455 0x53C4 # <CJK>
+0xE3457 0x5558 # <CJK>
+0xE3458 0x554C # <CJK>
+0xE3459 0x5568 # <CJK>
+0xE345B 0x5549 # <CJK>
+0xE345E 0x555D # <CJK>
+0xE345F 0x5529 # <CJK>
+0xE3461 0x5554 # <CJK>
+0xE3462 0x5553 # <CJK>
+0xE3464 0x555A # <CJK>
+0xE3466 0x553A # <CJK>
+0xE3467 0x553F # <CJK>
+0xE3468 0x552B # <CJK>
+0xE3469 0x57EA # <CJK>
+0xE346B 0x57EF # <CJK>
+0xE346E 0x57DD # <CJK>
+0xE346F 0x57FE # <CJK>
+0xE3471 0x57DE # <CJK>
+0xE3472 0x57E6 # <CJK>
+0xE3474 0x57E8 # <CJK>
+0xE3475 0x57FF # <CJK>
+0xE3476 0x5803 # <CJK>
+0xE3477 0x58F7 # <CJK>
+0xE3478 0x68A6 # <CJK>
+0xE3479 0x591F # <CJK>
+0xE347B 0x595B # <CJK>
+0xE347C 0x595D # <CJK>
+0xE347D 0x595E # <CJK>
+0xE3522 0x5A2B # <CJK>
+0xE3524 0x5A3B # <CJK>
+0xE3527 0x5A61 # <CJK>
+0xE3528 0x5A3A # <CJK>
+0xE3529 0x5A6E # <CJK>
+0xE352A 0x5A4B # <CJK>
+0xE352B 0x5A6B # <CJK>
+0xE352E 0x5A45 # <CJK>
+0xE352F 0x5A4E # <CJK>
+0xE3530 0x5A68 # <CJK>
+0xE3531 0x5A3D # <CJK>
+0xE3532 0x5A71 # <CJK>
+0xE3533 0x5A3F # <CJK>
+0xE3534 0x5A6F # <CJK>
+0xE3535 0x5A75 # <CJK>
+0xE3537 0x5A73 # <CJK>
+0xE3538 0x5A2C # <CJK>
+0xE3539 0x5A59 # <CJK>
+0xE353A 0x5A54 # <CJK>
+0xE353B 0x5A4F # <CJK>
+0xE353C 0x5A63 # <CJK>
+0xE353F 0x5BC8 # <CJK>
+0xE3541 0x5BC3 # <CJK>
+0xE3543 0x5C5B # <CJK>
+0xE3544 0x5C61 # <CJK>
+0xE3546 0x5D21 # <CJK>
+0xE3547 0x5D0A # <CJK>
+0xE3548 0x5D09 # <CJK>
+0xE354A 0x5D2C # <CJK>
+0xE354B 0x5D08 # <CJK>
+0xE354E 0x5D2A # <CJK>
+0xE354F 0x5D15 # <CJK>
+0xE3551 0x5D10 # <CJK>
+0xE3552 0x5D13 # <CJK>
+0xE3554 0x5D2F # <CJK>
+0xE3555 0x5D18 # <CJK>
+0xE3557 0x5DE3 # <CJK>
+0xE3558 0x5E39 # <CJK>
+0xE3559 0x5E35 # <CJK>
+0xE355A 0x5E3A # <CJK>
+0xE355B 0x5E32 # <CJK>
+0xE3560 0x5EBB # <CJK>
+0xE3561 0x5EBA # <CJK>
+0xE3562 0x5F34 # <CJK>
+0xE3563 0x5F39 # <CJK>
+0xE3568 0x6098 # <CJK>
+0xE356A 0x60D0 # <CJK>
+0xE356E 0x60D7 # <CJK>
+0xE356F 0x60AA # <CJK>
+0xE3571 0x60A1 # <CJK>
+0xE3572 0x60A4 # <CJK>
+0xE3574 0x60EE # <CJK>
+0xE3576 0x60E7 # <CJK>
+0xE3579 0x60DE # <CJK>
+0xE357C 0x637E # <CJK>
+0xE357D 0x638B # <CJK>
+0xE3622 0x6379 # <CJK>
+0xE3623 0x6386 # <CJK>
+0xE3624 0x6393 # <CJK>
+0xE3626 0x6373 # <CJK>
+0xE3627 0x636A # <CJK>
+0xE3629 0x636C # <CJK>
+0xE362B 0x637F # <CJK>
+0xE362D 0x63B2 # <CJK>
+0xE362E 0x63BA # <CJK>
+0xE3631 0x6366 # <CJK>
+0xE3632 0x6374 # <CJK>
+0xE3634 0x655A # <CJK>
+0xE3636 0x654E # <CJK>
+0xE3637 0x654D # <CJK>
+0xE3638 0x658D # <CJK>
+0xE3639 0x658E # <CJK>
+0xE363A 0x65AD # <CJK>
+0xE363C 0x65C7 # <CJK>
+0xE363D 0x65CA # <CJK>
+0xE363F 0x65C9 # <CJK>
+0xE3641 0x65E3 # <CJK>
+0xE3642 0x6657 # <CJK>
+0xE3644 0x6663 # <CJK>
+0xE3645 0x6667 # <CJK>
+0xE3646 0x671A # <CJK>
+0xE3647 0x6719 # <CJK>
+0xE3648 0x6716 # <CJK>
+0xE364B 0x689E # <CJK>
+0xE364C 0x68B6 # <CJK>
+0xE364D 0x6898 # <CJK>
+0xE364E 0x6873 # <CJK>
+0xE3650 0x689A # <CJK>
+0xE3651 0x688E # <CJK>
+0xE3652 0x68B7 # <CJK>
+0xE3653 0x68DB # <CJK>
+0xE3654 0x68A5 # <CJK>
+0xE3655 0x686C # <CJK>
+0xE3656 0x68C1 # <CJK>
+0xE3657 0x6884 # <CJK>
+0xE365A 0x6895 # <CJK>
+0xE365B 0x687A # <CJK>
+0xE365C 0x6899 # <CJK>
+0xE365E 0x68B8 # <CJK>
+0xE365F 0x68B9 # <CJK>
+0xE3660 0x6870 # <CJK>
+0xE3662 0x6B35 # <CJK>
+0xE3664 0x6B90 # <CJK>
+0xE3665 0x6BBB # <CJK>
+0xE3666 0x6BED # <CJK>
+0xE366A 0x6DC1 # <CJK>
+0xE366B 0x6DC3 # <CJK>
+0xE366C 0x6DCE # <CJK>
+0xE366F 0x6DAD # <CJK>
+0xE3670 0x6E04 # <CJK>
+0xE3672 0x6DB9 # <CJK>
+0xE3674 0x6DE7 # <CJK>
+0xE3676 0x6E08 # <CJK>
+0xE3677 0x6E06 # <CJK>
+0xE3679 0x6E0A # <CJK>
+0xE367A 0x6DB0 # <CJK>
+0xE367C 0x6DF8 # <CJK>
+0xE367D 0x6E0C # <CJK>
+0xE3721 0x6DB1 # <CJK>
+0xE3723 0x6E02 # <CJK>
+0xE3724 0x6E07 # <CJK>
+0xE3725 0x6E09 # <CJK>
+0xE3726 0x6E01 # <CJK>
+0xE3727 0x6E17 # <CJK>
+0xE3728 0x6DFF # <CJK>
+0xE3729 0x6E12 # <CJK>
+0xE372C 0x7103 # <CJK>
+0xE372D 0x7107 # <CJK>
+0xE372E 0x7101 # <CJK>
+0xE372F 0x70F5 # <CJK>
+0xE3730 0x70F1 # <CJK>
+0xE3731 0x7108 # <CJK>
+0xE3732 0x70F2 # <CJK>
+0xE3733 0x710F # <CJK>
+0xE3735 0x70FE # <CJK>
+0xE3739 0x731A # <CJK>
+0xE373A 0x7310 # <CJK>
+0xE373B 0x730E # <CJK>
+0xE373C 0x7402 # <CJK>
+0xE373D 0x73F3 # <CJK>
+0xE3740 0x73FB # <CJK>
+0xE3744 0x751B # <CJK>
+0xE3745 0x7523 # <CJK>
+0xE3746 0x7561 # <CJK>
+0xE3747 0x7568 # <CJK>
+0xE3749 0x7567 # <CJK>
+0xE374A 0x75D3 # <CJK>
+0xE374D 0x7690 # <CJK>
+0xE3750 0x76D5 # <CJK>
+0xE3751 0x76D7 # <CJK>
+0xE3752 0x76D6 # <CJK>
+0xE3753 0x7730 # <CJK>
+0xE3755 0x7726 # <CJK>
+0xE3757 0x7740 # <CJK>
+0xE3759 0x771E # <CJK>
+0xE375D 0x7847 # <CJK>
+0xE375F 0x784B # <CJK>
+0xE3760 0x7851 # <CJK>
+0xE3761 0x784F # <CJK>
+0xE3762 0x7842 # <CJK>
+0xE3763 0x7846 # <CJK>
+0xE3765 0x796E # <CJK>
+0xE3766 0x796C # <CJK>
+0xE3767 0x79F2 # <CJK>
+0xE3769 0x79F1 # <CJK>
+0xE376A 0x79F5 # <CJK>
+0xE376B 0x79F3 # <CJK>
+0xE376C 0x79F9 # <CJK>
+0xE3770 0x7A9A # <CJK>
+0xE3771 0x7A93 # <CJK>
+0xE3772 0x7A91 # <CJK>
+0xE3773 0x7AE1 # <CJK>
+0xE3776 0x7B21 # <CJK>
+0xE3777 0x7B1C # <CJK>
+0xE3778 0x7B16 # <CJK>
+0xE3779 0x7B17 # <CJK>
+0xE377A 0x7B36 # <CJK>
+0xE377B 0x7B1F # <CJK>
+0xE377D 0x7C93 # <CJK>
+0xE377E 0x7C99 # <CJK>
+0xE3821 0x7C9A # <CJK>
+0xE3822 0x7C9C # <CJK>
+0xE3824 0x7D49 # <CJK>
+0xE3826 0x7D34 # <CJK>
+0xE3827 0x7D37 # <CJK>
+0xE3829 0x7D2D # <CJK>
+0xE382B 0x7D4C # <CJK>
+0xE382E 0x7D48 # <CJK>
+0xE3831 0x7F3B # <CJK>
+0xE3836 0x8008 # <CJK>
+0xE3837 0x801A # <CJK>
+0xE3839 0x801D # <CJK>
+0xE383B 0x8049 # <CJK>
+0xE383C 0x8045 # <CJK>
+0xE383D 0x8044 # <CJK>
+0xE383E 0x7C9B # <CJK>
+0xE3841 0x812A # <CJK>
+0xE3842 0x812E # <CJK>
+0xE3845 0x8131 # <CJK>
+0xE3847 0x811A # <CJK>
+0xE3848 0x8134 # <CJK>
+0xE3849 0x8117 # <CJK>
+0xE384D 0x831D # <CJK>
+0xE384E 0x8371 # <CJK>
+0xE384F 0x8384 # <CJK>
+0xE3850 0x8380 # <CJK>
+0xE3851 0x8372 # <CJK>
+0xE3852 0x83A1 # <CJK>
+0xE3854 0x8379 # <CJK>
+0xE3855 0x8391 # <CJK>
+0xE3857 0x839F # <CJK>
+0xE3858 0x83AD # <CJK>
+0xE385B 0x8323 # <CJK>
+0xE385D 0x8385 # <CJK>
+0xE385E 0x839C # <CJK>
+0xE385F 0x83B7 # <CJK>
+0xE3860 0x8658 # <CJK>
+0xE3861 0x865A # <CJK>
+0xE3863 0x8657 # <CJK>
+0xE3864 0x86B2 # <CJK>
+0xE3866 0x86AE # <CJK>
+0xE386A 0x8845 # <CJK>
+0xE386B 0x889C # <CJK>
+0xE386C 0x8894 # <CJK>
+0xE386D 0x88A3 # <CJK>
+0xE386E 0x888F # <CJK>
+0xE386F 0x88A5 # <CJK>
+0xE3870 0x88A9 # <CJK>
+0xE3871 0x88A6 # <CJK>
+0xE3872 0x888A # <CJK>
+0xE3873 0x88A0 # <CJK>
+0xE3874 0x8890 # <CJK>
+0xE3875 0x8992 # <CJK>
+0xE3876 0x8991 # <CJK>
+0xE3877 0x8994 # <CJK>
+0xE3879 0x8A26 # <CJK>
+0xE387A 0x8A32 # <CJK>
+0xE387B 0x8A28 # <CJK>
+0xE387E 0x8A1C # <CJK>
+0xE3922 0x8A2B # <CJK>
+0xE3923 0x8A20 # <CJK>
+0xE3925 0x8A29 # <CJK>
+0xE3929 0x8A21 # <CJK>
+0xE392A 0x8C3A # <CJK>
+0xE392C 0x8C5B # <CJK>
+0xE392D 0x8C58 # <CJK>
+0xE392E 0x8C7C # <CJK>
+0xE3930 0x8CA6 # <CJK>
+0xE3931 0x8CAE # <CJK>
+0xE3932 0x8CAD # <CJK>
+0xE3933 0x8D65 # <CJK>
+0xE3935 0x8D7E # <CJK>
+0xE3937 0x8D7C # <CJK>
+0xE3938 0x8D7F # <CJK>
+0xE3939 0x8D7A # <CJK>
+0xE393A 0x8DBD # <CJK>
+0xE393D 0x8DC0 # <CJK>
+0xE393E 0x8DBB # <CJK>
+0xE393F 0x8EAD # <CJK>
+0xE3940 0x8EAF # <CJK>
+0xE3941 0x8ED6 # <CJK>
+0xE3947 0x8ED9 # <CJK>
+0xE394A 0x9012 # <CJK>
+0xE394B 0x900E # <CJK>
+0xE394C 0x9025 # <CJK>
+0xE394E 0x9013 # <CJK>
+0xE394F 0x90EE # <CJK>
+0xE3951 0x90AB # <CJK>
+0xE3952 0x90F7 # <CJK>
+0xE3954 0x9159 # <CJK>
+0xE3955 0x9154 # <CJK>
+0xE3956 0x91F2 # <CJK>
+0xE3957 0x91F0 # <CJK>
+0xE3958 0x91E5 # <CJK>
+0xE3959 0x91F6 # <CJK>
+0xE395C 0x9587 # <CJK>
+0xE395E 0x965A # <CJK>
+0xE3961 0x966E # <CJK>
+0xE3965 0x9679 # <CJK>
+0xE3967 0x98E1 # <CJK>
+0xE3968 0x98E6 # <CJK>
+0xE396A 0x9EC4 # <CJK>
+0xE396B 0x9ED2 # <CJK>
+0xE396C 0x4E80 # <CJK>
+0xE396E 0x4E81 # <CJK>
+0xE396F 0x508F # <CJK>
+0xE3970 0x5097 # <CJK>
+0xE3971 0x5088 # <CJK>
+0xE3972 0x5089 # <CJK>
+0xE3975 0x5081 # <CJK>
+0xE3976 0x5160 # <CJK>
+0xE3979 0x5E42 # <CJK>
+0xE397A 0x51D3 # <CJK>
+0xE397D 0x51D2 # <CJK>
+0xE397E 0x51D6 # <CJK>
+0xE3A21 0x5273 # <CJK>
+0xE3A23 0x5270 # <CJK>
+0xE3A27 0x53A8 # <CJK>
+0xE3A28 0x53A6 # <CJK>
+0xE3A29 0x53C5 # <CJK>
+0xE3A2A 0x5597 # <CJK>
+0xE3A2B 0x55DE # <CJK>
+0xE3A2E 0x5596 # <CJK>
+0xE3A2F 0x55B4 # <CJK>
+0xE3A31 0x5585 # <CJK>
+0xE3A33 0x559B # <CJK>
+0xE3A34 0x55A0 # <CJK>
+0xE3A36 0x5559 # <CJK>
+0xE3A38 0x5586 # <CJK>
+0xE3A3B 0x55AF # <CJK>
+0xE3A3C 0x557A # <CJK>
+0xE3A40 0x559E # <CJK>
+0xE3A42 0x55A9 # <CJK>
+0xE3A43 0x570F # <CJK>
+0xE3A44 0x570E # <CJK>
+0xE3A45 0x581A # <CJK>
+0xE3A47 0x581F # <CJK>
+0xE3A49 0x583C # <CJK>
+0xE3A4A 0x5818 # <CJK>
+0xE3A4B 0x583E # <CJK>
+0xE3A4C 0x5826 # <CJK>
+0xE3A4E 0x583A # <CJK>
+0xE3A50 0x5822 # <CJK>
+0xE3A52 0x58FB # <CJK>
+0xE3A53 0x5963 # <CJK>
+0xE3A54 0x5964 # <CJK>
+0xE3A56 0x5AA8 # <CJK>
+0xE3A57 0x5AA3 # <CJK>
+0xE3A58 0x5A82 # <CJK>
+0xE3A59 0x5A88 # <CJK>
+0xE3A5A 0x5AA1 # <CJK>
+0xE3A5B 0x5A85 # <CJK>
+0xE3A5C 0x5A98 # <CJK>
+0xE3A5E 0x5A99 # <CJK>
+0xE3A60 0x5A89 # <CJK>
+0xE3A61 0x5A81 # <CJK>
+0xE3A62 0x5A96 # <CJK>
+0xE3A63 0x5A80 # <CJK>
+0xE3A66 0x5A91 # <CJK>
+0xE3A6B 0x5ACF # <CJK>
+0xE3A72 0x5A87 # <CJK>
+0xE3A73 0x5AA0 # <CJK>
+0xE3A75 0x5A79 # <CJK>
+0xE3A77 0x5A86 # <CJK>
+0xE3A78 0x5AAB # <CJK>
+0xE3A79 0x5AAA # <CJK>
+0xE3A7A 0x5AA4 # <CJK>
+0xE3A7B 0x5A8D # <CJK>
+0xE3A7C 0x5A7E # <CJK>
+0xE3A7E 0x5BD5 # <CJK>
+0xE3B24 0x5C1E # <CJK>
+0xE3B25 0x5C5F # <CJK>
+0xE3B26 0x5C5E # <CJK>
+0xE3B27 0x5D44 # <CJK>
+0xE3B28 0x5D3E # <CJK>
+0xE3B2A 0x5D48 # <CJK>
+0xE3B2B 0x5D1C # <CJK>
+0xE3B2D 0x5D5B # <CJK>
+0xE3B2E 0x5D4D # <CJK>
+0xE3B31 0x5D57 # <CJK>
+0xE3B33 0x5D53 # <CJK>
+0xE3B34 0x5D4F # <CJK>
+0xE3B36 0x5D3B # <CJK>
+0xE3B37 0x5D46 # <CJK>
+0xE3B3A 0x5E46 # <CJK>
+0xE3B3B 0x5E47 # <CJK>
+0xE3B3D 0x5E48 # <CJK>
+0xE3B3E 0x5EC0 # <CJK>
+0xE3B3F 0x5EBD # <CJK>
+0xE3B40 0x5EBF # <CJK>
+0xE3B42 0x5F11 # <CJK>
+0xE3B44 0x5F3E # <CJK>
+0xE3B45 0x5F3B # <CJK>
+0xE3B47 0x5F3A # <CJK>
+0xE3B4B 0x5FA7 # <CJK>
+0xE3B4D 0x60EA # <CJK>
+0xE3B4F 0x6107 # <CJK>
+0xE3B50 0x6122 # <CJK>
+0xE3B51 0x610C # <CJK>
+0xE3B54 0x60B3 # <CJK>
+0xE3B55 0x60D6 # <CJK>
+0xE3B56 0x60D2 # <CJK>
+0xE3B58 0x60E3 # <CJK>
+0xE3B59 0x60E5 # <CJK>
+0xE3B5A 0x60E9 # <CJK>
+0xE3B5D 0x6111 # <CJK>
+0xE3B5E 0x60FD # <CJK>
+0xE3B61 0x611E # <CJK>
+0xE3B62 0x6120 # <CJK>
+0xE3B63 0x6121 # <CJK>
+0xE3B64 0x621E # <CJK>
+0xE3B66 0x63E2 # <CJK>
+0xE3B67 0x63DE # <CJK>
+0xE3B68 0x63E6 # <CJK>
+0xE3B6D 0x63F8 # <CJK>
+0xE3B6F 0x63FE # <CJK>
+0xE3B70 0x63C1 # <CJK>
+0xE3B71 0x63BF # <CJK>
+0xE3B72 0x63F7 # <CJK>
+0xE3B73 0x63D1 # <CJK>
+0xE3B74 0x655F # <CJK>
+0xE3B75 0x6560 # <CJK>
+0xE3B76 0x6561 # <CJK>
+0xE3B79 0x65D1 # <CJK>
+0xE3B7C 0x667D # <CJK>
+0xE3B7D 0x666B # <CJK>
+0xE3B7E 0x667F # <CJK>
+0xE3C23 0x6673 # <CJK>
+0xE3C24 0x6681 # <CJK>
+0xE3C25 0x666D # <CJK>
+0xE3C26 0x6669 # <CJK>
+0xE3C29 0x671E # <CJK>
+0xE3C2A 0x68ED # <CJK>
+0xE3C2F 0x6903 # <CJK>
+0xE3C31 0x68FE # <CJK>
+0xE3C32 0x68E5 # <CJK>
+0xE3C33 0x691E # <CJK>
+0xE3C34 0x6902 # <CJK>
+0xE3C37 0x6909 # <CJK>
+0xE3C38 0x68CA # <CJK>
+0xE3C39 0x6900 # <CJK>
+0xE3C3B 0x6901 # <CJK>
+0xE3C3C 0x6918 # <CJK>
+0xE3C3D 0x68E2 # <CJK>
+0xE3C3E 0x68CF # <CJK>
+0xE3C40 0x692E # <CJK>
+0xE3C41 0x68C5 # <CJK>
+0xE3C42 0x68FF # <CJK>
+0xE3C44 0x691C # <CJK>
+0xE3C45 0x68C3 # <CJK>
+0xE3C47 0x6B6F # <CJK>
+0xE3C49 0x6B6E # <CJK>
+0xE3C4B 0x6BBE # <CJK>
+0xE3C4D 0x6BF4 # <CJK>
+0xE3C4E 0x6C2D # <CJK>
+0xE3C50 0x6DB6 # <CJK>
+0xE3C51 0x6E75 # <CJK>
+0xE3C52 0x6E1E # <CJK>
+0xE3C54 0x6E18 # <CJK>
+0xE3C56 0x6E48 # <CJK>
+0xE3C58 0x6E4F # <CJK>
+0xE3C5A 0x6E42 # <CJK>
+0xE3C5B 0x6E6A # <CJK>
+0xE3C5C 0x6E70 # <CJK>
+0xE3C5D 0x6DFE # <CJK>
+0xE3C60 0x6E6D # <CJK>
+0xE3C62 0x6E7B # <CJK>
+0xE3C63 0x6E7E # <CJK>
+0xE3C64 0x6E59 # <CJK>
+0xE3C66 0x6E57 # <CJK>
+0xE3C68 0x6E80 # <CJK>
+0xE3C69 0x6E50 # <CJK>
+0xE3C6B 0x6E29 # <CJK>
+0xE3C6C 0x6E76 # <CJK>
+0xE3C6D 0x6E2A # <CJK>
+0xE3C6E 0x6E4C # <CJK>
+0xE3C6F 0x712A # <CJK>
+0xE3C71 0x7135 # <CJK>
+0xE3C72 0x712C # <CJK>
+0xE3C73 0x7137 # <CJK>
+0xE3C74 0x711D # <CJK>
+0xE3C77 0x7138 # <CJK>
+0xE3C79 0x7134 # <CJK>
+0xE3C7A 0x712B # <CJK>
+0xE3C7B 0x7133 # <CJK>
+0xE3C7C 0x7127 # <CJK>
+0xE3C7D 0x7124 # <CJK>
+0xE3D21 0x712D # <CJK>
+0xE3D22 0x7232 # <CJK>
+0xE3D23 0x7283 # <CJK>
+0xE3D24 0x7282 # <CJK>
+0xE3D25 0x7287 # <CJK>
+0xE3D26 0x7306 # <CJK>
+0xE3D27 0x7324 # <CJK>
+0xE3D28 0x7338 # <CJK>
+0xE3D29 0x732A # <CJK>
+0xE3D2A 0x732C # <CJK>
+0xE3D2B 0x732B # <CJK>
+0xE3D2D 0x732F # <CJK>
+0xE3D2E 0x7328 # <CJK>
+0xE3D2F 0x7417 # <CJK>
+0xE3D32 0x7419 # <CJK>
+0xE3D33 0x7438 # <CJK>
+0xE3D35 0x741F # <CJK>
+0xE3D36 0x7414 # <CJK>
+0xE3D37 0x743C # <CJK>
+0xE3D38 0x73F7 # <CJK>
+0xE3D39 0x741C # <CJK>
+0xE3D3A 0x7415 # <CJK>
+0xE3D3B 0x7418 # <CJK>
+0xE3D3C 0x7439 # <CJK>
+0xE3D3D 0x74F9 # <CJK>
+0xE3D3E 0x7524 # <CJK>
+0xE3D42 0x756E # <CJK>
+0xE3D43 0x756D # <CJK>
+0xE3D44 0x7571 # <CJK>
+0xE3D45 0x758E # <CJK>
+0xE3D47 0x75E5 # <CJK>
+0xE3D4C 0x7694 # <CJK>
+0xE3D4D 0x76B3 # <CJK>
+0xE3D4F 0x76D9 # <CJK>
+0xE3D51 0x7748 # <CJK>
+0xE3D52 0x7749 # <CJK>
+0xE3D53 0x7743 # <CJK>
+0xE3D56 0x7742 # <CJK>
+0xE3D57 0x77DF # <CJK>
+0xE3D59 0x7863 # <CJK>
+0xE3D5A 0x7876 # <CJK>
+0xE3D5C 0x785F # <CJK>
+0xE3D5D 0x7866 # <CJK>
+0xE3D5E 0x7966 # <CJK>
+0xE3D5F 0x7971 # <CJK>
+0xE3D62 0x7976 # <CJK>
+0xE3D63 0x7984 # <CJK>
+0xE3D64 0x7975 # <CJK>
+0xE3D65 0x79FF # <CJK>
+0xE3D66 0x7A07 # <CJK>
+0xE3D68 0x7A0E # <CJK>
+0xE3D69 0x7A09 # <CJK>
+0xE3D70 0x7AE7 # <CJK>
+0xE3D71 0x7AE2 # <CJK>
+0xE3D72 0x7B55 # <CJK>
+0xE3D75 0x7B43 # <CJK>
+0xE3D76 0x7B57 # <CJK>
+0xE3D77 0x7B6C # <CJK>
+0xE3D78 0x7B42 # <CJK>
+0xE3D79 0x7B53 # <CJK>
+0xE3D7B 0x7B41 # <CJK>
+0xE3D7E 0x7CA7 # <CJK>
+0xE3E21 0x7CA0 # <CJK>
+0xE3E22 0x7CA6 # <CJK>
+0xE3E23 0x7CA4 # <CJK>
+0xE3E24 0x7D74 # <CJK>
+0xE3E26 0x7D59 # <CJK>
+0xE3E28 0x7D60 # <CJK>
+0xE3E29 0x7D57 # <CJK>
+0xE3E2A 0x7D6C # <CJK>
+0xE3E2B 0x7D7E # <CJK>
+0xE3E2C 0x7D64 # <CJK>
+0xE3E2E 0x7D5A # <CJK>
+0xE3E2F 0x7D5D # <CJK>
+0xE3E33 0x7D76 # <CJK>
+0xE3E34 0x7D4D # <CJK>
+0xE3E35 0x7D75 # <CJK>
+0xE3E37 0x7FD3 # <CJK>
+0xE3E38 0x7FD6 # <CJK>
+0xE3E3B 0x8060 # <CJK>
+0xE3E3C 0x804E # <CJK>
+0xE3E3D 0x8145 # <CJK>
+0xE3E3E 0x813B # <CJK>
+0xE3E40 0x8148 # <CJK>
+0xE3E41 0x8142 # <CJK>
+0xE3E42 0x8149 # <CJK>
+0xE3E43 0x8140 # <CJK>
+0xE3E44 0x8114 # <CJK>
+0xE3E45 0x8141 # <CJK>
+0xE3E47 0x81EF # <CJK>
+0xE3E48 0x81F6 # <CJK>
+0xE3E49 0x8203 # <CJK>
+0xE3E4B 0x83ED # <CJK>
+0xE3E4D 0x83DA # <CJK>
+0xE3E4E 0x8418 # <CJK>
+0xE3E4F 0x83D2 # <CJK>
+0xE3E50 0x8408 # <CJK>
+0xE3E52 0x8400 # <CJK>
+0xE3E56 0x8417 # <CJK>
+0xE3E57 0x8346 # <CJK>
+0xE3E58 0x8414 # <CJK>
+0xE3E59 0x83D3 # <CJK>
+0xE3E5A 0x8405 # <CJK>
+0xE3E5B 0x841F # <CJK>
+0xE3E5C 0x8402 # <CJK>
+0xE3E5D 0x8416 # <CJK>
+0xE3E5E 0x83CD # <CJK>
+0xE3E5F 0x83E6 # <CJK>
+0xE3E61 0x865D # <CJK>
+0xE3E62 0x86D5 # <CJK>
+0xE3E63 0x86E1 # <CJK>
+0xE3E68 0x86EE # <CJK>
+0xE3E69 0x8847 # <CJK>
+0xE3E6A 0x8846 # <CJK>
+0xE3E6D 0x88BB # <CJK>
+0xE3E6F 0x88BF # <CJK>
+0xE3E70 0x88B4 # <CJK>
+0xE3E72 0x88B5 # <CJK>
+0xE3E74 0x899A # <CJK>
+0xE3E75 0x8A43 # <CJK>
+0xE3E78 0x8A5A # <CJK>
+0xE3E7C 0x8A35 # <CJK>
+0xE3E7D 0x8A38 # <CJK>
+0xE3E7E 0x8A42 # <CJK>
+0xE3F21 0x8A49 # <CJK>
+0xE3F22 0x8A5D # <CJK>
+0xE3F23 0x8A4B # <CJK>
+0xE3F24 0x8A3D # <CJK>
+0xE3F29 0x8C60 # <CJK>
+0xE3F2A 0x8C5E # <CJK>
+0xE3F2B 0x8C7F # <CJK>
+0xE3F2C 0x8C7E # <CJK>
+0xE3F2D 0x8C83 # <CJK>
+0xE3F2F 0x8CB1 # <CJK>
+0xE3F30 0x8D87 # <CJK>
+0xE3F33 0x8D88 # <CJK>
+0xE3F34 0x8D83 # <CJK>
+0xE3F37 0x8D86 # <CJK>
+0xE3F38 0x8D8B # <CJK>
+0xE3F39 0x8D82 # <CJK>
+0xE3F3A 0x8DCA # <CJK>
+0xE3F3B 0x8DD2 # <CJK>
+0xE3F3E 0x8DD4 # <CJK>
+0xE3F3F 0x8DC9 # <CJK>
+0xE3F40 0x8EB0 # <CJK>
+0xE3F44 0x8EF2 # <CJK>
+0xE3F45 0x8EE4 # <CJK>
+0xE3F46 0x8EF3 # <CJK>
+0xE3F47 0x8EEA # <CJK>
+0xE3F49 0x8EFD # <CJK>
+0xE3F4B 0x8F9D # <CJK>
+0xE3F4C 0x902B # <CJK>
+0xE3F4D 0x902A # <CJK>
+0xE3F4F 0x9028 # <CJK>
+0xE3F50 0x9029 # <CJK>
+0xE3F51 0x902C # <CJK>
+0xE3F54 0x903A # <CJK>
+0xE3F55 0x9030 # <CJK>
+0xE3F56 0x9037 # <CJK>
+0xE3F57 0x903B # <CJK>
+0xE3F59 0x910A # <CJK>
+0xE3F5D 0x91FE # <CJK>
+0xE3F5E 0x9220 # <CJK>
+0xE3F60 0x920B # <CJK>
+0xE3F62 0x9218 # <CJK>
+0xE3F63 0x9222 # <CJK>
+0xE3F65 0x921B # <CJK>
+0xE3F66 0x9208 # <CJK>
+0xE3F68 0x920E # <CJK>
+0xE3F69 0x9213 # <CJK>
+0xE3F6C 0x9595 # <CJK>
+0xE3F70 0x968C # <CJK>
+0xE3F71 0x967B # <CJK>
+0xE3F72 0x967F # <CJK>
+0xE3F73 0x9681 # <CJK>
+0xE3F75 0x9682 # <CJK>
+0xE3F7B 0x96EE # <CJK>
+0xE3F7C 0x96ED # <CJK>
+0xE3F7E 0x96EC # <CJK>
+0xE4021 0x975F # <CJK>
+0xE4022 0x976F # <CJK>
+0xE4024 0x976D # <CJK>
+0xE402B 0x98F0 # <CJK>
+0xE402F 0x9AA9 # <CJK>
+0xE4032 0x9AE0 # <CJK>
+0xE4033 0x4EB7 # <CJK>
+0xE4036 0x50CC # <CJK>
+0xE4037 0x50BC # <CJK>
+0xE4039 0x50AA # <CJK>
+0xE403A 0x50B9 # <CJK>
+0xE403C 0x50AB # <CJK>
+0xE403D 0x50C3 # <CJK>
+0xE403E 0x50CD # <CJK>
+0xE403F 0x517E # <CJK>
+0xE4040 0x527E # <CJK>
+0xE4041 0x5279 # <CJK>
+0xE4044 0x52E1 # <CJK>
+0xE4045 0x52E0 # <CJK>
+0xE4046 0x52E7 # <CJK>
+0xE4047 0x5380 # <CJK>
+0xE4048 0x53AB # <CJK>
+0xE4049 0x53AA # <CJK>
+0xE404A 0x53A9 # <CJK>
+0xE404B 0x53E0 # <CJK>
+0xE404C 0x55EA # <CJK>
+0xE404E 0x55D7 # <CJK>
+0xE4051 0x55C1 # <CJK>
+0xE4052 0x5715 # <CJK>
+0xE4054 0x586C # <CJK>
+0xE4056 0x585C # <CJK>
+0xE4057 0x5850 # <CJK>
+0xE4058 0x5861 # <CJK>
+0xE4059 0x586A # <CJK>
+0xE405A 0x5869 # <CJK>
+0xE405B 0x5856 # <CJK>
+0xE405C 0x5860 # <CJK>
+0xE405D 0x5866 # <CJK>
+0xE405E 0x585F # <CJK>
+0xE405F 0x5923 # <CJK>
+0xE4060 0x5966 # <CJK>
+0xE4061 0x5968 # <CJK>
+0xE4064 0x5ACE # <CJK>
+0xE4066 0x5AC5 # <CJK>
+0xE4067 0x5AC3 # <CJK>
+0xE406A 0x5AD0 # <CJK>
+0xE4071 0x5B74 # <CJK>
+0xE4072 0x5B76 # <CJK>
+0xE4073 0x5BDC # <CJK>
+0xE4074 0x5BD7 # <CJK>
+0xE4075 0x5BDA # <CJK>
+0xE4076 0x5BDB # <CJK>
+0xE4078 0x5C20 # <CJK>
+0xE4079 0x5D6D # <CJK>
+0xE407A 0x5D66 # <CJK>
+0xE407C 0x5D64 # <CJK>
+0xE407D 0x5D6E # <CJK>
+0xE4121 0x5D60 # <CJK>
+0xE4122 0x5F42 # <CJK>
+0xE4123 0x5F5A # <CJK>
+0xE4124 0x5F6E # <CJK>
+0xE4127 0x6130 # <CJK>
+0xE4128 0x613A # <CJK>
+0xE4129 0x612A # <CJK>
+0xE412A 0x6143 # <CJK>
+0xE412B 0x6119 # <CJK>
+0xE412C 0x6131 # <CJK>
+0xE412E 0x613D # <CJK>
+0xE4132 0x6408 # <CJK>
+0xE4133 0x6432 # <CJK>
+0xE4134 0x6438 # <CJK>
+0xE4136 0x6431 # <CJK>
+0xE4138 0x6419 # <CJK>
+0xE413A 0x6411 # <CJK>
+0xE413D 0x6429 # <CJK>
+0xE413E 0x641D # <CJK>
+0xE4142 0x643C # <CJK>
+0xE4144 0x6446 # <CJK>
+0xE4145 0x6447 # <CJK>
+0xE4148 0x643A # <CJK>
+0xE4149 0x6407 # <CJK>
+0xE414B 0x656B # <CJK>
+0xE414D 0x6570 # <CJK>
+0xE414E 0x656D # <CJK>
+0xE4150 0x65E4 # <CJK>
+0xE4151 0x6693 # <CJK>
+0xE4156 0x668F # <CJK>
+0xE4159 0x6692 # <CJK>
+0xE415B 0x668E # <CJK>
+0xE415D 0x6946 # <CJK>
+0xE4165 0x6931 # <CJK>
+0xE4168 0x693E # <CJK>
+0xE416A 0x697C # <CJK>
+0xE416B 0x6943 # <CJK>
+0xE416D 0x6973 # <CJK>
+0xE416F 0x6955 # <CJK>
+0xE4172 0x6985 # <CJK>
+0xE4173 0x694D # <CJK>
+0xE4174 0x6950 # <CJK>
+0xE4175 0x6947 # <CJK>
+0xE4176 0x6967 # <CJK>
+0xE4177 0x6936 # <CJK>
+0xE4178 0x6964 # <CJK>
+0xE4179 0x6961 # <CJK>
+0xE417B 0x697D # <CJK>
+0xE417C 0x6B44 # <CJK>
+0xE417D 0x6B40 # <CJK>
+0xE417E 0x6B71 # <CJK>
+0xE4221 0x6B73 # <CJK>
+0xE4222 0x6B9C # <CJK>
+0xE4226 0x6BC1 # <CJK>
+0xE4228 0x6BFA # <CJK>
+0xE4229 0x6C31 # <CJK>
+0xE422A 0x6C32 # <CJK>
+0xE422D 0x6EB8 # <CJK>
+0xE422E 0x6EA8 # <CJK>
+0xE4230 0x6E91 # <CJK>
+0xE4231 0x6EBB # <CJK>
+0xE4233 0x6E9A # <CJK>
+0xE4236 0x6EA9 # <CJK>
+0xE4239 0x6EB5 # <CJK>
+0xE423A 0x6E6C # <CJK>
+0xE423B 0x6EE8 # <CJK>
+0xE423D 0x6EDD # <CJK>
+0xE423E 0x6EDA # <CJK>
+0xE423F 0x6EE6 # <CJK>
+0xE4240 0x6EAC # <CJK>
+0xE4244 0x6ED9 # <CJK>
+0xE4245 0x6EE3 # <CJK>
+0xE4246 0x6EE9 # <CJK>
+0xE4247 0x6EDB # <CJK>
+0xE4249 0x716F # <CJK>
+0xE424C 0x7148 # <CJK>
+0xE424E 0x714A # <CJK>
+0xE424F 0x716B # <CJK>
+0xE4251 0x714F # <CJK>
+0xE4252 0x7157 # <CJK>
+0xE4253 0x7174 # <CJK>
+0xE4257 0x7145 # <CJK>
+0xE4258 0x7151 # <CJK>
+0xE4259 0x716D # <CJK>
+0xE425B 0x7251 # <CJK>
+0xE425C 0x7250 # <CJK>
+0xE425D 0x724E # <CJK>
+0xE425F 0x7341 # <CJK>
+0xE4261 0x732E # <CJK>
+0xE4262 0x7346 # <CJK>
+0xE4264 0x7427 # <CJK>
+0xE4266 0x7448 # <CJK>
+0xE4267 0x7453 # <CJK>
+0xE4268 0x743D # <CJK>
+0xE426A 0x745D # <CJK>
+0xE426B 0x7456 # <CJK>
+0xE426D 0x741E # <CJK>
+0xE426E 0x7447 # <CJK>
+0xE426F 0x7443 # <CJK>
+0xE4270 0x7458 # <CJK>
+0xE4271 0x7449 # <CJK>
+0xE4273 0x744C # <CJK>
+0xE4274 0x7445 # <CJK>
+0xE4275 0x743E # <CJK>
+0xE4277 0x7501 # <CJK>
+0xE4278 0x751E # <CJK>
+0xE427B 0x757A # <CJK>
+0xE427C 0x75EE # <CJK>
+0xE427D 0x7602 # <CJK>
+0xE427E 0x7697 # <CJK>
+0xE4321 0x7698 # <CJK>
+0xE4325 0x775D # <CJK>
+0xE4326 0x7764 # <CJK>
+0xE4327 0x7753 # <CJK>
+0xE4328 0x7758 # <CJK>
+0xE4329 0x7882 # <CJK>
+0xE432A 0x7890 # <CJK>
+0xE432B 0x788A # <CJK>
+0xE432D 0x787A # <CJK>
+0xE432E 0x787D # <CJK>
+0xE4330 0x788B # <CJK>
+0xE4331 0x7878 # <CJK>
+0xE4334 0x788D # <CJK>
+0xE4335 0x7888 # <CJK>
+0xE4336 0x7892 # <CJK>
+0xE4337 0x7881 # <CJK>
+0xE4338 0x797E # <CJK>
+0xE4339 0x7983 # <CJK>
+0xE433D 0x7980 # <CJK>
+0xE4341 0x7A0F # <CJK>
+0xE4344 0x7A1D # <CJK>
+0xE4346 0x7AA1 # <CJK>
+0xE4347 0x7AA4 # <CJK>
+0xE4349 0x7AE9 # <CJK>
+0xE434A 0x7AEA # <CJK>
+0xE434C 0x7B62 # <CJK>
+0xE434D 0x7B6B # <CJK>
+0xE434F 0x7B5E # <CJK>
+0xE4351 0x7B79 # <CJK>
+0xE4354 0x7B6F # <CJK>
+0xE4355 0x7B68 # <CJK>
+0xE4358 0x7CAE # <CJK>
+0xE435C 0x7CB0 # <CJK>
+0xE435E 0x7D90 # <CJK>
+0xE4360 0x7D8A # <CJK>
+0xE4362 0x7D8B # <CJK>
+0xE4363 0x7D99 # <CJK>
+0xE4364 0x7D95 # <CJK>
+0xE4366 0x7D87 # <CJK>
+0xE4367 0x7D78 # <CJK>
+0xE4368 0x7D97 # <CJK>
+0xE4369 0x7D89 # <CJK>
+0xE436A 0x7D98 # <CJK>
+0xE436E 0x7FA3 # <CJK>
+0xE4372 0x7FDD # <CJK>
+0xE4373 0x8057 # <CJK>
+0xE4375 0x8163 # <CJK>
+0xE4376 0x816A # <CJK>
+0xE4377 0x816C # <CJK>
+0xE437B 0x815D # <CJK>
+0xE437C 0x8175 # <CJK>
+0xE437E 0x815F # <CJK>
+0xE4422 0x817D # <CJK>
+0xE4423 0x816D # <CJK>
+0xE4426 0x8241 # <CJK>
+0xE4427 0x844F # <CJK>
+0xE4428 0x8484 # <CJK>
+0xE442A 0x847F # <CJK>
+0xE442C 0x8448 # <CJK>
+0xE442D 0x842A # <CJK>
+0xE442E 0x847B # <CJK>
+0xE442F 0x8472 # <CJK>
+0xE4430 0x8464 # <CJK>
+0xE4431 0x842E # <CJK>
+0xE4432 0x845C # <CJK>
+0xE4433 0x8453 # <CJK>
+0xE4435 0x8441 # <CJK>
+0xE4436 0x84C8 # <CJK>
+0xE4438 0x8462 # <CJK>
+0xE4439 0x8480 # <CJK>
+0xE443A 0x843E # <CJK>
+0xE443B 0x8483 # <CJK>
+0xE443C 0x8471 # <CJK>
+0xE443E 0x844A # <CJK>
+0xE443F 0x8455 # <CJK>
+0xE4440 0x8458 # <CJK>
+0xE4444 0x86FC # <CJK>
+0xE4445 0x86FD # <CJK>
+0xE4446 0x8715 # <CJK>
+0xE4448 0x8716 # <CJK>
+0xE4449 0x86FF # <CJK>
+0xE444D 0x8858 # <CJK>
+0xE444E 0x88CF # <CJK>
+0xE444F 0x88E0 # <CJK>
+0xE4454 0x89E7 # <CJK>
+0xE4455 0x8A6A # <CJK>
+0xE4456 0x8A80 # <CJK>
+0xE4458 0x8A6F # <CJK>
+0xE4459 0x8A65 # <CJK>
+0xE445B 0x8A78 # <CJK>
+0xE445C 0x8A7D # <CJK>
+0xE445D 0x8A88 # <CJK>
+0xE4460 0x8A64 # <CJK>
+0xE4461 0x8A7E # <CJK>
+0xE4463 0x8A67 # <CJK>
+0xE4464 0x8C63 # <CJK>
+0xE4465 0x8C88 # <CJK>
+0xE4467 0x8CCD # <CJK>
+0xE4469 0x8CC9 # <CJK>
+0xE446B 0x8DED # <CJK>
+0xE4473 0x8EB1 # <CJK>
+0xE4476 0x8F04 # <CJK>
+0xE4477 0x8F9E # <CJK>
+0xE4478 0x8FA0 # <CJK>
+0xE4479 0x9043 # <CJK>
+0xE447A 0x9046 # <CJK>
+0xE447B 0x9048 # <CJK>
+0xE447C 0x9045 # <CJK>
+0xE447D 0x9040 # <CJK>
+0xE447E 0x904C # <CJK>
+0xE4523 0x910C # <CJK>
+0xE4524 0x9113 # <CJK>
+0xE4525 0x9115 # <CJK>
+0xE4527 0x916B # <CJK>
+0xE4528 0x9167 # <CJK>
+0xE4529 0x925D # <CJK>
+0xE452A 0x9255 # <CJK>
+0xE452B 0x9235 # <CJK>
+0xE452D 0x9259 # <CJK>
+0xE452E 0x922F # <CJK>
+0xE452F 0x923C # <CJK>
+0xE4530 0x928F # <CJK>
+0xE4531 0x925C # <CJK>
+0xE4532 0x926A # <CJK>
+0xE4533 0x9262 # <CJK>
+0xE4534 0x925F # <CJK>
+0xE4535 0x926B # <CJK>
+0xE4536 0x926E # <CJK>
+0xE4537 0x923B # <CJK>
+0xE4538 0x9244 # <CJK>
+0xE4539 0x9241 # <CJK>
+0xE453A 0x959A # <CJK>
+0xE453C 0x9599 # <CJK>
+0xE4540 0x968F # <CJK>
+0xE4542 0x9696 # <CJK>
+0xE4546 0x96F4 # <CJK>
+0xE4547 0x96FC # <CJK>
+0xE4549 0x9755 # <CJK>
+0xE454B 0x9779 # <CJK>
+0xE454F 0x97EE # <CJK>
+0xE4550 0x97F5 # <CJK>
+0xE4552 0x980B # <CJK>
+0xE4554 0x98F3 # <CJK>
+0xE4557 0x98F7 # <CJK>
+0xE4558 0x98FF # <CJK>
+0xE4559 0x98F5 # <CJK>
+0xE455B 0x98EC # <CJK>
+0xE455C 0x98F1 # <CJK>
+0xE455F 0x999A # <CJK>
+0xE4561 0x9AE2 # <CJK>
+0xE4562 0x9B3D # <CJK>
+0xE4563 0x9B5D # <CJK>
+0xE4564 0x9CE8 # <CJK>
+0xE4566 0x9CEB # <CJK>
+0xE4567 0x9CEF # <CJK>
+0xE4568 0x9CEE # <CJK>
+0xE4569 0x9E81 # <CJK>
+0xE456A 0x9F14 # <CJK>
+0xE456B 0x50D0 # <CJK>
+0xE456C 0x50D9 # <CJK>
+0xE456D 0x50DC # <CJK>
+0xE456E 0x50D8 # <CJK>
+0xE4570 0x50E1 # <CJK>
+0xE4571 0x50EB # <CJK>
+0xE4574 0x50F4 # <CJK>
+0xE4575 0x50E2 # <CJK>
+0xE4576 0x50DE # <CJK>
+0xE457A 0x51F4 # <CJK>
+0xE457E 0x52ED # <CJK>
+0xE4621 0x52EA # <CJK>
+0xE4623 0x5332 # <CJK>
+0xE4625 0x53AE # <CJK>
+0xE4626 0x53B0 # <CJK>
+0xE4628 0x55FB # <CJK>
+0xE4629 0x5603 # <CJK>
+0xE462A 0x560B # <CJK>
+0xE462C 0x5607 # <CJK>
+0xE462E 0x55F8 # <CJK>
+0xE4630 0x5628 # <CJK>
+0xE4631 0x561E # <CJK>
+0xE4633 0x5618 # <CJK>
+0xE4634 0x5611 # <CJK>
+0xE4635 0x5651 # <CJK>
+0xE4636 0x5605 # <CJK>
+0xE4637 0x5717 # <CJK>
+0xE4638 0x5892 # <CJK>
+0xE463A 0x588C # <CJK>
+0xE463C 0x5878 # <CJK>
+0xE463D 0x5884 # <CJK>
+0xE463E 0x5873 # <CJK>
+0xE463F 0x58AD # <CJK>
+0xE4640 0x5897 # <CJK>
+0xE4641 0x5895 # <CJK>
+0xE4642 0x5877 # <CJK>
+0xE4643 0x5872 # <CJK>
+0xE4644 0x5896 # <CJK>
+0xE4645 0x588D # <CJK>
+0xE4646 0x5910 # <CJK>
+0xE4648 0x596C # <CJK>
+0xE464A 0x5AE7 # <CJK>
+0xE464C 0x5AE4 # <CJK>
+0xE464F 0x5AEF # <CJK>
+0xE4650 0x5626 # <CJK>
+0xE4653 0x5AF0 # <CJK>
+0xE4654 0x5D7B # <CJK>
+0xE4656 0x5D83 # <CJK>
+0xE4659 0x5D8B # <CJK>
+0xE465A 0x5D8C # <CJK>
+0xE465C 0x5D78 # <CJK>
+0xE465D 0x5E52 # <CJK>
+0xE4660 0x5ED0 # <CJK>
+0xE4661 0x5ECF # <CJK>
+0xE4663 0x5FB3 # <CJK>
+0xE4664 0x5FB4 # <CJK>
+0xE4668 0x617B # <CJK>
+0xE466A 0x616F # <CJK>
+0xE466B 0x6181 # <CJK>
+0xE466C 0x613C # <CJK>
+0xE466D 0x6142 # <CJK>
+0xE466E 0x6138 # <CJK>
+0xE466F 0x6133 # <CJK>
+0xE4671 0x6160 # <CJK>
+0xE4672 0x6169 # <CJK>
+0xE4673 0x617D # <CJK>
+0xE4674 0x6186 # <CJK>
+0xE4675 0x622C # <CJK>
+0xE4676 0x6228 # <CJK>
+0xE4678 0x644C # <CJK>
+0xE467A 0x6457 # <CJK>
+0xE467B 0x647C # <CJK>
+0xE467E 0x6455 # <CJK>
+0xE4721 0x6462 # <CJK>
+0xE4722 0x6471 # <CJK>
+0xE4723 0x646A # <CJK>
+0xE4724 0x6456 # <CJK>
+0xE4725 0x643B # <CJK>
+0xE4726 0x6481 # <CJK>
+0xE4728 0x644F # <CJK>
+0xE4729 0x647E # <CJK>
+0xE472A 0x6464 # <CJK>
+0xE4730 0x6571 # <CJK>
+0xE4733 0x66A5 # <CJK>
+0xE4734 0x669A # <CJK>
+0xE4735 0x669C # <CJK>
+0xE4737 0x66A6 # <CJK>
+0xE4739 0x66A4 # <CJK>
+0xE473A 0x698F # <CJK>
+0xE473B 0x69C5 # <CJK>
+0xE473C 0x69C8 # <CJK>
+0xE473D 0x6992 # <CJK>
+0xE473E 0x69B2 # <CJK>
+0xE4742 0x69E3 # <CJK>
+0xE4743 0x69C0 # <CJK>
+0xE4744 0x69D6 # <CJK>
+0xE4745 0x69D1 # <CJK>
+0xE4746 0x699F # <CJK>
+0xE4747 0x69A2 # <CJK>
+0xE4748 0x69D2 # <CJK>
+0xE474C 0x69E1 # <CJK>
+0xE474D 0x69D5 # <CJK>
+0xE474E 0x699D # <CJK>
+0xE4751 0x6998 # <CJK>
+0xE4753 0x6B74 # <CJK>
+0xE4754 0x6BA1 # <CJK>
+0xE4756 0x6EF0 # <CJK>
+0xE4757 0x6EF3 # <CJK>
+0xE475A 0x6F1B # <CJK>
+0xE475B 0x6F0C # <CJK>
+0xE475C 0x6F1D # <CJK>
+0xE475D 0x6F34 # <CJK>
+0xE475E 0x6F28 # <CJK>
+0xE475F 0x6F17 # <CJK>
+0xE4761 0x6F44 # <CJK>
+0xE4762 0x6F42 # <CJK>
+0xE4763 0x6F04 # <CJK>
+0xE4764 0x6F11 # <CJK>
+0xE4765 0x6EFA # <CJK>
+0xE4766 0x6F4A # <CJK>
+0xE4767 0x7191 # <CJK>
+0xE4768 0x718E # <CJK>
+0xE476A 0x718B # <CJK>
+0xE476B 0x718D # <CJK>
+0xE476C 0x717F # <CJK>
+0xE476D 0x718C # <CJK>
+0xE476E 0x717E # <CJK>
+0xE476F 0x717C # <CJK>
+0xE4770 0x7183 # <CJK>
+0xE4772 0x7188 # <CJK>
+0xE4775 0x7294 # <CJK>
+0xE4777 0x7355 # <CJK>
+0xE4778 0x7353 # <CJK>
+0xE4779 0x734F # <CJK>
+0xE477A 0x7354 # <CJK>
+0xE477B 0x746C # <CJK>
+0xE477C 0x7465 # <CJK>
+0xE477D 0x7466 # <CJK>
+0xE477E 0x7461 # <CJK>
+0xE4821 0x746B # <CJK>
+0xE4822 0x7468 # <CJK>
+0xE4823 0x7476 # <CJK>
+0xE4825 0x7460 # <CJK>
+0xE4827 0x7474 # <CJK>
+0xE4828 0x7506 # <CJK>
+0xE4829 0x760E # <CJK>
+0xE482B 0x7607 # <CJK>
+0xE482E 0x76B9 # <CJK>
+0xE4830 0x76B7 # <CJK>
+0xE4831 0x76E2 # <CJK>
+0xE4833 0x7774 # <CJK>
+0xE4834 0x7777 # <CJK>
+0xE4835 0x7776 # <CJK>
+0xE4836 0x7775 # <CJK>
+0xE4838 0x7778 # <CJK>
+0xE4839 0x7771 # <CJK>
+0xE483B 0x777A # <CJK>
+0xE483C 0x715B # <CJK>
+0xE483D 0x777B # <CJK>
+0xE483E 0x78A6 # <CJK>
+0xE483F 0x78AE # <CJK>
+0xE4840 0x78B8 # <CJK>
+0xE4844 0x78B1 # <CJK>
+0xE4845 0x78AF # <CJK>
+0xE4847 0x7989 # <CJK>
+0xE4848 0x7987 # <CJK>
+0xE484B 0x7A29 # <CJK>
+0xE484D 0x7A2A # <CJK>
+0xE484F 0x7A2D # <CJK>
+0xE4850 0x7A2C # <CJK>
+0xE4852 0x7A32 # <CJK>
+0xE4854 0x7AEC # <CJK>
+0xE4855 0x7AF0 # <CJK>
+0xE4856 0x7B81 # <CJK>
+0xE4857 0x7B9E # <CJK>
+0xE4858 0x7B83 # <CJK>
+0xE485A 0x7B92 # <CJK>
+0xE485C 0x7BA3 # <CJK>
+0xE485D 0x7B9F # <CJK>
+0xE485E 0x7B93 # <CJK>
+0xE4860 0x7B86 # <CJK>
+0xE4861 0x7CB8 # <CJK>
+0xE4862 0x7CB7 # <CJK>
+0xE4868 0x7DC8 # <CJK>
+0xE4869 0x7DB6 # <CJK>
+0xE486B 0x7DD1 # <CJK>
+0xE486D 0x7DA8 # <CJK>
+0xE486E 0x7DAB # <CJK>
+0xE4870 0x7DB3 # <CJK>
+0xE4871 0x7DCD # <CJK>
+0xE4873 0x7DCF # <CJK>
+0xE4874 0x7DA4 # <CJK>
+0xE4877 0x7F41 # <CJK>
+0xE4878 0x7F6F # <CJK>
+0xE4879 0x7F71 # <CJK>
+0xE4922 0x8023 # <CJK>
+0xE4923 0x805B # <CJK>
+0xE4925 0x8061 # <CJK>
+0xE4926 0x805F # <CJK>
+0xE4927 0x8181 # <CJK>
+0xE492A 0x8184 # <CJK>
+0xE492B 0x8213 # <CJK>
+0xE492D 0x824A # <CJK>
+0xE492E 0x824C # <CJK>
+0xE4932 0x84BD # <CJK>
+0xE4933 0x8495 # <CJK>
+0xE4935 0x8492 # <CJK>
+0xE4936 0x84C3 # <CJK>
+0xE4938 0x8496 # <CJK>
+0xE4939 0x84A5 # <CJK>
+0xE493A 0x84B5 # <CJK>
+0xE493B 0x84B3 # <CJK>
+0xE493C 0x84A3 # <CJK>
+0xE493D 0x84E4 # <CJK>
+0xE493E 0x84D8 # <CJK>
+0xE493F 0x84D5 # <CJK>
+0xE4941 0x84B7 # <CJK>
+0xE4942 0x84AD # <CJK>
+0xE4943 0x84DA # <CJK>
+0xE4944 0x8493 # <CJK>
+0xE4945 0x8736 # <CJK>
+0xE4949 0x873D # <CJK>
+0xE494A 0x872B # <CJK>
+0xE494B 0x8747 # <CJK>
+0xE494C 0x8739 # <CJK>
+0xE494E 0x8745 # <CJK>
+0xE494F 0x871D # <CJK>
+0xE4951 0x88FF # <CJK>
+0xE4952 0x88EA # <CJK>
+0xE4954 0x88F5 # <CJK>
+0xE4956 0x8900 # <CJK>
+0xE4957 0x88ED # <CJK>
+0xE4958 0x8903 # <CJK>
+0xE4959 0x88E9 # <CJK>
+0xE495C 0x89EA # <CJK>
+0xE495E 0x8A9B # <CJK>
+0xE495F 0x8A8E # <CJK>
+0xE4960 0x8AA2 # <CJK>
+0xE4962 0x8A9C # <CJK>
+0xE4963 0x8A94 # <CJK>
+0xE4964 0x8A90 # <CJK>
+0xE4965 0x8AA9 # <CJK>
+0xE4966 0x8AAC # <CJK>
+0xE4968 0x8A9F # <CJK>
+0xE496B 0x8A9D # <CJK>
+0xE496D 0x8C67 # <CJK>
+0xE4970 0x8CD0 # <CJK>
+0xE4971 0x8CD6 # <CJK>
+0xE4972 0x8CD4 # <CJK>
+0xE4973 0x8D98 # <CJK>
+0xE4974 0x8D9A # <CJK>
+0xE4975 0x8D97 # <CJK>
+0xE4979 0x8E0B # <CJK>
+0xE497A 0x8E08 # <CJK>
+0xE497B 0x8E01 # <CJK>
+0xE497C 0x8EB4 # <CJK>
+0xE497D 0x8EB3 # <CJK>
+0xE4A21 0x8FA1 # <CJK>
+0xE4A22 0x8FA2 # <CJK>
+0xE4A24 0x905A # <CJK>
+0xE4A26 0x9061 # <CJK>
+0xE4A27 0x905F # <CJK>
+0xE4A2A 0x9125 # <CJK>
+0xE4A2B 0x917B # <CJK>
+0xE4A2C 0x9176 # <CJK>
+0xE4A2D 0x917C # <CJK>
+0xE4A2F 0x9289 # <CJK>
+0xE4A30 0x92F6 # <CJK>
+0xE4A31 0x92B1 # <CJK>
+0xE4A32 0x92AD # <CJK>
+0xE4A33 0x9292 # <CJK>
+0xE4A34 0x9281 # <CJK>
+0xE4A35 0x9284 # <CJK>
+0xE4A37 0x92AE # <CJK>
+0xE4A38 0x9290 # <CJK>
+0xE4A39 0x929E # <CJK>
+0xE4A3D 0x95A2 # <CJK>
+0xE4A3E 0x95A7 # <CJK>
+0xE4A44 0x96A0 # <CJK>
+0xE4A45 0x969D # <CJK>
+0xE4A46 0x969F # <CJK>
+0xE4A47 0x96D0 # <CJK>
+0xE4A49 0x96D1 # <CJK>
+0xE4A4C 0x9759 # <CJK>
+0xE4A4E 0x9764 # <CJK>
+0xE4A52 0x9819 # <CJK>
+0xE4A54 0x9814 # <CJK>
+0xE4A55 0x9815 # <CJK>
+0xE4A56 0x981A # <CJK>
+0xE4A5B 0x9906 # <CJK>
+0xE4A5D 0x98F8 # <CJK>
+0xE4A5E 0x9901 # <CJK>
+0xE4A60 0x99BE # <CJK>
+0xE4A61 0x99BC # <CJK>
+0xE4A62 0x99B7 # <CJK>
+0xE4A63 0x99B6 # <CJK>
+0xE4A64 0x99C0 # <CJK>
+0xE4A66 0x99B8 # <CJK>
+0xE4A6A 0x99C4 # <CJK>
+0xE4A6C 0x99BF # <CJK>
+0xE4A6E 0x9ADA # <CJK>
+0xE4A6F 0x9AE4 # <CJK>
+0xE4A70 0x9AE9 # <CJK>
+0xE4A71 0x9AE8 # <CJK>
+0xE4A72 0x9AEA # <CJK>
+0xE4A73 0x9AE5 # <CJK>
+0xE4A75 0x9B26 # <CJK>
+0xE4A78 0x9B40 # <CJK>
+0xE4B22 0x9EBD # <CJK>
+0xE4B27 0x510E # <CJK>
+0xE4B29 0x50F7 # <CJK>
+0xE4B2B 0x50FC # <CJK>
+0xE4B2C 0x510D # <CJK>
+0xE4B2D 0x5101 # <CJK>
+0xE4B2E 0x51DA # <CJK>
+0xE4B2F 0x51D9 # <CJK>
+0xE4B30 0x51DB # <CJK>
+0xE4B31 0x5286 # <CJK>
+0xE4B32 0x528E # <CJK>
+0xE4B33 0x52EE # <CJK>
+0xE4B34 0x5333 # <CJK>
+0xE4B35 0x53B1 # <CJK>
+0xE4B37 0x5647 # <CJK>
+0xE4B38 0x562D # <CJK>
+0xE4B39 0x5654 # <CJK>
+0xE4B3B 0x564B # <CJK>
+0xE4B3C 0x5652 # <CJK>
+0xE4B3D 0x5631 # <CJK>
+0xE4B3E 0x5644 # <CJK>
+0xE4B3F 0x5656 # <CJK>
+0xE4B40 0x5650 # <CJK>
+0xE4B41 0x562B # <CJK>
+0xE4B43 0x564D # <CJK>
+0xE4B44 0x5637 # <CJK>
+0xE4B45 0x564F # <CJK>
+0xE4B46 0x58A2 # <CJK>
+0xE4B47 0x58B7 # <CJK>
+0xE4B49 0x58B2 # <CJK>
+0xE4B4B 0x58AA # <CJK>
+0xE4B4C 0x58B5 # <CJK>
+0xE4B4D 0x58B0 # <CJK>
+0xE4B4F 0x58B4 # <CJK>
+0xE4B50 0x58A4 # <CJK>
+0xE4B51 0x58A7 # <CJK>
+0xE4B53 0x5926 # <CJK>
+0xE4B54 0x5AFE # <CJK>
+0xE4B56 0x5B04 # <CJK>
+0xE4B58 0x5AFC # <CJK>
+0xE4B5A 0x5B06 # <CJK>
+0xE4B5B 0x5B0A # <CJK>
+0xE4B5C 0x5AFA # <CJK>
+0xE4B5D 0x5B0D # <CJK>
+0xE4B5E 0x5B00 # <CJK>
+0xE4B5F 0x5B0E # <CJK>
+0xE4B63 0x5D91 # <CJK>
+0xE4B65 0x5D8F # <CJK>
+0xE4B66 0x5D90 # <CJK>
+0xE4B67 0x5D98 # <CJK>
+0xE4B68 0x5DA4 # <CJK>
+0xE4B69 0x5D9B # <CJK>
+0xE4B6A 0x5DA3 # <CJK>
+0xE4B6B 0x5D96 # <CJK>
+0xE4B6C 0x5DE4 # <CJK>
+0xE4B6D 0x5E5A # <CJK>
+0xE4B70 0x5E5E # <CJK>
+0xE4B72 0x5FB8 # <CJK>
+0xE4B73 0x6157 # <CJK>
+0xE4B74 0x615C # <CJK>
+0xE4B75 0x61A6 # <CJK>
+0xE4B76 0x6195 # <CJK>
+0xE4B77 0x6188 # <CJK>
+0xE4B79 0x61A3 # <CJK>
+0xE4B7A 0x618F # <CJK>
+0xE4B7C 0x6164 # <CJK>
+0xE4B7E 0x6159 # <CJK>
+0xE4C21 0x6178 # <CJK>
+0xE4C23 0x6185 # <CJK>
+0xE4C24 0x6187 # <CJK>
+0xE4C25 0x619E # <CJK>
+0xE4C28 0x6198 # <CJK>
+0xE4C29 0x619C # <CJK>
+0xE4C2C 0x622F # <CJK>
+0xE4C2D 0x6480 # <CJK>
+0xE4C2E 0x649B # <CJK>
+0xE4C2F 0x648E # <CJK>
+0xE4C30 0x648D # <CJK>
+0xE4C31 0x6494 # <CJK>
+0xE4C32 0x64C6 # <CJK>
+0xE4C34 0x64A8 # <CJK>
+0xE4C35 0x6483 # <CJK>
+0xE4C37 0x64B9 # <CJK>
+0xE4C38 0x6486 # <CJK>
+0xE4C39 0x64B4 # <CJK>
+0xE4C3A 0x64AF # <CJK>
+0xE4C3B 0x6491 # <CJK>
+0xE4C3D 0x64AA # <CJK>
+0xE4C3E 0x64A1 # <CJK>
+0xE4C3F 0x64A7 # <CJK>
+0xE4C40 0x66B6 # <CJK>
+0xE4C41 0x66B3 # <CJK>
+0xE4C43 0x66BC # <CJK>
+0xE4C44 0x66AC # <CJK>
+0xE4C46 0x66AD # <CJK>
+0xE4C47 0x6A0E # <CJK>
+0xE4C49 0x6A1C # <CJK>
+0xE4C4A 0x6A1A # <CJK>
+0xE4C4D 0x6A0B # <CJK>
+0xE4C4F 0x69EF # <CJK>
+0xE4C50 0x6A0C # <CJK>
+0xE4C51 0x69F0 # <CJK>
+0xE4C52 0x6A22 # <CJK>
+0xE4C54 0x69D8 # <CJK>
+0xE4C56 0x6A12 # <CJK>
+0xE4C57 0x69FA # <CJK>
+0xE4C59 0x6A2A # <CJK>
+0xE4C5B 0x6A10 # <CJK>
+0xE4C5E 0x6A29 # <CJK>
+0xE4C5F 0x69F9 # <CJK>
+0xE4C60 0x69EA # <CJK>
+0xE4C61 0x6A2C # <CJK>
+0xE4C62 0x6A24 # <CJK>
+0xE4C64 0x69E9 # <CJK>
+0xE4C65 0x6B52 # <CJK>
+0xE4C66 0x6B4F # <CJK>
+0xE4C67 0x6B53 # <CJK>
+0xE4C6A 0x6F10 # <CJK>
+0xE4C6B 0x6F65 # <CJK>
+0xE4C6C 0x6F75 # <CJK>
+0xE4C71 0x6FD0 # <CJK>
+0xE4C73 0x6F5C # <CJK>
+0xE4C74 0x6F3D # <CJK>
+0xE4C75 0x6F71 # <CJK>
+0xE4C77 0x6F91 # <CJK>
+0xE4C78 0x6F0B # <CJK>
+0xE4C79 0x6F79 # <CJK>
+0xE4C7A 0x6F81 # <CJK>
+0xE4C7B 0x6F8F # <CJK>
+0xE4C7D 0x6F59 # <CJK>
+0xE4C7E 0x6F74 # <CJK>
+0xE4D22 0x71AE # <CJK>
+0xE4D24 0x71A3 # <CJK>
+0xE4D25 0x71AD # <CJK>
+0xE4D28 0x71AB # <CJK>
+0xE4D29 0x71A6 # <CJK>
+0xE4D2A 0x71A2 # <CJK>
+0xE4D2C 0x52F2 # <CJK>
+0xE4D2D 0x7257 # <CJK>
+0xE4D2E 0x7255 # <CJK>
+0xE4D2F 0x7299 # <CJK>
+0xE4D30 0x734B # <CJK>
+0xE4D31 0x747A # <CJK>
+0xE4D35 0x748C # <CJK>
+0xE4D36 0x7484 # <CJK>
+0xE4D39 0x7482 # <CJK>
+0xE4D3A 0x7493 # <CJK>
+0xE4D3B 0x747B # <CJK>
+0xE4D3D 0x7509 # <CJK>
+0xE4D44 0x778A # <CJK>
+0xE4D46 0x7790 # <CJK>
+0xE4D48 0x78C6 # <CJK>
+0xE4D49 0x78D3 # <CJK>
+0xE4D4A 0x78C0 # <CJK>
+0xE4D4B 0x78D2 # <CJK>
+0xE4D4C 0x78C7 # <CJK>
+0xE4D4D 0x78C2 # <CJK>
+0xE4D4F 0x799F # <CJK>
+0xE4D50 0x799D # <CJK>
+0xE4D51 0x799E # <CJK>
+0xE4D53 0x7A41 # <CJK>
+0xE4D55 0x7A38 # <CJK>
+0xE4D56 0x7A3A # <CJK>
+0xE4D57 0x7A42 # <CJK>
+0xE4D5A 0x7A3E # <CJK>
+0xE4D5B 0x7AB0 # <CJK>
+0xE4D5C 0x7BAE # <CJK>
+0xE4D5D 0x7BB3 # <CJK>
+0xE4D60 0x7BBF # <CJK>
+0xE4D63 0x7BCD # <CJK>
+0xE4D65 0x7BB2 # <CJK>
+0xE4D6D 0x7CC4 # <CJK>
+0xE4D6E 0x7CCD # <CJK>
+0xE4D6F 0x7CC2 # <CJK>
+0xE4D70 0x7CC6 # <CJK>
+0xE4D71 0x7CC3 # <CJK>
+0xE4D72 0x7CC9 # <CJK>
+0xE4D73 0x7CC7 # <CJK>
+0xE4D75 0x7DF8 # <CJK>
+0xE4D77 0x7DED # <CJK>
+0xE4D78 0x7DE2 # <CJK>
+0xE4D7C 0x7DDC # <CJK>
+0xE4D7D 0x7E02 # <CJK>
+0xE4D7E 0x7E01 # <CJK>
+0xE4E22 0x7DD6 # <CJK>
+0xE4E24 0x7DE4 # <CJK>
+0xE4E25 0x7DFE # <CJK>
+0xE4E27 0x7E00 # <CJK>
+0xE4E28 0x7DFC # <CJK>
+0xE4E29 0x7DFD # <CJK>
+0xE4E2B 0x7DF5 # <CJK>
+0xE4E2C 0x7DFF # <CJK>
+0xE4E2E 0x7DEB # <CJK>
+0xE4E2F 0x7DE5 # <CJK>
+0xE4E30 0x7F78 # <CJK>
+0xE4E31 0x7FAE # <CJK>
+0xE4E32 0x7FE7 # <CJK>
+0xE4E34 0x8065 # <CJK>
+0xE4E35 0x806A # <CJK>
+0xE4E36 0x8066 # <CJK>
+0xE4E37 0x8068 # <CJK>
+0xE4E38 0x806B # <CJK>
+0xE4E39 0x8194 # <CJK>
+0xE4E3A 0x81A1 # <CJK>
+0xE4E3B 0x8192 # <CJK>
+0xE4E3C 0x8196 # <CJK>
+0xE4E3D 0x8193 # <CJK>
+0xE4E40 0x8501 # <CJK>
+0xE4E42 0x84F8 # <CJK>
+0xE4E44 0x84F5 # <CJK>
+0xE4E46 0x8504 # <CJK>
+0xE4E4B 0x851B # <CJK>
+0xE4E4C 0x8503 # <CJK>
+0xE4E4D 0x8533 # <CJK>
+0xE4E4E 0x8534 # <CJK>
+0xE4E4F 0x84ED # <CJK>
+0xE4E52 0x8535 # <CJK>
+0xE4E54 0x8505 # <CJK>
+0xE4E59 0x877D # <CJK>
+0xE4E5D 0x8771 # <CJK>
+0xE4E5F 0x885C # <CJK>
+0xE4E60 0x88E6 # <CJK>
+0xE4E61 0x890F # <CJK>
+0xE4E62 0x891B # <CJK>
+0xE4E64 0x89A9 # <CJK>
+0xE4E65 0x89A5 # <CJK>
+0xE4E66 0x89EE # <CJK>
+0xE4E67 0x8AB1 # <CJK>
+0xE4E69 0x8ACC # <CJK>
+0xE4E6A 0x8ACE # <CJK>
+0xE4E6C 0x8AB7 # <CJK>
+0xE4E6E 0x8AB5 # <CJK>
+0xE4E6F 0x8AE9 # <CJK>
+0xE4E70 0x8AB4 # <CJK>
+0xE4E72 0x8AB3 # <CJK>
+0xE4E73 0x8AC1 # <CJK>
+0xE4E74 0x8AAF # <CJK>
+0xE4E75 0x8ACA # <CJK>
+0xE4E76 0x8AD0 # <CJK>
+0xE4E7A 0x8C8E # <CJK>
+0xE4E7D 0x8CE9 # <CJK>
+0xE4E7E 0x8CDB # <CJK>
+0xE4F22 0x8CEB # <CJK>
+0xE4F23 0x8DA4 # <CJK>
+0xE4F25 0x8DA2 # <CJK>
+0xE4F26 0x8D9D # <CJK>
+0xE4F2B 0x8E2A # <CJK>
+0xE4F2C 0x8E28 # <CJK>
+0xE4F2F 0x8EB8 # <CJK>
+0xE4F30 0x8EB6 # <CJK>
+0xE4F31 0x8EB9 # <CJK>
+0xE4F32 0x8EB7 # <CJK>
+0xE4F33 0x8F22 # <CJK>
+0xE4F34 0x8F2B # <CJK>
+0xE4F35 0x8F27 # <CJK>
+0xE4F36 0x8F19 # <CJK>
+0xE4F37 0x8FA4 # <CJK>
+0xE4F39 0x8FB3 # <CJK>
+0xE4F3B 0x9071 # <CJK>
+0xE4F3C 0x906A # <CJK>
+0xE4F3F 0x9188 # <CJK>
+0xE4F40 0x918C # <CJK>
+0xE4F41 0x92BF # <CJK>
+0xE4F42 0x92B8 # <CJK>
+0xE4F43 0x92BE # <CJK>
+0xE4F44 0x92DC # <CJK>
+0xE4F45 0x92E5 # <CJK>
+0xE4F48 0x92D4 # <CJK>
+0xE4F49 0x92D6 # <CJK>
+0xE4F4B 0x92DA # <CJK>
+0xE4F4C 0x92ED # <CJK>
+0xE4F4D 0x92F3 # <CJK>
+0xE4F4E 0x92DB # <CJK>
+0xE4F50 0x92B9 # <CJK>
+0xE4F51 0x92E2 # <CJK>
+0xE4F52 0x92EB # <CJK>
+0xE4F53 0x95AF # <CJK>
+0xE4F55 0x95B2 # <CJK>
+0xE4F56 0x95B3 # <CJK>
+0xE4F5A 0x96A3 # <CJK>
+0xE4F5B 0x96A5 # <CJK>
+0xE4F60 0x970A # <CJK>
+0xE4F62 0x9787 # <CJK>
+0xE4F63 0x9789 # <CJK>
+0xE4F64 0x978C # <CJK>
+0xE4F65 0x97EF # <CJK>
+0xE4F66 0x982A # <CJK>
+0xE4F67 0x9822 # <CJK>
+0xE4F69 0x981F # <CJK>
+0xE4F6B 0x9919 # <CJK>
+0xE4F6D 0x99CA # <CJK>
+0xE4F6E 0x99DA # <CJK>
+0xE4F72 0x99DE # <CJK>
+0xE4F73 0x99C8 # <CJK>
+0xE4F74 0x99E0 # <CJK>
+0xE4F76 0x9AB6 # <CJK>
+0xE4F77 0x9AB5 # <CJK>
+0xE4F79 0x9AF4 # <CJK>
+0xE4F7B 0x9B6B # <CJK>
+0xE4F7C 0x9B69 # <CJK>
+0xE4F7D 0x9B72 # <CJK>
+0xE4F7E 0x9B63 # <CJK>
+0xE5022 0x9D0D # <CJK>
+0xE5024 0x9D01 # <CJK>
+0xE5025 0x9D0C # <CJK>
+0xE5027 0x9CF8 # <CJK>
+0xE502A 0x9CFE # <CJK>
+0xE502B 0x9D02 # <CJK>
+0xE502C 0x9E84 # <CJK>
+0xE502E 0x9EAB # <CJK>
+0xE502F 0x9EAA # <CJK>
+0xE5030 0x511D # <CJK>
+0xE5031 0x5116 # <CJK>
+0xE5033 0x512B # <CJK>
+0xE5034 0x511E # <CJK>
+0xE5035 0x511B # <CJK>
+0xE5036 0x5290 # <CJK>
+0xE5037 0x5294 # <CJK>
+0xE5038 0x5314 # <CJK>
+0xE503B 0x5667 # <CJK>
+0xE503D 0x567B # <CJK>
+0xE503F 0x565F # <CJK>
+0xE5040 0x5661 # <CJK>
+0xE5048 0x58C3 # <CJK>
+0xE5049 0x58CA # <CJK>
+0xE504A 0x58BB # <CJK>
+0xE504B 0x58C0 # <CJK>
+0xE504C 0x58C4 # <CJK>
+0xE504D 0x5901 # <CJK>
+0xE504E 0x5B1F # <CJK>
+0xE504F 0x5B18 # <CJK>
+0xE5050 0x5B11 # <CJK>
+0xE5051 0x5B15 # <CJK>
+0xE5053 0x5B12 # <CJK>
+0xE5054 0x5B1C # <CJK>
+0xE5056 0x5B22 # <CJK>
+0xE5057 0x5B79 # <CJK>
+0xE5058 0x5DA6 # <CJK>
+0xE505A 0x5DB3 # <CJK>
+0xE505B 0x5DAB # <CJK>
+0xE505C 0x5EEA # <CJK>
+0xE505E 0x5F5B # <CJK>
+0xE5061 0x61B7 # <CJK>
+0xE5062 0x61CE # <CJK>
+0xE5063 0x61B9 # <CJK>
+0xE5064 0x61BD # <CJK>
+0xE5065 0x61CF # <CJK>
+0xE5066 0x61C0 # <CJK>
+0xE5067 0x6199 # <CJK>
+0xE5068 0x6197 # <CJK>
+0xE506A 0x61BB # <CJK>
+0xE506B 0x61D0 # <CJK>
+0xE506C 0x61C4 # <CJK>
+0xE506D 0x6231 # <CJK>
+0xE506F 0x64D3 # <CJK>
+0xE5070 0x64C0 # <CJK>
+0xE5075 0x64DC # <CJK>
+0xE5076 0x64D1 # <CJK>
+0xE5077 0x64C8 # <CJK>
+0xE5079 0x64D5 # <CJK>
+0xE507A 0x66C3 # <CJK>
+0xE507D 0x66BF # <CJK>
+0xE507E 0x66C5 # <CJK>
+0xE5122 0x66CD # <CJK>
+0xE5123 0x66C1 # <CJK>
+0xE5124 0x6706 # <CJK>
+0xE5126 0x6724 # <CJK>
+0xE5127 0x6A63 # <CJK>
+0xE5128 0x6A42 # <CJK>
+0xE5129 0x6A52 # <CJK>
+0xE512B 0x6A43 # <CJK>
+0xE512C 0x6A33 # <CJK>
+0xE512E 0x6A6C # <CJK>
+0xE512F 0x6A57 # <CJK>
+0xE5131 0x6A4C # <CJK>
+0xE5132 0x6A6E # <CJK>
+0xE5138 0x6A37 # <CJK>
+0xE513A 0x6A71 # <CJK>
+0xE513B 0x6A4A # <CJK>
+0xE513C 0x6A36 # <CJK>
+0xE513E 0x6A53 # <CJK>
+0xE5140 0x6A45 # <CJK>
+0xE5141 0x6A70 # <CJK>
+0xE5144 0x6A5C # <CJK>
+0xE5145 0x6B58 # <CJK>
+0xE5146 0x6B57 # <CJK>
+0xE514D 0x6FBB # <CJK>
+0xE5150 0x6FBE # <CJK>
+0xE5154 0x6FB5 # <CJK>
+0xE5155 0x6FD3 # <CJK>
+0xE5156 0x6F9F # <CJK>
+0xE5158 0x6FB7 # <CJK>
+0xE5159 0x6FF5 # <CJK>
+0xE515A 0x71B7 # <CJK>
+0xE515C 0x71BB # <CJK>
+0xE515E 0x71D1 # <CJK>
+0xE5160 0x71BA # <CJK>
+0xE5162 0x71B6 # <CJK>
+0xE5163 0x71CC # <CJK>
+0xE5166 0x71D3 # <CJK>
+0xE5167 0x749B # <CJK>
+0xE516A 0x7496 # <CJK>
+0xE516B 0x74A2 # <CJK>
+0xE516C 0x749D # <CJK>
+0xE516D 0x750A # <CJK>
+0xE516E 0x750E # <CJK>
+0xE5170 0x7581 # <CJK>
+0xE5171 0x762C # <CJK>
+0xE5172 0x7637 # <CJK>
+0xE5173 0x7636 # <CJK>
+0xE5174 0x763B # <CJK>
+0xE5176 0x76A1 # <CJK>
+0xE5179 0x7798 # <CJK>
+0xE517B 0x7796 # <CJK>
+0xE5221 0x78D6 # <CJK>
+0xE5222 0x78EB # <CJK>
+0xE5224 0x78DC # <CJK>
+0xE5226 0x79A5 # <CJK>
+0xE5227 0x79A9 # <CJK>
+0xE5228 0x9834 # <CJK>
+0xE5229 0x7A53 # <CJK>
+0xE522A 0x7A45 # <CJK>
+0xE522C 0x7A4F # <CJK>
+0xE522E 0x7ABD # <CJK>
+0xE522F 0x7ABB # <CJK>
+0xE5230 0x7AF1 # <CJK>
+0xE5233 0x7BEC # <CJK>
+0xE5234 0x7BED # <CJK>
+0xE5237 0x7CD3 # <CJK>
+0xE5239 0x7CE1 # <CJK>
+0xE523B 0x7E19 # <CJK>
+0xE523F 0x7E27 # <CJK>
+0xE5240 0x7E26 # <CJK>
+0xE5243 0x806E # <CJK>
+0xE5244 0x81AF # <CJK>
+0xE5247 0x81AD # <CJK>
+0xE5249 0x81AA # <CJK>
+0xE524A 0x8218 # <CJK>
+0xE524F 0x856F # <CJK>
+0xE5250 0x854C # <CJK>
+0xE5252 0x8542 # <CJK>
+0xE5254 0x855C # <CJK>
+0xE5255 0x8570 # <CJK>
+0xE5256 0x855F # <CJK>
+0xE5258 0x855A # <CJK>
+0xE5259 0x854B # <CJK>
+0xE525A 0x853F # <CJK>
+0xE525B 0x878A # <CJK>
+0xE525D 0x878B # <CJK>
+0xE525E 0x87A1 # <CJK>
+0xE525F 0x878E # <CJK>
+0xE5262 0x8799 # <CJK>
+0xE5263 0x885E # <CJK>
+0xE5264 0x885F # <CJK>
+0xE5265 0x8924 # <CJK>
+0xE5266 0x89A7 # <CJK>
+0xE5267 0x8AEA # <CJK>
+0xE5268 0x8AFD # <CJK>
+0xE5269 0x8AF9 # <CJK>
+0xE526A 0x8AE3 # <CJK>
+0xE526B 0x8AE5 # <CJK>
+0xE526E 0x8AEC # <CJK>
+0xE5273 0x8CF2 # <CJK>
+0xE5275 0x8CEF # <CJK>
+0xE5277 0x8DA6 # <CJK>
+0xE527B 0x8E3B # <CJK>
+0xE527C 0x8E43 # <CJK>
+0xE527E 0x8E32 # <CJK>
+0xE5321 0x8F31 # <CJK>
+0xE5322 0x8F30 # <CJK>
+0xE5324 0x8F2D # <CJK>
+0xE5325 0x8F3C # <CJK>
+0xE5326 0x8FA7 # <CJK>
+0xE5327 0x8FA5 # <CJK>
+0xE532B 0x9137 # <CJK>
+0xE532C 0x9195 # <CJK>
+0xE532D 0x918E # <CJK>
+0xE532F 0x9196 # <CJK>
+0xE5331 0x9345 # <CJK>
+0xE5332 0x930A # <CJK>
+0xE5335 0x92FD # <CJK>
+0xE5336 0x9317 # <CJK>
+0xE5337 0x931C # <CJK>
+0xE5338 0x9307 # <CJK>
+0xE5339 0x9331 # <CJK>
+0xE533A 0x9332 # <CJK>
+0xE533B 0x932C # <CJK>
+0xE533C 0x9330 # <CJK>
+0xE533D 0x9303 # <CJK>
+0xE533E 0x9305 # <CJK>
+0xE5340 0x95C2 # <CJK>
+0xE5342 0x95B8 # <CJK>
+0xE5344 0x95C1 # <CJK>
+0xE5348 0x96AB # <CJK>
+0xE5349 0x96B7 # <CJK>
+0xE534C 0x9715 # <CJK>
+0xE534D 0x9714 # <CJK>
+0xE5350 0x970C # <CJK>
+0xE5351 0x9717 # <CJK>
+0xE5353 0x9793 # <CJK>
+0xE5355 0x97D2 # <CJK>
+0xE5358 0x9836 # <CJK>
+0xE5359 0x9831 # <CJK>
+0xE535A 0x9833 # <CJK>
+0xE535B 0x983C # <CJK>
+0xE535C 0x982E # <CJK>
+0xE535D 0x983A # <CJK>
+0xE535F 0x983D # <CJK>
+0xE5361 0x98B5 # <CJK>
+0xE5362 0x9922 # <CJK>
+0xE5363 0x9923 # <CJK>
+0xE5364 0x9920 # <CJK>
+0xE5365 0x991C # <CJK>
+0xE5366 0x991D # <CJK>
+0xE5368 0x99A0 # <CJK>
+0xE536A 0x99EF # <CJK>
+0xE536B 0x99E8 # <CJK>
+0xE536C 0x99EB # <CJK>
+0xE5370 0x99E1 # <CJK>
+0xE5371 0x99E6 # <CJK>
+0xE5374 0x9AF8 # <CJK>
+0xE5375 0x9AF5 # <CJK>
+0xE5378 0x9B83 # <CJK>
+0xE5379 0x9B94 # <CJK>
+0xE537A 0x9B84 # <CJK>
+0xE537C 0x9B8B # <CJK>
+0xE537D 0x9B8F # <CJK>
+0xE5421 0x9B8C # <CJK>
+0xE5423 0x9B89 # <CJK>
+0xE5425 0x9B8E # <CJK>
+0xE5429 0x9D24 # <CJK>
+0xE542A 0x9D0F # <CJK>
+0xE542C 0x9D13 # <CJK>
+0xE542D 0x9D0A # <CJK>
+0xE5432 0x9D2A # <CJK>
+0xE5433 0x9D1A # <CJK>
+0xE5435 0x9D27 # <CJK>
+0xE5436 0x9D16 # <CJK>
+0xE5437 0x9D21 # <CJK>
+0xE5439 0x9E85 # <CJK>
+0xE543A 0x9EAC # <CJK>
+0xE543B 0x9EC6 # <CJK>
+0xE543C 0x9EC5 # <CJK>
+0xE543D 0x9ED7 # <CJK>
+0xE543E 0x9F53 # <CJK>
+0xE5440 0x5128 # <CJK>
+0xE5441 0x5127 # <CJK>
+0xE5442 0x51DF # <CJK>
+0xE5444 0x5335 # <CJK>
+0xE5445 0x53B3 # <CJK>
+0xE5447 0x568A # <CJK>
+0xE5448 0x567D # <CJK>
+0xE5449 0x5689 # <CJK>
+0xE544B 0x58CD # <CJK>
+0xE544C 0x58D0 # <CJK>
+0xE544E 0x5B2B # <CJK>
+0xE544F 0x5B33 # <CJK>
+0xE5450 0x5B29 # <CJK>
+0xE5451 0x5B35 # <CJK>
+0xE5452 0x5B31 # <CJK>
+0xE5453 0x5B37 # <CJK>
+0xE5454 0x5C36 # <CJK>
+0xE5455 0x5DBE # <CJK>
+0xE5457 0x5DB9 # <CJK>
+0xE5459 0x5DBB # <CJK>
+0xE545B 0x61E2 # <CJK>
+0xE545C 0x61DB # <CJK>
+0xE545D 0x61DD # <CJK>
+0xE545E 0x61DC # <CJK>
+0xE545F 0x61DA # <CJK>
+0xE5461 0x61D9 # <CJK>
+0xE5464 0x64DF # <CJK>
+0xE5467 0x64E1 # <CJK>
+0xE5469 0x64EE # <CJK>
+0xE546B 0x65B5 # <CJK>
+0xE546C 0x66D4 # <CJK>
+0xE546D 0x66D5 # <CJK>
+0xE546F 0x66D0 # <CJK>
+0xE5470 0x66D1 # <CJK>
+0xE5471 0x66CE # <CJK>
+0xE5472 0x66D7 # <CJK>
+0xE5475 0x6A7D # <CJK>
+0xE5476 0x6A8A # <CJK>
+0xE5478 0x6AA7 # <CJK>
+0xE547A 0x6A99 # <CJK>
+0xE547B 0x6A82 # <CJK>
+0xE547C 0x6A88 # <CJK>
+0xE5521 0x6A86 # <CJK>
+0xE5523 0x6A98 # <CJK>
+0xE5524 0x6A9D # <CJK>
+0xE5527 0x6A8F # <CJK>
+0xE5529 0x6AAA # <CJK>
+0xE552B 0x6B5D # <CJK>
+0xE552D 0x6C0A # <CJK>
+0xE552F 0x6FD7 # <CJK>
+0xE5530 0x6FD6 # <CJK>
+0xE5531 0x6FE5 # <CJK>
+0xE5535 0x6FD9 # <CJK>
+0xE5536 0x6FDA # <CJK>
+0xE5537 0x6FEA # <CJK>
+0xE5539 0x6FF6 # <CJK>
+0xE553C 0x71E3 # <CJK>
+0xE553E 0x71E9 # <CJK>
+0xE5540 0x71EB # <CJK>
+0xE5541 0x71EF # <CJK>
+0xE5542 0x71F3 # <CJK>
+0xE5543 0x71EA # <CJK>
+0xE5549 0x7371 # <CJK>
+0xE554B 0x74AE # <CJK>
+0xE554D 0x74B3 # <CJK>
+0xE554F 0x74AC # <CJK>
+0xE5552 0x7583 # <CJK>
+0xE5553 0x7645 # <CJK>
+0xE5554 0x764E # <CJK>
+0xE5555 0x7644 # <CJK>
+0xE5556 0x76A3 # <CJK>
+0xE5557 0x76A5 # <CJK>
+0xE5558 0x77A6 # <CJK>
+0xE5559 0x77A4 # <CJK>
+0xE555B 0x77A9 # <CJK>
+0xE555C 0x77AF # <CJK>
+0xE5560 0x78F0 # <CJK>
+0xE5561 0x78F8 # <CJK>
+0xE5562 0x78F1 # <CJK>
+0xE5564 0x7A49 # <CJK>
+0xE5568 0x7AC2 # <CJK>
+0xE5569 0x7AF2 # <CJK>
+0xE556A 0x7AF3 # <CJK>
+0xE556B 0x7BFA # <CJK>
+0xE556D 0x7BF6 # <CJK>
+0xE556E 0x7BFC # <CJK>
+0xE556F 0x7C18 # <CJK>
+0xE5570 0x7C08 # <CJK>
+0xE5571 0x7C12 # <CJK>
+0xE5574 0x7CDB # <CJK>
+0xE5575 0x7CDA # <CJK>
+0xE5579 0x7E2C # <CJK>
+0xE557A 0x7E4D # <CJK>
+0xE557D 0x7F46 # <CJK>
+0xE557E 0x7FF6 # <CJK>
+0xE5621 0x802B # <CJK>
+0xE5622 0x8074 # <CJK>
+0xE5623 0x81B8 # <CJK>
+0xE5624 0x81C8 # <CJK>
+0xE5628 0x8592 # <CJK>
+0xE5629 0x8593 # <CJK>
+0xE562B 0x857F # <CJK>
+0xE562C 0x85AB # <CJK>
+0xE562D 0x8597 # <CJK>
+0xE5630 0x85AC # <CJK>
+0xE5634 0x87CE # <CJK>
+0xE5636 0x87CD # <CJK>
+0xE5639 0x87C1 # <CJK>
+0xE563A 0x87B1 # <CJK>
+0xE563B 0x87C7 # <CJK>
+0xE563D 0x8940 # <CJK>
+0xE563F 0x893F # <CJK>
+0xE5640 0x8939 # <CJK>
+0xE5642 0x8943 # <CJK>
+0xE5646 0x89AB # <CJK>
+0xE5648 0x8B1F # <CJK>
+0xE5649 0x8B09 # <CJK>
+0xE564A 0x8B0C # <CJK>
+0xE564D 0x8C40 # <CJK>
+0xE564F 0x8C96 # <CJK>
+0xE5651 0x8CF6 # <CJK>
+0xE5652 0x8CF7 # <CJK>
+0xE5654 0x8E46 # <CJK>
+0xE5655 0x8E4F # <CJK>
+0xE5659 0x8F3D # <CJK>
+0xE565A 0x8F41 # <CJK>
+0xE565B 0x9366 # <CJK>
+0xE565C 0x9378 # <CJK>
+0xE565D 0x935D # <CJK>
+0xE565E 0x9369 # <CJK>
+0xE565F 0x9374 # <CJK>
+0xE5660 0x937D # <CJK>
+0xE5661 0x936E # <CJK>
+0xE5662 0x9372 # <CJK>
+0xE5663 0x9373 # <CJK>
+0xE5664 0x9362 # <CJK>
+0xE5665 0x9348 # <CJK>
+0xE5666 0x9353 # <CJK>
+0xE5667 0x935F # <CJK>
+0xE5668 0x9368 # <CJK>
+0xE566A 0x937F # <CJK>
+0xE566B 0x936B # <CJK>
+0xE566D 0x95C4 # <CJK>
+0xE566F 0x96AF # <CJK>
+0xE5670 0x96AD # <CJK>
+0xE5671 0x96B2 # <CJK>
+0xE5674 0x971A # <CJK>
+0xE5675 0x971B # <CJK>
+0xE567A 0x979B # <CJK>
+0xE567B 0x979F # <CJK>
+0xE5726 0x9840 # <CJK>
+0xE5728 0x9847 # <CJK>
+0xE572A 0x98B7 # <CJK>
+0xE5730 0x99A2 # <CJK>
+0xE5733 0x9A00 # <CJK>
+0xE5734 0x99F3 # <CJK>
+0xE5737 0x99F5 # <CJK>
+0xE573A 0x9ABD # <CJK>
+0xE573B 0x9B00 # <CJK>
+0xE573C 0x9B02 # <CJK>
+0xE573E 0x9B34 # <CJK>
+0xE573F 0x9B49 # <CJK>
+0xE5740 0x9B9F # <CJK>
+0xE5742 0x9BA3 # <CJK>
+0xE5743 0x9BCD # <CJK>
+0xE5744 0x9B99 # <CJK>
+0xE5745 0x9B9D # <CJK>
+0xE5748 0x9D39 # <CJK>
+0xE574A 0x9D44 # <CJK>
+0xE574D 0x9D35 # <CJK>
+0xE5750 0x9EAF # <CJK>
+0xE5752 0x512F # <CJK>
+0xE5755 0x9F8E # <CJK>
+0xE5757 0x569F # <CJK>
+0xE5758 0x569B # <CJK>
+0xE5759 0x569E # <CJK>
+0xE575A 0x5696 # <CJK>
+0xE575B 0x5694 # <CJK>
+0xE575C 0x56A0 # <CJK>
+0xE575E 0x5B3B # <CJK>
+0xE5761 0x5B3A # <CJK>
+0xE5762 0x5DC1 # <CJK>
+0xE5763 0x5F4D # <CJK>
+0xE5764 0x5F5D # <CJK>
+0xE5765 0x61F3 # <CJK>
+0xE576A 0x64F6 # <CJK>
+0xE576B 0x64E5 # <CJK>
+0xE576C 0x64EA # <CJK>
+0xE576D 0x64E7 # <CJK>
+0xE576E 0x6505 # <CJK>
+0xE5770 0x64F9 # <CJK>
+0xE5774 0x6AAB # <CJK>
+0xE5775 0x6AED # <CJK>
+0xE5776 0x6AB2 # <CJK>
+0xE5777 0x6AB0 # <CJK>
+0xE5778 0x6AB5 # <CJK>
+0xE5779 0x6ABE # <CJK>
+0xE577A 0x6AC1 # <CJK>
+0xE577B 0x6AC8 # <CJK>
+0xE577D 0x6AC0 # <CJK>
+0xE577E 0x6ABC # <CJK>
+0xE5821 0x6AB1 # <CJK>
+0xE5822 0x6AC4 # <CJK>
+0xE5823 0x6ABF # <CJK>
+0xE5826 0x7008 # <CJK>
+0xE5827 0x7003 # <CJK>
+0xE5828 0x6FFD # <CJK>
+0xE5829 0x7010 # <CJK>
+0xE582A 0x7002 # <CJK>
+0xE582B 0x7013 # <CJK>
+0xE582D 0x71FA # <CJK>
+0xE582E 0x7200 # <CJK>
+0xE582F 0x74B9 # <CJK>
+0xE5830 0x74BC # <CJK>
+0xE5832 0x765B # <CJK>
+0xE5833 0x7651 # <CJK>
+0xE5834 0x764F # <CJK>
+0xE5835 0x76EB # <CJK>
+0xE5836 0x77B8 # <CJK>
+0xE5838 0x77B9 # <CJK>
+0xE5839 0x77C1 # <CJK>
+0xE583A 0x77C0 # <CJK>
+0xE583B 0x77BE # <CJK>
+0xE583C 0x790B # <CJK>
+0xE583E 0x7907 # <CJK>
+0xE583F 0x790A # <CJK>
+0xE5840 0x7908 # <CJK>
+0xE5842 0x790D # <CJK>
+0xE5843 0x7906 # <CJK>
+0xE5844 0x7915 # <CJK>
+0xE5845 0x79AF # <CJK>
+0xE5849 0x7AF5 # <CJK>
+0xE584C 0x7C2E # <CJK>
+0xE584E 0x7C1B # <CJK>
+0xE5850 0x7C1A # <CJK>
+0xE5851 0x7C24 # <CJK>
+0xE5854 0x7CE6 # <CJK>
+0xE5855 0x7CE3 # <CJK>
+0xE5858 0x7E5D # <CJK>
+0xE5859 0x7E4F # <CJK>
+0xE585A 0x7E66 # <CJK>
+0xE585B 0x7E5B # <CJK>
+0xE585C 0x7F47 # <CJK>
+0xE585D 0x7FB4 # <CJK>
+0xE5861 0x7FFA # <CJK>
+0xE5862 0x802E # <CJK>
+0xE5865 0x81CE # <CJK>
+0xE5868 0x8219 # <CJK>
+0xE586B 0x85CC # <CJK>
+0xE586C 0x85B2 # <CJK>
+0xE586E 0x85BB # <CJK>
+0xE586F 0x85C1 # <CJK>
+0xE5873 0x87E9 # <CJK>
+0xE5874 0x87EE # <CJK>
+0xE5875 0x87F0 # <CJK>
+0xE5876 0x87D6 # <CJK>
+0xE5877 0x880E # <CJK>
+0xE5878 0x87DA # <CJK>
+0xE5879 0x8948 # <CJK>
+0xE587A 0x894A # <CJK>
+0xE587B 0x894E # <CJK>
+0xE587C 0x894D # <CJK>
+0xE587D 0x89B1 # <CJK>
+0xE587E 0x89B0 # <CJK>
+0xE5921 0x89B3 # <CJK>
+0xE5923 0x8B38 # <CJK>
+0xE5924 0x8B32 # <CJK>
+0xE5926 0x8B2D # <CJK>
+0xE5928 0x8B34 # <CJK>
+0xE592A 0x8B29 # <CJK>
+0xE592B 0x8C74 # <CJK>
+0xE592E 0x8D03 # <CJK>
+0xE5931 0x8DA9 # <CJK>
+0xE5932 0x8E58 # <CJK>
+0xE5935 0x8EBF # <CJK>
+0xE5936 0x8EC1 # <CJK>
+0xE5937 0x8F4A # <CJK>
+0xE5938 0x8FAC # <CJK>
+0xE593A 0x9089 # <CJK>
+0xE593B 0x913D # <CJK>
+0xE593C 0x913C # <CJK>
+0xE593D 0x91A9 # <CJK>
+0xE593E 0x93A0 # <CJK>
+0xE5940 0x9390 # <CJK>
+0xE5942 0x9393 # <CJK>
+0xE5943 0x938B # <CJK>
+0xE5944 0x93AD # <CJK>
+0xE5945 0x93BB # <CJK>
+0xE5946 0x93B8 # <CJK>
+0xE5949 0x939C # <CJK>
+0xE594A 0x95D8 # <CJK>
+0xE594B 0x95D7 # <CJK>
+0xE594F 0x975D # <CJK>
+0xE5950 0x97A9 # <CJK>
+0xE5951 0x97DA # <CJK>
+0xE5956 0x9854 # <CJK>
+0xE5958 0x9855 # <CJK>
+0xE5959 0x984B # <CJK>
+0xE595B 0x983F # <CJK>
+0xE595C 0x98B9 # <CJK>
+0xE5961 0x9938 # <CJK>
+0xE5962 0x9936 # <CJK>
+0xE5963 0x9940 # <CJK>
+0xE5965 0x993B # <CJK>
+0xE5966 0x9939 # <CJK>
+0xE5967 0x99A4 # <CJK>
+0xE596A 0x9A08 # <CJK>
+0xE596B 0x9A0C # <CJK>
+0xE596D 0x9A10 # <CJK>
+0xE596F 0x9B07 # <CJK>
+0xE5971 0x9BD2 # <CJK>
+0xE5973 0x9BC2 # <CJK>
+0xE5974 0x9BBB # <CJK>
+0xE5975 0x9BCC # <CJK>
+0xE5976 0x9BCB # <CJK>
+0xE5979 0x9D4D # <CJK>
+0xE597A 0x9D63 # <CJK>
+0xE597B 0x9D4E # <CJK>
+0xE597D 0x9D50 # <CJK>
+0xE597E 0x9D55 # <CJK>
+0xE5A22 0x9D5E # <CJK>
+0xE5A24 0x9E90 # <CJK>
+0xE5A25 0x9EB2 # <CJK>
+0xE5A26 0x9EB1 # <CJK>
+0xE5A28 0x9ECA # <CJK>
+0xE5A29 0x9F02 # <CJK>
+0xE5A2A 0x9F27 # <CJK>
+0xE5A2B 0x9F26 # <CJK>
+0xE5A2D 0x56AF # <CJK>
+0xE5A2E 0x58E0 # <CJK>
+0xE5A2F 0x58DC # <CJK>
+0xE5A31 0x5B39 # <CJK>
+0xE5A34 0x5B7C # <CJK>
+0xE5A35 0x5BF3 # <CJK>
+0xE5A38 0x5C6B # <CJK>
+0xE5A39 0x5DC4 # <CJK>
+0xE5A3A 0x650B # <CJK>
+0xE5A3B 0x6508 # <CJK>
+0xE5A3C 0x650A # <CJK>
+0xE5A3F 0x65DC # <CJK>
+0xE5A42 0x66E1 # <CJK>
+0xE5A43 0x66DF # <CJK>
+0xE5A44 0x6ACE # <CJK>
+0xE5A45 0x6AD4 # <CJK>
+0xE5A46 0x6AE3 # <CJK>
+0xE5A47 0x6AD7 # <CJK>
+0xE5A48 0x6AE2 # <CJK>
+0xE5A4D 0x6AD8 # <CJK>
+0xE5A4E 0x6AD5 # <CJK>
+0xE5A4F 0x6AD2 # <CJK>
+0xE5A52 0x701E # <CJK>
+0xE5A53 0x702C # <CJK>
+0xE5A54 0x7025 # <CJK>
+0xE5A55 0x6FF3 # <CJK>
+0xE5A56 0x7204 # <CJK>
+0xE5A57 0x7208 # <CJK>
+0xE5A58 0x7215 # <CJK>
+0xE5A5A 0x74C4 # <CJK>
+0xE5A5B 0x74C9 # <CJK>
+0xE5A5C 0x74C7 # <CJK>
+0xE5A5D 0x74C8 # <CJK>
+0xE5A5E 0x76A9 # <CJK>
+0xE5A5F 0x77C6 # <CJK>
+0xE5A60 0x77C5 # <CJK>
+0xE5A61 0x7918 # <CJK>
+0xE5A62 0x791A # <CJK>
+0xE5A63 0x7920 # <CJK>
+0xE5A65 0x7A66 # <CJK>
+0xE5A66 0x7A64 # <CJK>
+0xE5A67 0x7A6A # <CJK>
+0xE5A6E 0x7C35 # <CJK>
+0xE5A6F 0x7C34 # <CJK>
+0xE5A72 0x7E6C # <CJK>
+0xE5A74 0x7E6E # <CJK>
+0xE5A75 0x7E71 # <CJK>
+0xE5A77 0x81D4 # <CJK>
+0xE5A78 0x81D6 # <CJK>
+0xE5A79 0x821A # <CJK>
+0xE5A7A 0x8262 # <CJK>
+0xE5A7B 0x8265 # <CJK>
+0xE5A7C 0x8276 # <CJK>
+0xE5A7D 0x85DB # <CJK>
+0xE5A7E 0x85D6 # <CJK>
+0xE5B22 0x85E7 # <CJK>
+0xE5B25 0x85F4 # <CJK>
+0xE5B27 0x87FD # <CJK>
+0xE5B28 0x87D5 # <CJK>
+0xE5B29 0x8807 # <CJK>
+0xE5B2B 0x880F # <CJK>
+0xE5B2C 0x87F8 # <CJK>
+0xE5B2F 0x8987 # <CJK>
+0xE5B31 0x89B5 # <CJK>
+0xE5B32 0x89F5 # <CJK>
+0xE5B34 0x8B3F # <CJK>
+0xE5B35 0x8B43 # <CJK>
+0xE5B36 0x8B4C # <CJK>
+0xE5B38 0x8D0B # <CJK>
+0xE5B39 0x8E6B # <CJK>
+0xE5B3A 0x8E68 # <CJK>
+0xE5B3B 0x8E70 # <CJK>
+0xE5B3C 0x8E75 # <CJK>
+0xE5B3D 0x8E77 # <CJK>
+0xE5B3F 0x8EC3 # <CJK>
+0xE5B41 0x93E9 # <CJK>
+0xE5B42 0x93EA # <CJK>
+0xE5B43 0x93CB # <CJK>
+0xE5B44 0x93C5 # <CJK>
+0xE5B45 0x93C6 # <CJK>
+0xE5B47 0x93ED # <CJK>
+0xE5B48 0x93D3 # <CJK>
+0xE5B4A 0x93E5 # <CJK>
+0xE5B4D 0x93DB # <CJK>
+0xE5B4E 0x93EB # <CJK>
+0xE5B4F 0x93E0 # <CJK>
+0xE5B50 0x93C1 # <CJK>
+0xE5B53 0x95DD # <CJK>
+0xE5B5D 0x97B2 # <CJK>
+0xE5B5E 0x97B4 # <CJK>
+0xE5B5F 0x97B1 # <CJK>
+0xE5B60 0x97B5 # <CJK>
+0xE5B61 0x97F2 # <CJK>
+0xE5B65 0x9856 # <CJK>
+0xE5B69 0x9944 # <CJK>
+0xE5B6B 0x9A26 # <CJK>
+0xE5B6C 0x9A1F # <CJK>
+0xE5B6D 0x9A18 # <CJK>
+0xE5B6E 0x9A21 # <CJK>
+0xE5B6F 0x9A17 # <CJK>
+0xE5B71 0x9B09 # <CJK>
+0xE5B74 0x9BC5 # <CJK>
+0xE5B75 0x9BDF # <CJK>
+0xE5B77 0x9BE3 # <CJK>
+0xE5B79 0x9BE9 # <CJK>
+0xE5B7A 0x9BEE # <CJK>
+0xE5B7D 0x9D66 # <CJK>
+0xE5B7E 0x9D7A # <CJK>
+0xE5C22 0x9D6E # <CJK>
+0xE5C23 0x9D91 # <CJK>
+0xE5C24 0x9D83 # <CJK>
+0xE5C25 0x9D76 # <CJK>
+0xE5C26 0x9D7E # <CJK>
+0xE5C27 0x9D6D # <CJK>
+0xE5C29 0x9E95 # <CJK>
+0xE5C2A 0x9EE3 # <CJK>
+0xE5C2D 0x9F03 # <CJK>
+0xE5C2E 0x9F04 # <CJK>
+0xE5C30 0x9F17 # <CJK>
+0xE5C32 0x5136 # <CJK>
+0xE5C34 0x5336 # <CJK>
+0xE5C36 0x5B42 # <CJK>
+0xE5C39 0x5B44 # <CJK>
+0xE5C3A 0x5B46 # <CJK>
+0xE5C3B 0x5B7E # <CJK>
+0xE5C3C 0x5DCA # <CJK>
+0xE5C3D 0x5DC8 # <CJK>
+0xE5C3E 0x5DCC # <CJK>
+0xE5C3F 0x5EF0 # <CJK>
+0xE5C41 0x6585 # <CJK>
+0xE5C42 0x66E5 # <CJK>
+0xE5C43 0x66E7 # <CJK>
+0xE5C47 0x6AF4 # <CJK>
+0xE5C49 0x6AE9 # <CJK>
+0xE5C4F 0x703D # <CJK>
+0xE5C51 0x7036 # <CJK>
+0xE5C53 0x7216 # <CJK>
+0xE5C55 0x7212 # <CJK>
+0xE5C56 0x720F # <CJK>
+0xE5C57 0x7217 # <CJK>
+0xE5C58 0x7211 # <CJK>
+0xE5C59 0x720B # <CJK>
+0xE5C5C 0x74CD # <CJK>
+0xE5C5D 0x74D0 # <CJK>
+0xE5C5E 0x74CC # <CJK>
+0xE5C5F 0x74CE # <CJK>
+0xE5C60 0x74D1 # <CJK>
+0xE5C62 0x7589 # <CJK>
+0xE5C64 0x7A6F # <CJK>
+0xE5C65 0x7C4B # <CJK>
+0xE5C66 0x7C44 # <CJK>
+0xE5C6C 0x7E7F # <CJK>
+0xE5C6D 0x8B71 # <CJK>
+0xE5C6F 0x802F # <CJK>
+0xE5C70 0x807A # <CJK>
+0xE5C71 0x807B # <CJK>
+0xE5C72 0x807C # <CJK>
+0xE5C76 0x85FC # <CJK>
+0xE5C77 0x8610 # <CJK>
+0xE5C78 0x8602 # <CJK>
+0xE5C7B 0x85EE # <CJK>
+0xE5C7C 0x8603 # <CJK>
+0xE5C7E 0x860D # <CJK>
+0xE5D21 0x8613 # <CJK>
+0xE5D22 0x8608 # <CJK>
+0xE5D23 0x860F # <CJK>
+0xE5D24 0x8818 # <CJK>
+0xE5D25 0x8812 # <CJK>
+0xE5D28 0x8967 # <CJK>
+0xE5D29 0x8965 # <CJK>
+0xE5D2A 0x89BB # <CJK>
+0xE5D2B 0x8B69 # <CJK>
+0xE5D2C 0x8B62 # <CJK>
+0xE5D2E 0x8B6E # <CJK>
+0xE5D30 0x8B61 # <CJK>
+0xE5D32 0x8B64 # <CJK>
+0xE5D33 0x8B4D # <CJK>
+0xE5D34 0x8C51 # <CJK>
+0xE5D37 0x8E83 # <CJK>
+0xE5D38 0x8EC6 # <CJK>
+0xE5D3A 0x941F # <CJK>
+0xE5D3C 0x9404 # <CJK>
+0xE5D3D 0x9417 # <CJK>
+0xE5D3E 0x9408 # <CJK>
+0xE5D3F 0x9405 # <CJK>
+0xE5D41 0x93F3 # <CJK>
+0xE5D42 0x941E # <CJK>
+0xE5D43 0x9402 # <CJK>
+0xE5D44 0x941A # <CJK>
+0xE5D45 0x941B # <CJK>
+0xE5D46 0x9427 # <CJK>
+0xE5D47 0x941C # <CJK>
+0xE5D49 0x96B5 # <CJK>
+0xE5D4C 0x9733 # <CJK>
+0xE5D4E 0x9734 # <CJK>
+0xE5D4F 0x9731 # <CJK>
+0xE5D50 0x97B8 # <CJK>
+0xE5D51 0x97BA # <CJK>
+0xE5D53 0x97FC # <CJK>
+0xE5D56 0x98C3 # <CJK>
+0xE5D58 0x994D # <CJK>
+0xE5D5A 0x9A2F # <CJK>
+0xE5D5E 0x9AC9 # <CJK>
+0xE5D60 0x9AC8 # <CJK>
+0xE5D61 0x9AC4 # <CJK>
+0xE5D62 0x9B2A # <CJK>
+0xE5D63 0x9B38 # <CJK>
+0xE5D64 0x9B50 # <CJK>
+0xE5D66 0x9C0A # <CJK>
+0xE5D67 0x9BFB # <CJK>
+0xE5D68 0x9C04 # <CJK>
+0xE5D69 0x9BFC # <CJK>
+0xE5D6A 0x9BFE # <CJK>
+0xE5D6E 0x9C02 # <CJK>
+0xE5D6F 0x9BF6 # <CJK>
+0xE5D70 0x9C1B # <CJK>
+0xE5D71 0x9BF9 # <CJK>
+0xE5D72 0x9C15 # <CJK>
+0xE5D73 0x9C10 # <CJK>
+0xE5D74 0x9BFF # <CJK>
+0xE5D75 0x9C00 # <CJK>
+0xE5D76 0x9C0C # <CJK>
+0xE5D79 0x9D95 # <CJK>
+0xE5D7A 0x9DA5 # <CJK>
+0xE5E21 0x9E98 # <CJK>
+0xE5E22 0x9EC1 # <CJK>
+0xE5E24 0x9F5A # <CJK>
+0xE5E25 0x5164 # <CJK>
+0xE5E26 0x56BB # <CJK>
+0xE5E28 0x58E6 # <CJK>
+0xE5E29 0x5B49 # <CJK>
+0xE5E2A 0x5BF7 # <CJK>
+0xE5E2D 0x5DD0 # <CJK>
+0xE5E2F 0x5FC2 # <CJK>
+0xE5E31 0x6511 # <CJK>
+0xE5E33 0x6AFF # <CJK>
+0xE5E34 0x6AFE # <CJK>
+0xE5E35 0x6AFD # <CJK>
+0xE5E37 0x6B01 # <CJK>
+0xE5E3A 0x704B # <CJK>
+0xE5E3B 0x704D # <CJK>
+0xE5E3C 0x7047 # <CJK>
+0xE5E3D 0x74D3 # <CJK>
+0xE5E3E 0x7668 # <CJK>
+0xE5E3F 0x7667 # <CJK>
+0xE5E42 0x77D1 # <CJK>
+0xE5E43 0x7930 # <CJK>
+0xE5E44 0x7932 # <CJK>
+0xE5E45 0x792E # <CJK>
+0xE5E47 0x9F9D # <CJK>
+0xE5E48 0x7AC9 # <CJK>
+0xE5E49 0x7AC8 # <CJK>
+0xE5E4B 0x7C56 # <CJK>
+0xE5E4C 0x7C51 # <CJK>
+0xE5E50 0x7E85 # <CJK>
+0xE5E51 0x7E89 # <CJK>
+0xE5E52 0x7E8E # <CJK>
+0xE5E53 0x7E84 # <CJK>
+0xE5E55 0x826A # <CJK>
+0xE5E56 0x862B # <CJK>
+0xE5E57 0x862F # <CJK>
+0xE5E58 0x8628 # <CJK>
+0xE5E5A 0x8616 # <CJK>
+0xE5E5B 0x8615 # <CJK>
+0xE5E5C 0x861D # <CJK>
+0xE5E5D 0x881A # <CJK>
+0xE5E61 0x89BC # <CJK>
+0xE5E62 0x8B75 # <CJK>
+0xE5E63 0x8B7C # <CJK>
+0xE5E65 0x8D11 # <CJK>
+0xE5E66 0x8D12 # <CJK>
+0xE5E67 0x8F5C # <CJK>
+0xE5E68 0x91BB # <CJK>
+0xE5E6A 0x93F4 # <CJK>
+0xE5E6D 0x942D # <CJK>
+0xE5E70 0x96E4 # <CJK>
+0xE5E71 0x9737 # <CJK>
+0xE5E72 0x9736 # <CJK>
+0xE5E73 0x9767 # <CJK>
+0xE5E74 0x97BE # <CJK>
+0xE5E75 0x97BD # <CJK>
+0xE5E76 0x97E2 # <CJK>
+0xE5E77 0x9868 # <CJK>
+0xE5E78 0x9866 # <CJK>
+0xE5E79 0x98C8 # <CJK>
+0xE5E7A 0x98CA # <CJK>
+0xE5E7B 0x98C7 # <CJK>
+0xE5E7C 0x98DC # <CJK>
+0xE5E7E 0x994F # <CJK>
+0xE5F21 0x99A9 # <CJK>
+0xE5F22 0x9A3C # <CJK>
+0xE5F24 0x9A3B # <CJK>
+0xE5F25 0x9ACE # <CJK>
+0xE5F27 0x9B14 # <CJK>
+0xE5F28 0x9B53 # <CJK>
+0xE5F2A 0x9C2E # <CJK>
+0xE5F2C 0x9C1F # <CJK>
+0xE5F31 0x9DB0 # <CJK>
+0xE5F32 0x9DBD # <CJK>
+0xE5F35 0x9DAE # <CJK>
+0xE5F36 0x9DC4 # <CJK>
+0xE5F37 0x9E7B # <CJK>
+0xE5F3A 0x9E9E # <CJK>
+0xE5F3C 0x9F05 # <CJK>
+0xE5F3E 0x9F69 # <CJK>
+0xE5F3F 0x9FA1 # <CJK>
+0xE5F40 0x56C7 # <CJK>
+0xE5F41 0x571D # <CJK>
+0xE5F42 0x5B4A # <CJK>
+0xE5F43 0x5DD3 # <CJK>
+0xE5F45 0x5F72 # <CJK>
+0xE5F46 0x6202 # <CJK>
+0xE5F48 0x6235 # <CJK>
+0xE5F49 0x6527 # <CJK>
+0xE5F4A 0x651E # <CJK>
+0xE5F4B 0x651F # <CJK>
+0xE5F4E 0x6B07 # <CJK>
+0xE5F4F 0x6B06 # <CJK>
+0xE5F52 0x7054 # <CJK>
+0xE5F53 0x721C # <CJK>
+0xE5F54 0x7220 # <CJK>
+0xE5F55 0x7AF8 # <CJK>
+0xE5F57 0x7C5D # <CJK>
+0xE5F58 0x7C58 # <CJK>
+0xE5F5A 0x7E92 # <CJK>
+0xE5F5B 0x7F4E # <CJK>
+0xE5F5F 0x8827 # <CJK>
+0xE5F61 0x8B81 # <CJK>
+0xE5F62 0x8B83 # <CJK>
+0xE5F64 0x8C44 # <CJK>
+0xE5F69 0x9442 # <CJK>
+0xE5F6A 0x944D # <CJK>
+0xE5F6B 0x9454 # <CJK>
+0xE5F6C 0x944E # <CJK>
+0xE5F6E 0x9443 # <CJK>
+0xE5F71 0x973C # <CJK>
+0xE5F72 0x9740 # <CJK>
+0xE5F73 0x97C0 # <CJK>
+0xE5F78 0x995A # <CJK>
+0xE5F79 0x9A51 # <CJK>
+0xE5F7B 0x9ADD # <CJK>
+0xE5F7E 0x9C38 # <CJK>
+0xE6022 0x9C45 # <CJK>
+0xE6023 0x9C3A # <CJK>
+0xE6025 0x9C35 # <CJK>
+0xE6029 0x9EF1 # <CJK>
+0xE602B 0x9F93 # <CJK>
+0xE602C 0x529A # <CJK>
+0xE602F 0x8641 # <CJK>
+0xE6030 0x5DD7 # <CJK>
+0xE6032 0x6528 # <CJK>
+0xE6036 0x7053 # <CJK>
+0xE6037 0x7059 # <CJK>
+0xE6039 0x7221 # <CJK>
+0xE603B 0x766F # <CJK>
+0xE603C 0x7937 # <CJK>
+0xE603D 0x79B5 # <CJK>
+0xE603E 0x7C62 # <CJK>
+0xE603F 0x7C5E # <CJK>
+0xE6040 0x7CF5 # <CJK>
+0xE6043 0x863D # <CJK>
+0xE6045 0x882D # <CJK>
+0xE6046 0x8989 # <CJK>
+0xE6047 0x8B8D # <CJK>
+0xE6048 0x8B87 # <CJK>
+0xE6049 0x8B90 # <CJK>
+0xE604A 0x8D1A # <CJK>
+0xE604B 0x8E99 # <CJK>
+0xE604F 0x945F # <CJK>
+0xE6052 0x9456 # <CJK>
+0xE6053 0x9461 # <CJK>
+0xE6054 0x945B # <CJK>
+0xE6055 0x945A # <CJK>
+0xE6056 0x945C # <CJK>
+0xE6057 0x9465 # <CJK>
+0xE6059 0x9741 # <CJK>
+0xE605C 0x986E # <CJK>
+0xE605D 0x986C # <CJK>
+0xE605E 0x986D # <CJK>
+0xE6060 0x99AA # <CJK>
+0xE6061 0x9A5C # <CJK>
+0xE6062 0x9A58 # <CJK>
+0xE6063 0x9ADE # <CJK>
+0xE6065 0x9C4F # <CJK>
+0xE6066 0x9C51 # <CJK>
+0xE6068 0x9C53 # <CJK>
+0xE606C 0x9DFC # <CJK>
+0xE606D 0x9F39 # <CJK>
+0xE606F 0x513E # <CJK>
+0xE6071 0x56D2 # <CJK>
+0xE6073 0x5B4F # <CJK>
+0xE6074 0x6B14 # <CJK>
+0xE6076 0x7A72 # <CJK>
+0xE6077 0x7A73 # <CJK>
+0xE607B 0x8B91 # <CJK>
+0xE607E 0x91BF # <CJK>
+0xE6122 0x946C # <CJK>
+0xE6125 0x96E6 # <CJK>
+0xE6126 0x9745 # <CJK>
+0xE6128 0x97C8 # <CJK>
+0xE6129 0x97E4 # <CJK>
+0xE612A 0x995D # <CJK>
+0xE612C 0x9B21 # <CJK>
+0xE612E 0x9B2C # <CJK>
+0xE612F 0x9B57 # <CJK>
+0xE6132 0x9C5D # <CJK>
+0xE6133 0x9C61 # <CJK>
+0xE6134 0x9C65 # <CJK>
+0xE6135 0x9E08 # <CJK>
+0xE613B 0x9F45 # <CJK>
+0xE613E 0x6205 # <CJK>
+0xE613F 0x66EF # <CJK>
+0xE6140 0x6B1B # <CJK>
+0xE6141 0x6B1D # <CJK>
+0xE6142 0x7225 # <CJK>
+0xE6143 0x7224 # <CJK>
+0xE6144 0x7C6D # <CJK>
+0xE6146 0x8642 # <CJK>
+0xE6147 0x8649 # <CJK>
+0xE6149 0x8978 # <CJK>
+0xE614A 0x898A # <CJK>
+0xE614B 0x8B97 # <CJK>
+0xE614D 0x8C9B # <CJK>
+0xE614E 0x8D1C # <CJK>
+0xE6150 0x8EA2 # <CJK>
+0xE6159 0x9C6C # <CJK>
+0xE615B 0x9C6F # <CJK>
+0xE615D 0x9E0E # <CJK>
+0xE615F 0x9F08 # <CJK>
+0xE6160 0x9F1D # <CJK>
+0xE6161 0x9FA3 # <CJK>
+0xE6164 0x5F60 # <CJK>
+0xE6165 0x6B1C # <CJK>
+0xE6169 0x7CF3 # <CJK>
+0xE616B 0x8B9B # <CJK>
+0xE616C 0x8EA7 # <CJK>
+0xE616D 0x91C4 # <CJK>
+0xE616F 0x947A # <CJK>
+0xE6172 0x9A61 # <CJK>
+0xE6173 0x9A63 # <CJK>
+0xE6174 0x9AD7 # <CJK>
+0xE6175 0x9C76 # <CJK>
+0xE6177 0x9FA5 # <CJK>
+0xE6179 0x7067 # <CJK>
+0xE617B 0x72AB # <CJK>
+0xE617C 0x864A # <CJK>
+0xE617D 0x897D # <CJK>
+0xE617E 0x8B9D # <CJK>
+0xE6221 0x8C53 # <CJK>
+0xE6222 0x8F65 # <CJK>
+0xE6223 0x947B # <CJK>
+0xE6225 0x98CD # <CJK>
+0xE6226 0x98DD # <CJK>
+0xE6228 0x9B30 # <CJK>
+0xE6229 0x9E16 # <CJK>
+0xE622F 0x96E7 # <CJK>
+0xE6230 0x9E18 # <CJK>
+0xE6231 0x9EA2 # <CJK>
+0xE6233 0x9F7C # <CJK>
+0xE6235 0x7E9E # <CJK>
+0xE6236 0x9484 # <CJK>
+0xE6238 0x9E1C # <CJK>
+0xE623A 0x7C71 # <CJK>
+0xE623B 0x97CA # <CJK>
+0xE623F 0x9EA3 # <CJK>
+0xE6241 0x9C7B # <CJK>
+0xE6242 0x9F97 # <CJK>
+0xE6245 0x9750 # <CJK>
+0xE6249 0x5727 # <CJK>
+0xE624A 0x5C13 # <CJK>
+0xE6251 0x5FC8 # <CJK>
+0xE6257 0x6765 # <CJK>
+0xE625A 0x52BD # <CJK>
+0xE625C 0x5B66 # <CJK>
+0xE625E 0x65F9 # <CJK>
+0xE625F 0x6788 # <CJK>
+0xE6260 0x6CE6 # <CJK>
+0xE6261 0x6CCB # <CJK>
+0xE6263 0x4FBD # <CJK>
+0xE6264 0x5F8D # <CJK>
+0xE6266 0x6018 # <CJK>
+0xE6267 0x6048 # <CJK>
+0xE6269 0x6B29 # <CJK>
+0xE626A 0x70A6 # <CJK>
+0xE626C 0x7706 # <CJK>
+0xE6270 0x5A10 # <CJK>
+0xE6271 0x5CFC # <CJK>
+0xE6272 0x5CFE # <CJK>
+0xE6279 0x70C9 # <CJK>
+0xE6323 0x9579 # <CJK>
+0xE6325 0x96BA # <CJK>
+0xE632D 0x7B29 # <CJK>
+0xE632E 0x8128 # <CJK>
+0xE6330 0x8A2E # <CJK>
+0xE6334 0x9AD9 # <CJK>
+0xE6336 0x582B # <CJK>
+0xE6337 0x5845 # <CJK>
+0xE6339 0x63FA # <CJK>
+0xE633D 0x6E86 # <CJK>
+0xE6343 0x5867 # <CJK>
+0xE6345 0x5BDD # <CJK>
+0xE6346 0x656E # <CJK>
+0xE634A 0x8C87 # <CJK>
+0xE634C 0x50D2 # <CJK>
+0xE634D 0x50DF # <CJK>
+0xE6352 0x69BA # <CJK>
+0xE6354 0x6B9D # <CJK>
+0xE6356 0x8059 # <CJK>
+0xE6363 0x6F8A # <CJK>
+0xE6366 0x7BC3 # <CJK>
+0xE6367 0x7BC2 # <CJK>
+0xE636C 0x90F6 # <CJK>
+0xE636E 0x9823 # <CJK>
+0xE6374 0x71CD # <CJK>
+0xE6375 0x7499 # <CJK>
+0xE637B 0x9842 # <CJK>
+0xE6422 0x7F84 # <CJK>
+0xE6428 0x8D0E # <CJK>
+0xE642A 0x9861 # <CJK>
+0xE642D 0x8B73 # <CJK>
+0xE642F 0x9C27 # <CJK>
+0xE6431 0x9458 # <CJK>
+0xE6432 0x77D6 # <CJK>
+0xE6433 0x9B2D # <CJK>
+0xE6448 0x4F66 # <CJK>
+0xE6449 0x4F68 # <CJK>
+0xE644A 0x4FE7 # <CJK>
+0xE644B 0x503F # <CJK>
+0xE644D 0x50A6 # <CJK>
+0xE644E 0x510F # <CJK>
+0xE644F 0x523E # <CJK>
+0xE6450 0x5324 # <CJK>
+0xE6451 0x5365 # <CJK>
+0xE6452 0x539B # <CJK>
+0xE6453 0x517F # <CJK>
+0xE6454 0x54CB # <CJK>
+0xE6455 0x5573 # <CJK>
+0xE6456 0x5571 # <CJK>
+0xE6457 0x556B # <CJK>
+0xE6458 0x55F4 # <CJK>
+0xE6459 0x5622 # <CJK>
+0xE645A 0x5620 # <CJK>
+0xE645B 0x5692 # <CJK>
+0xE645C 0x56BA # <CJK>
+0xE645D 0x5691 # <CJK>
+0xE645E 0x56B0 # <CJK>
+0xE645F 0x5759 # <CJK>
+0xE6460 0x578A # <CJK>
+0xE6461 0x580F # <CJK>
+0xE6462 0x5812 # <CJK>
+0xE6463 0x5813 # <CJK>
+0xE6464 0x5847 # <CJK>
+0xE6465 0x589B # <CJK>
+0xE6466 0x5900 # <CJK>
+0xE6467 0x594D # <CJK>
+0xE6468 0x5AD1 # <CJK>
+0xE6469 0x5AD3 # <CJK>
+0xE646A 0x5B67 # <CJK>
+0xE646B 0x5C57 # <CJK>
+0xE646C 0x5C77 # <CJK>
+0xE646D 0x5CD5 # <CJK>
+0xE646E 0x5D75 # <CJK>
+0xE646F 0x5D8E # <CJK>
+0xE6470 0x5DA5 # <CJK>
+0xE6471 0x5DB6 # <CJK>
+0xE6472 0x5DBF # <CJK>
+0xE6473 0x5E65 # <CJK>
+0xE6474 0x5ECD # <CJK>
+0xE6475 0x5EED # <CJK>
+0xE6476 0x5F94 # <CJK>
+0xE6477 0x5F9A # <CJK>
+0xE6478 0x5FBA # <CJK>
+0xE6479 0x6125 # <CJK>
+0xE647A 0x6150 # <CJK>
+0xE647B 0x62A3 # <CJK>
+0xE647C 0x6360 # <CJK>
+0xE647D 0x6364 # <CJK>
+0xE647E 0x63B6 # <CJK>
+0xE6521 0x6403 # <CJK>
+0xE6522 0x64B6 # <CJK>
+0xE6523 0x651A # <CJK>
+0xE6524 0x7A25 # <CJK>
+0xE6525 0x5C21 # <CJK>
+0xE6526 0x66E2 # <CJK>
+0xE6527 0x6702 # <CJK>
+0xE6528 0x67A4 # <CJK>
+0xE6529 0x67AC # <CJK>
+0xE652A 0x6810 # <CJK>
+0xE652B 0x6806 # <CJK>
+0xE652C 0x685E # <CJK>
+0xE652D 0x685A # <CJK>
+0xE652E 0x692C # <CJK>
+0xE652F 0x6929 # <CJK>
+0xE6530 0x6A2D # <CJK>
+0xE6531 0x6A77 # <CJK>
+0xE6532 0x6A7A # <CJK>
+0xE6533 0x6ACA # <CJK>
+0xE6534 0x6AE6 # <CJK>
+0xE6535 0x6AF5 # <CJK>
+0xE6536 0x6B0D # <CJK>
+0xE6537 0x6B0E # <CJK>
+0xE6538 0x6BDC # <CJK>
+0xE6539 0x6BDD # <CJK>
+0xE653A 0x6BF6 # <CJK>
+0xE653B 0x6C1E # <CJK>
+0xE653C 0x6C63 # <CJK>
+0xE653D 0x6DA5 # <CJK>
+0xE653E 0x6E0F # <CJK>
+0xE653F 0x6E8A # <CJK>
+0xE6540 0x6E84 # <CJK>
+0xE6541 0x6E8B # <CJK>
+0xE6542 0x6E7C # <CJK>
+0xE6543 0x6F4C # <CJK>
+0xE6544 0x6F48 # <CJK>
+0xE6545 0x6F49 # <CJK>
+0xE6546 0x6F9D # <CJK>
+0xE6547 0x6F99 # <CJK>
+0xE6548 0x6FF8 # <CJK>
+0xE6549 0x702E # <CJK>
+0xE654A 0x702D # <CJK>
+0xE654B 0x705C # <CJK>
+0xE654C 0x79CC # <CJK>
+0xE654D 0x70BF # <CJK>
+0xE654E 0x70EA # <CJK>
+0xE654F 0x70E5 # <CJK>
+0xE6550 0x7111 # <CJK>
+0xE6551 0x7112 # <CJK>
+0xE6552 0x713F # <CJK>
+0xE6553 0x7139 # <CJK>
+0xE6554 0x713B # <CJK>
+0xE6555 0x713D # <CJK>
+0xE6556 0x7177 # <CJK>
+0xE6557 0x7175 # <CJK>
+0xE6558 0x7176 # <CJK>
+0xE6559 0x7171 # <CJK>
+0xE655A 0x7196 # <CJK>
+0xE655B 0x7193 # <CJK>
+0xE655C 0x71B4 # <CJK>
+0xE655D 0x71DD # <CJK>
+0xE655E 0x71DE # <CJK>
+0xE655F 0x720E # <CJK>
+0xE6560 0x5911 # <CJK>
+0xE6561 0x7218 # <CJK>
+0xE6562 0x7347 # <CJK>
+0xE6563 0x7348 # <CJK>
+0xE6564 0x73EF # <CJK>
+0xE6565 0x7412 # <CJK>
+0xE6566 0x743B # <CJK>
+0xE6567 0x74A4 # <CJK>
+0xE6568 0x748D # <CJK>
+0xE6569 0x74B4 # <CJK>
+0xE656A 0x7673 # <CJK>
+0xE656B 0x7677 # <CJK>
+0xE656C 0x76BC # <CJK>
+0xE656D 0x7819 # <CJK>
+0xE656E 0x781B # <CJK>
+0xE656F 0x783D # <CJK>
+0xE6570 0x7853 # <CJK>
+0xE6571 0x7854 # <CJK>
+0xE6572 0x7858 # <CJK>
+0xE6573 0x78B7 # <CJK>
+0xE6574 0x78D8 # <CJK>
+0xE6575 0x78EE # <CJK>
+0xE6576 0x7922 # <CJK>
+0xE6577 0x794D # <CJK>
+0xE6578 0x7986 # <CJK>
+0xE6579 0x7999 # <CJK>
+0xE657A 0x79A3 # <CJK>
+0xE657B 0x79BC # <CJK>
+0xE657C 0x7AA7 # <CJK>
+0xE657D 0x7B37 # <CJK>
+0xE657E 0x7B59 # <CJK>
+0xE6621 0x7BD0 # <CJK>
+0xE6622 0x7C2F # <CJK>
+0xE6623 0x7C32 # <CJK>
+0xE6624 0x7C42 # <CJK>
+0xE6625 0x7C4E # <CJK>
+0xE6626 0x7C68 # <CJK>
+0xE6627 0x7CA9 # <CJK>
+0xE6628 0x7CED # <CJK>
+0xE6629 0x7DD0 # <CJK>
+0xE662A 0x7E07 # <CJK>
+0xE662B 0x7DD3 # <CJK>
+0xE662C 0x7E64 # <CJK>
+0xE662D 0x7F40 # <CJK>
+0xE662F 0x8041 # <CJK>
+0xE6630 0x8063 # <CJK>
+0xE6631 0x80BB # <CJK>
+0xE6632 0x6711 # <CJK>
+0xE6633 0x6725 # <CJK>
+0xE6634 0x8248 # <CJK>
+0xE6635 0x8310 # <CJK>
+0xE6636 0x8362 # <CJK>
+0xE6637 0x8312 # <CJK>
+0xE6638 0x8421 # <CJK>
+0xE6639 0x841E # <CJK>
+0xE663A 0x84E2 # <CJK>
+0xE663B 0x84DE # <CJK>
+0xE663C 0x84E1 # <CJK>
+0xE663D 0x8573 # <CJK>
+0xE663E 0x85D4 # <CJK>
+0xE663F 0x85F5 # <CJK>
+0xE6640 0x8637 # <CJK>
+0xE6641 0x8645 # <CJK>
+0xE6642 0x8672 # <CJK>
+0xE6643 0x874A # <CJK>
+0xE6644 0x87A9 # <CJK>
+0xE6645 0x87A5 # <CJK>
+0xE6646 0x87F5 # <CJK>
+0xE6647 0x8834 # <CJK>
+0xE6648 0x8850 # <CJK>
+0xE6649 0x8887 # <CJK>
+0xE664A 0x8954 # <CJK>
+0xE664B 0x8984 # <CJK>
+0xE664C 0x8B03 # <CJK>
+0xE664D 0x8C52 # <CJK>
+0xE664E 0x8CD8 # <CJK>
+0xE664F 0x8D0C # <CJK>
+0xE6650 0x8D18 # <CJK>
+0xE6651 0x8DB0 # <CJK>
+0xE6652 0x8EBC # <CJK>
+0xE6653 0x8ED5 # <CJK>
+0xE6654 0x8FAA # <CJK>
+0xE6655 0x909C # <CJK>
+0xE6657 0x915C # <CJK>
+0xE6658 0x922B # <CJK>
+0xE6659 0x9221 # <CJK>
+0xE665A 0x9273 # <CJK>
+0xE665B 0x92F4 # <CJK>
+0xE665C 0x92F5 # <CJK>
+0xE665D 0x933F # <CJK>
+0xE665E 0x9342 # <CJK>
+0xE665F 0x9386 # <CJK>
+0xE6660 0x93BE # <CJK>
+0xE6661 0x93BC # <CJK>
+0xE6662 0x93BD # <CJK>
+0xE6663 0x93F1 # <CJK>
+0xE6664 0x93F2 # <CJK>
+0xE6665 0x93EF # <CJK>
+0xE6666 0x9422 # <CJK>
+0xE6667 0x9423 # <CJK>
+0xE6668 0x9424 # <CJK>
+0xE6669 0x9467 # <CJK>
+0xE666A 0x9466 # <CJK>
+0xE666B 0x9597 # <CJK>
+0xE666C 0x95CE # <CJK>
+0xE666D 0x95E7 # <CJK>
+0xE666E 0x973B # <CJK>
+0xE666F 0x974D # <CJK>
+0xE6670 0x98E4 # <CJK>
+0xE6671 0x9942 # <CJK>
+0xE6672 0x9B1D # <CJK>
+0xE6673 0x9B98 # <CJK>
+0xE6675 0x9D49 # <CJK>
+0xE6676 0x6449 # <CJK>
+0xE6677 0x5E71 # <CJK>
+0xE6678 0x5E85 # <CJK>
+0xE6679 0x61D3 # <CJK>
+0xE667A 0x990E # <CJK>
+0xE667B 0x8002 # <CJK>
+0xE667C 0x781E # <CJK>
+0xE6721 0x5528 # <CJK>
+0xE6722 0x5572 # <CJK>
+0xE6723 0x55BA # <CJK>
+0xE6724 0x55F0 # <CJK>
+0xE6725 0x55EE # <CJK>
+0xE6726 0x56B8 # <CJK>
+0xE6727 0x56B9 # <CJK>
+0xE6728 0x56C4 # <CJK>
+0xE6729 0x8053 # <CJK>
+0xE672A 0x92B0 # <CJK>
diff --git a/tools/encoding/jis0201.txt b/tools/encoding/jis0201.txt
index d84c98a..8ee5ea0 100644
--- a/tools/encoding/jis0201.txt
+++ b/tools/encoding/jis0201.txt
@@ -1,33 +1,24 @@
+# JIS0201.TXT
+# Date: 2015-12-02 23:49:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Name: JIS X 0201 (1976) to Unicode 1.1 Table
# Unicode version: 1.1
-# Table version: 0.9
+# Table version: 2.0
# Table format: Format A
-# Date: 8 March 1994
-# Authors: Glenn Adams <glenn@metis.com>
-# John H. Jenkins <John_Jenkins@taligent.com>
+# Date: 2011 October 14 (header updated: 2015 December 02)
#
-# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
-#
-# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-# No claims are made as to fitness for any particular purpose. No
-# warranties of any kind are expressed or implied. The recipient
-# agrees to determine applicability of information provided. If this
-# file has been provided on magnetic media by Unicode, Inc., the sole
-# remedy for any claim will be exchange of defective media within 90
-# days of receipt.
+# General notes:
#
-# Recipient is granted the right to make copies in any form for
-# internal distribution and to freely use the information supplied
-# in the creation of products supporting Unicode. Unicode, Inc.
-# specifically excludes the right to re-distribute this file directly
-# to third parties or other organizations whether for profit or not.
#
-# General notes:
+# This table contains one set of mappings from JIS X 0201 into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the
+# VENDORS mapping data.
#
-# This table contains the data the Unicode Consortium has on how
-# single-byte JIS X 0201 characters map into Unicode 1.1
-# (ISO/IEC 10646:1-1993 UCS-2).
#
# Format: Three tab-separated columns
# Column #1 is the shift JIS code (in hex as 0xXX)
@@ -36,11 +27,22 @@
#
# The entries are in JIS order
#
-# These mappings are provisional, pending definition of
-# official mappings by Japanese standards bodies.
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
#
-# Any comments or problems, contact <John_Jenkins@taligent.com>
+# [v0.9, 8 March 1994]
+# First release.
#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
#
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
diff --git a/tools/encoding/jis0208.txt b/tools/encoding/jis0208.txt
index ef9ce79..6009286 100644
--- a/tools/encoding/jis0208.txt
+++ b/tools/encoding/jis0208.txt
@@ -1,45 +1,37 @@
+# JIS0208.TXT
+# Date: 2015-12-02 23:50:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Name: JIS X 0208 (1990) to Unicode
# Unicode version: 1.1
-# Table version: 0.9
+# Table version: 2.0
# Table format: Format A
-# Date: 8 March 1994
-# Authors: Glenn Adams <glenn@metis.com>
-# John H. Jenkins <John_Jenkins@taligent.com>
+# Date: 2011 October 14 (header updated: 2015 December 02)
#
-# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
-#
-# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-# No claims are made as to fitness for any particular purpose. No
-# warranties of any kind are expressed or implied. The recipient
-# agrees to determine applicability of information provided. If this
-# file has been provided on magnetic media by Unicode, Inc., the sole
-# remedy for any claim will be exchange of defective media within 90
-# days of receipt.
+# General notes:
#
-# Recipient is granted the right to make copies in any form for
-# internal distribution and to freely use the information supplied
-# in the creation of products supporting Unicode. Unicode, Inc.
-# specifically excludes the right to re-distribute this file directly
-# to third parties or other organizations whether for profit or not.
#
-# General notes:
+# This table contains one set of mappings from JIS X 0208 (1990) into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of JIS X 0208 (1990) and Unicode, consult the
+# VENDORS mapping data.
#
-# This table contains the data the Unicode Consortium has on how
-# JIS X 0208 (1983) characters map into Unicode.
#
# Format: Four tab-separated columns
# Column #1 is the shift-JIS code (in hex)
# Column #2 is the JIS X 0208 code (in hex as 0xXXXX)
# Column #3 is the Unicode (in hex as 0xXXXX)
# Column #4 the Unicode name (follows a comment sign, '#')
-# The official names for Unicode characters U+4E00
-# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
-# where XXXX is the code point. Including all these
-# names in this file increases its size substantially
-# and needlessly. The token "<CJK>" is used for the
-# name of these characters. If necessary, it can be
-# expanded algorithmically by a parser or editor.
+# The official names for Unicode characters U+4E00
+# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
+# where XXXX is the code point. Including all these
+# names in this file increases its size substantially
+# and needlessly. The token "<CJK>" is used for the
+# name of these characters. If necessary, it can be
+# expanded algorithmically by a parser or editor.
#
# The entries are in JIS X 0208 order
#
@@ -52,12 +44,22 @@
# the kuten form. For example, 0x2121 -> 0x0101 -> 0101;
# 0x7426 -> 0x5406 -> 8406
#
-# The kanji mappings are a normative part of ISO/IEC 10646. The
-# non-kanji mappings are provisional, pending definition of
-# official mappings by Japanese standards bodies
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
#
-# Any comments or problems, contact <John_Jenkins@taligent.com>
+# [v0.9, 8 March 1994]
+# First release.
#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
#
0x8140 0x2121 0x3000 # IDEOGRAPHIC SPACE
0x8141 0x2122 0x3001 # IDEOGRAPHIC COMMA
diff --git a/tools/encoding/jis0212.txt b/tools/encoding/jis0212.txt
index 316d28e..98a0063 100644
--- a/tools/encoding/jis0212.txt
+++ b/tools/encoding/jis0212.txt
@@ -1,44 +1,36 @@
+# JIS0212.TXT
+# Date: 2015-12-02 23:51:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Name: JIS X 0212 (1990) to Unicode
# Unicode version: 1.1
-# Table version: 0.9
+# Table version: 2.0
# Table format: Format A
-# Date: 8 March 1994
-# Authors: Glenn Adams <glenn@metis.com>
-# John H. Jenkins <John_Jenkins@taligent.com>
+# Date: 2011 October 14 (header updated: 2015 December 02)
#
-# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
-#
-# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-# No claims are made as to fitness for any particular purpose. No
-# warranties of any kind are expressed or implied. The recipient
-# agrees to determine applicability of information provided. If this
-# file has been provided on magnetic media by Unicode, Inc., the sole
-# remedy for any claim will be exchange of defective media within 90
-# days of receipt.
+# General notes:
#
-# Recipient is granted the right to make copies in any form for
-# internal distribution and to freely use the information supplied
-# in the creation of products supporting Unicode. Unicode, Inc.
-# specifically excludes the right to re-distribute this file directly
-# to third parties or other organizations whether for profit or not.
#
-# General notes:
+# This table contains one set of mappings from JIS X 0212 into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of JIS X 0212 and Unicode, consult the
+# VENDORS mapping data.
#
-# This table contains the data the Unicode Consortium has on how
-# JIS X 0212 (1983) characters map into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the JIS X 0212 code (in hex as 0xXXXX)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 the Unicode name (follows a comment sign, '#')
-# The official names for Unicode characters U+4E00
-# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
-# where XXXX is the code point. Including all these
-# names in this file increases its size substantially
-# and needlessly. The token "<CJK>" is used for the
-# name of these characters. If necessary, it can be
-# expanded algorithmically by a parser or editor.
+# The official names for Unicode characters U+4E00
+# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
+# where XXXX is the code point. Including all these
+# names in this file increases its size substantially
+# and needlessly. The token "<CJK>" is used for the
+# name of these characters. If necessary, it can be
+# expanded algorithmically by a parser or editor.
#
# The entries are in JIS X 0212 order
#
@@ -51,12 +43,6 @@
# the kuten form. For example, 0x2121 -> 0x0101 -> 0101;
# 0x6D63 -> 0x4D43 -> 7767
#
-# The kanji mappings are a normative part of ISO/IEC 10646. The
-# non-kanji mappings are provisional, pending definition of
-# official mappings by Japanese standards bodies
-#
-# Any comments or problems, contact <John_Jenkins@taligent.com>
-#
# Notes:
#
# 1. JIS X 0212 apparently unified the following two symbols
@@ -72,6 +58,23 @@
# Consequently, in the Unicode mapping, 0x2922 is treated as
# LATIN CAPITAL LETTER D WITH STROKE.
#
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
+#
+# [v0.9, 8 March 1994]
+# First release.
+#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
+#
0x222F 0x02D8 # BREVE
0x2230 0x02C7 # CARON (Mandarin Chinese third tone)
0x2231 0x00B8 # CEDILLA
diff --git a/tools/encoding/shiftjis.txt b/tools/encoding/shiftjis.txt
index b616f85..a2f1f94 100644
--- a/tools/encoding/shiftjis.txt
+++ b/tools/encoding/shiftjis.txt
@@ -1,44 +1,36 @@
+# SHIFTJIS.TXT
+# Date: 2015-12-02 23:52:00 GMT [KW]
+# © 2015 Unicode®, Inc.
+# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# Name: Shift-JIS to Unicode
# Unicode version: 1.1
-# Table version: 0.9
+# Table version: 2.0
# Table format: Format A
-# Date: 8 March 1994
-# Authors: Glenn Adams <glenn@metis.com>
-# John H. Jenkins <John_Jenkins@taligent.com>
+# Date: 2011 October 14 (header updated: 2015 December 02)
#
-# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
-#
-# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
-# No claims are made as to fitness for any particular purpose. No
-# warranties of any kind are expressed or implied. The recipient
-# agrees to determine applicability of information provided. If this
-# file has been provided on magnetic media by Unicode, Inc., the sole
-# remedy for any claim will be exchange of defective media within 90
-# days of receipt.
+# General notes:
#
-# Recipient is granted the right to make copies in any form for
-# internal distribution and to freely use the information supplied
-# in the creation of products supporting Unicode. Unicode, Inc.
-# specifically excludes the right to re-distribute this file directly
-# to third parties or other organizations whether for profit or not.
#
-# General notes:
+# This table contains one set of mappings from Shift-JIS into Unicode.
+# Note that these data are *possible* mappings only and may not be the
+# same as those used by actual products, nor may they be the best suited
+# for all uses. For more information on the mappings between various code
+# pages incorporating the repertoire of Shift-JIS and Unicode, consult the
+# VENDORS mapping data.
#
-# This table contains the data the Unicode Consortium has on how
-# Shift-JIS (a combination of JIS 0201 and JIS 0208) maps into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the shift-JIS code (in hex)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 the Unicode name (follows a comment sign, '#')
-# The official names for Unicode characters U+4E00
-# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
-# where XXXX is the code point. Including all these
-# names in this file increases its size substantially
-# and needlessly. The token "<CJK>" is used for the
-# name of these characters. If necessary, it can be
-# expanded algorithmically by a parser or editor.
+# The official names for Unicode characters U+4E00
+# to U+9FA5, inclusive, is "CJK UNIFIED IDEOGRAPH-XXXX",
+# where XXXX is the code point. Including all these
+# names in this file increases its size substantially
+# and needlessly. The token "<CJK>" is used for the
+# name of these characters. If necessary, it can be
+# expanded algorithmically by a parser or editor.
#
# The entries are ordered by their Shift-JIS codes as follows:
# Single-byte characters precede double-byte characters
@@ -49,12 +41,22 @@
# This alternate order can be generated from the one given here
# by a simple sort.
#
-# The kanji mappings are a normative part of ISO/IEC 10646. The
-# non-kanji mappings are provisional, pending definition of
-# official mappings by Japanese standards bodies
+# Revision History:
+#
+# [v2.0, 2015 December 02]
+# updates to copyright notice and terms of use
+# no changes to character mappings
+#
+# [v1.0, 2011 October 14]
+# Updated terms of use to current wording.
+# Updated contact information.
+# No changes to the mapping data.
#
-# Any comments or problems, contact <John_Jenkins@taligent.com>
+# [v0.9, 8 March 1994]
+# First release.
#
+# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
+# for any questions or comments or to report errors in the data.
#
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
diff --git a/tools/findBadExternals.tcl b/tools/findBadExternals.tcl
index 2228357..2351cd2 100755
--- a/tools/findBadExternals.tcl
+++ b/tools/findBadExternals.tcl
@@ -10,7 +10,7 @@
#
# tclsh findBadExternals.tcl /path/to/tclXX.so-or-.dll
#
-# Copyright (c) 2005 George Peter Staplin and Kevin Kenny
+# Copyright © 2005 George Peter Staplin and Kevin Kenny
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tools/genStubs.tcl b/tools/genStubs.tcl
index 4f4acbb..282abcc 100644
--- a/tools/genStubs.tcl
+++ b/tools/genStubs.tcl
@@ -4,8 +4,8 @@
# interface.
#
#
-# Copyright (c) 1998-1999 Scriptics Corporation.
-# Copyright (c) 2007 Daniel A. Steffen <das@users.sourceforge.net>
+# Copyright © 1998-1999 Scriptics Corporation.
+# Copyright © 2007 Daniel A. Steffen <das@users.sourceforge.net>
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tools/index.tcl b/tools/index.tcl
index 0e645c4..07f5868 100644
--- a/tools/index.tcl
+++ b/tools/index.tcl
@@ -4,7 +4,7 @@
# the man page conversion. It is used to extract information used to
# generate a table of contents and a keyword list.
#
-# Copyright (c) 1996 Sun Microsystems, Inc.
+# Copyright © 1996 Sun Microsystems, Inc.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tools/installData.tcl b/tools/installData.tcl
index 4a3b1ee..644cf53 100644
--- a/tools/installData.tcl
+++ b/tools/installData.tcl
@@ -12,7 +12,7 @@ exec tclsh "$0" ${1+"$@"}
#
#----------------------------------------------------------------------
#
-# Copyright (c) 2004 Kevin B. Kenny. All rights reserved.
+# Copyright © 2004 Kevin B. Kenny. All rights reserved.
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#----------------------------------------------------------------------
diff --git a/tools/installVfs.tcl b/tools/installVfs.tcl
index 14993ec..699b00e 100644
--- a/tools/installVfs.tcl
+++ b/tools/installVfs.tcl
@@ -10,7 +10,7 @@ exec tclsh "$0" ${1+"$@"}
#
#----------------------------------------------------------------------
#
-# Copyright (c) 2018 Sean Woods. All rights reserved.
+# Copyright © 2018 Sean Woods. All rights reserved.
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#----------------------------------------------------------------------
diff --git a/tools/loadICU.tcl b/tools/loadICU.tcl
index 6057662..bbe5e4a 100755
--- a/tools/loadICU.tcl
+++ b/tools/loadICU.tcl
@@ -22,7 +22,7 @@
#
#----------------------------------------------------------------------
#
-# Copyright (c) 2004 Kevin B. Kenny. All rights reserved.
+# Copyright © 2004 Kevin B. Kenny. All rights reserved.
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#----------------------------------------------------------------------
diff --git a/tools/makeHeader.tcl b/tools/makeHeader.tcl
index 1d961c9..17526e0 100644
--- a/tools/makeHeader.tcl
+++ b/tools/makeHeader.tcl
@@ -3,7 +3,7 @@
# This script generates embeddable C source (in a .h file) from a .tcl
# script.
#
-# Copyright (c) 2018 Donal K. Fellows
+# Copyright © 2018 Donal K. Fellows
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tools/mkdepend.tcl b/tools/mkdepend.tcl
index b1ad076..6e3d6ed 100644
--- a/tools/mkdepend.tcl
+++ b/tools/mkdepend.tcl
@@ -2,7 +2,7 @@
#
# mkdepend : generate dependency information from C/C++ files
#
-# Copyright (c) 1998, Nat Pryce
+# Copyright © 1998, Nat Pryce
#
# Permission is hereby granted, without written agreement and without
# license or royalty fees, to use, copy, modify, and distribute this
diff --git a/tools/regexpTestLib.tcl b/tools/regexpTestLib.tcl
index bdb7d90..454a4e8 100644
--- a/tools/regexpTestLib.tcl
+++ b/tools/regexpTestLib.tcl
@@ -4,7 +4,7 @@
# spencer2regexp.tcl, which are programs written to convert Henry
# Spencer's test suite to tcl test files.
#
-# Copyright (c) 1996 Sun Microsystems, Inc.
+# Copyright © 1996 Sun Microsystems, Inc.
proc readInputFile {} {
global inFileName
@@ -105,7 +105,7 @@ proc writeOutputFile {numLines fcn} {
puts $fileId "# errors. No output means no errors were found. Setting VERBOSE to"
puts $fileId "# -1 will run tests that are known to fail."
puts $fileId "#"
- puts $fileId "# Copyright (c) 1998 Sun Microsystems, Inc."
+ puts $fileId "# Copyright © 1998 Sun Microsystems, Inc."
puts $fileId "#"
puts $fileId "# See the file \"license.terms\" for information on usage and redistribution"
puts $fileId "# of this file, and for a DISCLAIMER OF ALL WARRANTIES."
diff --git a/tools/tclOOScript.tcl b/tools/tclOOScript.tcl
index 5e0145f..10d3bf8 100644
--- a/tools/tclOOScript.tcl
+++ b/tools/tclOOScript.tcl
@@ -4,9 +4,9 @@
# that the code can be definitely run even in safe interpreters; TclOO's
# core setup is safe.
#
-# Copyright (c) 2012-2018 Donal K. Fellows
-# Copyright (c) 2013 Andreas Kupries
-# Copyright (c) 2017 Gerald Lester
+# Copyright © 2012-2018 Donal K. Fellows
+# Copyright © 2013 Andreas Kupries
+# Copyright © 2017 Gerald Lester
#
# See the file "license.terms" for information on usage and redistribution of
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
diff --git a/tools/tclZIC.tcl b/tools/tclZIC.tcl
index 901814f..b04669e 100755
--- a/tools/tclZIC.tcl
+++ b/tools/tclZIC.tcl
@@ -25,7 +25,7 @@
#
#----------------------------------------------------------------------
#
-# Copyright (c) 2004 Kevin B. Kenny. All rights reserved.
+# Copyright © 2004 Kevin B. Kenny. All rights reserved.
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#----------------------------------------------------------------------
diff --git a/tools/tcltk-man2html-utils.tcl b/tools/tcltk-man2html-utils.tcl
index b7a8520..98bbf86 100644
--- a/tools/tcltk-man2html-utils.tcl
+++ b/tools/tcltk-man2html-utils.tcl
@@ -3,8 +3,8 @@
## functions are specifically intended to work with the format as used
## by Tcl and Tk; they do not cope with arbitrary nroff markup.
##
-## Copyright (c) 1995-1997 Roger E. Critchlow Jr
-## Copyright (c) 2004-2011 Donal K. Fellows
+## Copyright © 1995-1997 Roger E. Critchlow Jr
+## Copyright © 2004-2011 Donal K. Fellows
set ::manual(report-level) 1
diff --git a/tools/tcltk-man2html.tcl b/tools/tcltk-man2html.tcl
index 0e87531..020aad9 100755
--- a/tools/tcltk-man2html.tcl
+++ b/tools/tcltk-man2html.tcl
@@ -19,8 +19,8 @@ if {[catch {package require Tcl 8.6-} msg]} {
# into hypertext, not as a general solution to the problem. If you
# try to use this, you'll be very much on your own.
#
-# Copyright (c) 1995-1997 Roger E. Critchlow Jr
-# Copyright (c) 2004-2010 Donal K. Fellows
+# Copyright © 1995-1997 Roger E. Critchlow Jr
+# Copyright © 2004-2010 Donal K. Fellows
set ::Version "50/8.7"
set ::CSSFILE "docs.css"
diff --git a/tools/uniParse.tcl b/tools/uniParse.tcl
index aec5864..3acf19c 100644
--- a/tools/uniParse.tcl
+++ b/tools/uniParse.tcl
@@ -6,7 +6,7 @@
# UnicodeData file from:
# ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt
#
-# Copyright (c) 1998-1999 Scriptics Corporation.
+# Copyright © 1998-1999 Scriptics Corporation.
# All rights reserved.
@@ -185,7 +185,7 @@ proc uni::main {} {
* automatically generated by the tools/uniParse.tcl script. Do not
* modify this file by hand.
*
- * Copyright (c) 1998 Scriptics Corporation.
+ * Copyright © 1998 Scriptics Corporation.
* All rights reserved.
*/
diff --git a/unix/configure b/unix/configure
index 98d3a50..86c93f4 100755
--- a/unix/configure
+++ b/unix/configure
@@ -1,9 +1,10 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.70 for tcl 8.7.
+# Generated by GNU Autoconf 2.71 for tcl 8.7.
#
#
-# Copyright (C) 1992-1996, 1998-2017, 2020 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -1551,9 +1552,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
tcl configure 8.7
-generated by GNU Autoconf 2.70
+generated by GNU Autoconf 2.71
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1783,24 +1784,23 @@ printf "%s\n" "$ac_res" >&6; }
} # ac_fn_c_check_func
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- # Initialize each $ac_[]_AC_LANG_ABBREV[]_decl_warn_flag once.
- as_decl_name=`echo $2|sed 's/ *(.*//'`
- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
printf %s "(cached) " >&6
else $as_nop
- ac_save_werror_flag=$ac_c_werror_flag
- ac_c_werror_flag="$ac_c_decl_warn_flag$ac_c_werror_flag"
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ eval ac_save_FLAGS=\$$6
+ as_fn_append $6 " $5"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$4
@@ -1826,14 +1826,15 @@ else $as_nop
eval "$3=no"
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
- ac_c_werror_flag=$ac_save_werror_flag
+ eval $6=\$ac_save_FLAGS
+
fi
eval ac_res=\$$3
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
printf "%s\n" "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-} # ac_fn_c_check_decl
+} # ac_fn_check_decl
# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
# -------------------------------------------
@@ -2019,7 +2020,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by tcl $as_me 8.7, which was
-generated by GNU Autoconf 2.70. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3650,7 +3651,10 @@ else
CFLAGS=
fi
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
@@ -3674,28 +3678,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c11" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c11" != xno
+
+if test "x$ac_cv_prog_cc_c11" = xno
then :
- ac_prog_cc_stdc=c11
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
@@ -3706,9 +3710,9 @@ else $as_nop
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-$ac_c_conftest_c89_program
+$ac_c_conftest_c99_program
_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
@@ -3720,28 +3724,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c99" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c99" != xno
+
+if test "x$ac_cv_prog_cc_c99" = xno
then :
- ac_prog_cc_stdc=c99
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
@@ -3754,8 +3758,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
@@ -3767,34 +3770,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c89" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno
+
+if test "x$ac_cv_prog_cc_c89" = xno
then :
- ac_prog_cc_stdc=c89
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
else $as_nop
- ac_prog_cc_stdc=no
- ac_cv_prog_cc_stdc=no
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
fi
-
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
fi
-
fi
ac_ext=c
@@ -4412,22 +4406,18 @@ printf "%s\n" "#define TCL_CFGVAL_ENCODING \"utf-8\"" >>confdefs.h
# Look for libraries that we will need when compiling the Tcl shell
#--------------------------------------------------------------------
-# The Clang compiler raises a warning for an undeclared identifier that matches
-# a compiler builtin function. All extant Clang versions are affected, as of
-# Clang 3.6.0. Test a builtin known to every version. This problem affects the
-# C and Objective C languages, but Clang does report an error under C++ and
-# Objective C++.
-#
-# Passing -fno-builtin to the compiler would suppress this problem. That
-# strategy would have the advantage of being insensitive to stray warnings, but
-# it would make tests less realistic.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how $CC reports undeclared, standard C functions" >&5
-printf %s "checking how $CC reports undeclared, standard C functions... " >&6; }
-if test ${ac_cv_c_decl_report+y}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
else $as_nop
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ ac_save_CFLAGS=$CFLAGS
+ ac_cv_c_undeclared_builtin_options='cannot detect'
+ for ac_arg in '' -fno-builtin; do
+ CFLAGS="$ac_save_CFLAGS $ac_arg"
+ # This test program should *not* compile successfully.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
@@ -4440,29 +4430,26 @@ main (void)
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
- if test -s conftest.err
-then :
- # For AC_CHECK_DECL to react to warnings, the compiler must be silent on
- # valid AC_CHECK_DECL input. No library function is consistently available
- # on freestanding implementations, so test against a dummy declaration.
- # Include always-available headers on the off chance that they somehow
- # elicit warnings.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+
+else $as_nop
+ # This test program should compile successfully.
+ # No library function is consistently available on
+ # freestanding implementations, so test against a dummy
+ # declaration. Include always-available headers on the
+ # off chance that they somehow elicit warnings.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <float.h>
#include <limits.h>
#include <stdarg.h>
#include <stddef.h>
extern void ac_decl (int, char *);
+
int
main (void)
{
-#ifdef __cplusplus
- (void) ac_decl ((int) 0, (char *) 0);
- (void) ac_decl;
-#else
+(void) ac_decl (0, (char *) 0);
(void) ac_decl;
-#endif
;
return 0;
@@ -4470,39 +4457,33 @@ main (void)
_ACEOF
if ac_fn_c_try_compile "$LINENO"
then :
- if test -s conftest.err
+ if test x"$ac_arg" = x
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot detect from compiler exit status or warnings
-See \`config.log' for more details" "$LINENO" 5; }
+ ac_cv_c_undeclared_builtin_options='none needed'
else $as_nop
- ac_cv_c_decl_report=warning
+ ac_cv_c_undeclared_builtin_options=$ac_arg
fi
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compile a simple declaration test
-See \`config.log' for more details" "$LINENO" 5; }
+ break
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-else $as_nop
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "compiler does not report undeclared identifiers
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-else $as_nop
- ac_cv_c_decl_report=error
fi
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_decl_report" >&5
-printf "%s\n" "$ac_cv_c_decl_report" >&6; }
+ done
+ CFLAGS=$ac_save_CFLAGS
-case $ac_cv_c_decl_report in
- warning) ac_c_decl_warn_flag=yes ;;
- *) ac_c_decl_warn_flag= ;;
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+ case $ac_cv_c_undeclared_builtin_options in #(
+ 'cannot detect') :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+ 'none needed') :
+ ac_c_undeclared_builtin_options='' ;; #(
+ *) :
+ ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac
@@ -4975,15 +4956,14 @@ fi
LIBS=$ac_saved_libs
# TIP #509
- ac_fn_c_check_decl "$LINENO" "PTHREAD_MUTEX_RECURSIVE" "ac_cv_have_decl_PTHREAD_MUTEX_RECURSIVE" "#include <pthread.h>
-"
+ ac_fn_check_decl "$LINENO" "PTHREAD_MUTEX_RECURSIVE" "ac_cv_have_decl_PTHREAD_MUTEX_RECURSIVE" "#include <pthread.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_PTHREAD_MUTEX_RECURSIVE" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
-
printf "%s\n" "#define HAVE_DECL_PTHREAD_MUTEX_RECURSIVE $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
@@ -8796,15 +8776,14 @@ printf "%s\n" "#define HAVE_MTSAFE_GETHOSTBYADDR 1" >>confdefs.h
else
# Avoids picking hidden internal symbol from libc
- ac_fn_c_check_decl "$LINENO" "gethostbyname_r" "ac_cv_have_decl_gethostbyname_r" "#include <netdb.h>
-"
+ ac_fn_check_decl "$LINENO" "gethostbyname_r" "ac_cv_have_decl_gethostbyname_r" "#include <netdb.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_gethostbyname_r" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
-
printf "%s\n" "#define HAVE_DECL_GETHOSTBYNAME_R $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
@@ -8965,15 +8944,14 @@ fi
# Avoids picking hidden internal symbol from libc
- ac_fn_c_check_decl "$LINENO" "gethostbyaddr_r" "ac_cv_have_decl_gethostbyaddr_r" "#include <netdb.h>
-"
+ ac_fn_check_decl "$LINENO" "gethostbyaddr_r" "ac_cv_have_decl_gethostbyaddr_r" "#include <netdb.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
if test "x$ac_cv_have_decl_gethostbyaddr_r" = xyes
then :
ac_have_decl=1
else $as_nop
ac_have_decl=0
fi
-
printf "%s\n" "#define HAVE_DECL_GETHOSTBYADDR_R $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
@@ -9205,6 +9183,41 @@ printf "%s\n" "#define NO_FD_SET 1" >>confdefs.h
fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pselect" >&5
+printf %s "checking for pselect... " >&6; }
+if test ${tcl_cv_func_pselect+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main (void)
+{
+void *func = pselect;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ tcl_cv_func_pselect=yes
+else $as_nop
+ tcl_cv_func_pselect=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tcl_cv_func_pselect" >&5
+printf "%s\n" "$tcl_cv_func_pselect" >&6; }
+tcl_ok=$tcl_cv_func_pselect
+if test $tcl_ok = yes; then
+
+printf "%s\n" "#define HAVE_PSELECT 1" >>confdefs.h
+
+fi
+
#------------------------------------------------------------------------
# Options for the notifier. Checks for epoll(7) on Linux, and
# kqueue(2) on {DragonFly,Free,Net,Open}BSD
@@ -11849,7 +11862,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by tcl $as_me 8.7, which was
-generated by GNU Autoconf 2.70. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -11908,10 +11921,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
tcl config.status 8.7
-configured by $0, generated by GNU Autoconf 2.70,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
diff --git a/unix/configure.ac b/unix/configure.ac
index 485f13d..b824ede 100644
--- a/unix/configure.ac
+++ b/unix/configure.ac
@@ -318,6 +318,13 @@ if test $tcl_ok = no; then
AC_DEFINE(NO_FD_SET, 1, [Do we have fd_set?])
fi
+AC_CACHE_CHECK([for pselect], tcl_cv_func_pselect, [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>]], [[void *func = pselect;]])],[tcl_cv_func_pselect=yes],[tcl_cv_func_pselect=no])])
+tcl_ok=$tcl_cv_func_pselect
+if test $tcl_ok = yes; then
+ AC_DEFINE(HAVE_PSELECT, 1, [Should we use pselect()?])
+fi
+
#------------------------------------------------------------------------
# Options for the notifier. Checks for epoll(7) on Linux, and
# kqueue(2) on {DragonFly,Free,Net,Open}BSD
diff --git a/unix/tclConfig.h.in b/unix/tclConfig.h.in
index 0bf3c3d..d7f51bf 100644
--- a/unix/tclConfig.h.in
+++ b/unix/tclConfig.h.in
@@ -190,6 +190,9 @@
/* Define to 1 if you have the `pthread_attr_setstacksize' function. */
#undef HAVE_PTHREAD_ATTR_SETSTACKSIZE
+/* Define to 1 if you have the `pselect' function */
+#undef HAVE_PSELECT
+
/* Does putenv() copy strings or incorporate them by reference? */
#undef HAVE_PUTENV_THAT_COPIES
diff --git a/unix/tclEpollNotfy.c b/unix/tclEpollNotfy.c
index 287dfe2..649c21b 100644
--- a/unix/tclEpollNotfy.c
+++ b/unix/tclEpollNotfy.c
@@ -111,6 +111,7 @@ typedef struct ThreadSpecificData {
/* Pointer to at most maxReadyEvents events
* returned by epoll_wait(2). */
size_t maxReadyEvents; /* Count of epoll_events in readyEvents. */
+ int asyncPending; /* True when signal triggered thread. */
} ThreadSpecificData;
static Tcl_ThreadDataKey dataKey;
@@ -196,7 +197,7 @@ PlatformEventsControl(
{
struct epoll_event newEvent;
struct PlatformEventData *newPedPtr;
- struct stat fdStat;
+ Tcl_StatBuf fdStat;
newEvent.events = 0;
if (filePtr->mask & (TCL_READABLE | TCL_EXCEPTION)) {
@@ -221,7 +222,7 @@ PlatformEventsControl(
* files belonging to tsdPtr.
*/
- if (fstat(filePtr->fd, &fdStat) == -1) {
+ if (TclOSfstat(filePtr->fd, &fdStat) == -1) {
Tcl_Panic("fstat: %s", strerror(errno));
}
@@ -478,6 +479,10 @@ PlatformEventsWait(
timePtr->tv_usec = 0;
}
}
+ if (tsdPtr->asyncPending) {
+ tsdPtr->asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
return numFound;
}
@@ -765,6 +770,66 @@ TclpWaitForEvent(
return 0;
}
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclAsyncNotifier --
+ *
+ * This procedure sets the async mark of an async handler to a
+ * given value, if it is called from the target thread.
+ *
+ * Result:
+ * True, when the handler will be marked, false otherwise.
+ *
+ * Side effects:
+ * The signal may be resent to the target thread.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclAsyncNotifier(
+ int sigNumber, /* Signal number. */
+ Tcl_ThreadId threadId, /* Target thread. */
+ ClientData clientData, /* Notifier data. */
+ int *flagPtr, /* Flag to mark. */
+ int value) /* Value of mark. */
+{
+#if TCL_THREADS
+ /*
+ * WARNING:
+ * This code most likely runs in a signal handler. Thus,
+ * only few async-signal-safe system calls are allowed,
+ * e.g. pthread_self(), sem_post(), write().
+ */
+
+ if (pthread_equal(pthread_self(), (pthread_t) threadId)) {
+ ThreadSpecificData *tsdPtr = (ThreadSpecificData *) clientData;
+
+ *flagPtr = value;
+ if (tsdPtr != NULL && !tsdPtr->asyncPending) {
+ tsdPtr->asyncPending = 1;
+ TclpAlertNotifier(tsdPtr);
+ return 1;
+ }
+ return 0;
+ }
+
+ /*
+ * Re-send the signal to the proper target thread.
+ */
+
+ pthread_kill((pthread_t) threadId, sigNumber);
+#else
+ (void)sigNumber;
+ (void)threadId;
+ (void)clientData;
+ (void)flagPtr;
+ (void)value;
+#endif
+ return 0;
+}
+
#endif /* NOTIFIER_EPOLL && TCL_THREADS */
#else
TCL_MAC_EMPTY_FILE(unix_tclEpollNotfy_c)
diff --git a/unix/tclKqueueNotfy.c b/unix/tclKqueueNotfy.c
index 6606c8c..2f495bd 100644
--- a/unix/tclKqueueNotfy.c
+++ b/unix/tclKqueueNotfy.c
@@ -102,6 +102,7 @@ typedef struct ThreadSpecificData {
struct kevent *readyEvents; /* Pointer to at most maxReadyEvents events
* returned by kevent(2). */
size_t maxReadyEvents; /* Count of kevents in readyEvents. */
+ int asyncPending; /* True when signal triggered thread. */
} ThreadSpecificData;
static Tcl_ThreadDataKey dataKey;
@@ -162,14 +163,14 @@ PlatformEventsControl(
int numChanges;
struct kevent changeList[2];
struct PlatformEventData *newPedPtr;
- struct stat fdStat;
+ Tcl_StatBuf fdStat;
if (isNew) {
- newPedPtr = (struct PlatformEventData *)
+ newPedPtr = (struct PlatformEventData *)
ckalloc(sizeof(struct PlatformEventData));
- newPedPtr->filePtr = filePtr;
- newPedPtr->tsdPtr = tsdPtr;
- filePtr->pedPtr = newPedPtr;
+ newPedPtr->filePtr = filePtr;
+ newPedPtr->tsdPtr = tsdPtr;
+ filePtr->pedPtr = newPedPtr;
}
/*
@@ -180,7 +181,7 @@ PlatformEventsControl(
* with regular files belonging to tsdPtr.
*/
- if (fstat(filePtr->fd, &fdStat) == -1) {
+ if (TclOSfstat(filePtr->fd, &fdStat) == -1) {
Tcl_Panic("fstat: %s", strerror(errno));
} else if ((fdStat.st_mode & S_IFMT) == S_IFREG
|| (fdStat.st_mode & S_IFMT) == S_IFDIR
@@ -213,7 +214,7 @@ PlatformEventsControl(
EVFILT_WRITE, op, 0, 0, filePtr->pedPtr);
numChanges++;
}
- if (numChanges) {
+ if (numChanges) {
if (kevent(tsdPtr->eventsFd, changeList, numChanges, NULL, 0,
NULL) == -1) {
Tcl_Panic("kevent: %s", strerror(errno));
@@ -363,7 +364,7 @@ TclpInitNotifier(void)
filePtr->mask = TCL_READABLE;
PlatformEventsControl(filePtr, tsdPtr, EV_ADD, 1);
if (!tsdPtr->readyEvents) {
- tsdPtr->maxReadyEvents = 512;
+ tsdPtr->maxReadyEvents = 512;
tsdPtr->readyEvents = (struct kevent *) ckalloc(
tsdPtr->maxReadyEvents * sizeof(tsdPtr->readyEvents[0]));
}
@@ -483,6 +484,10 @@ PlatformEventsWait(
timePtr->tv_usec = 0;
}
}
+ if (tsdPtr->asyncPending) {
+ tsdPtr->asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
return numFound;
}
@@ -761,6 +766,66 @@ TclpWaitForEvent(
return 0;
}
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclAsyncNotifier --
+ *
+ * This procedure sets the async mark of an async handler to a
+ * given value, if it is called from the target thread.
+ *
+ * Result:
+ * True, when the handler will be marked, false otherwise.
+ *
+ * Side effects:
+ * The signal may be resent to the target thread.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclAsyncNotifier(
+ int sigNumber, /* Signal number. */
+ Tcl_ThreadId threadId, /* Target thread. */
+ ClientData clientData, /* Notifier data. */
+ int *flagPtr, /* Flag to mark. */
+ int value) /* Value of mark. */
+{
+#if TCL_THREADS
+ /*
+ * WARNING:
+ * This code most likely runs in a signal handler. Thus,
+ * only few async-signal-safe system calls are allowed,
+ * e.g. pthread_self(), sem_post(), write().
+ */
+
+ if (pthread_equal(pthread_self(), (pthread_t) threadId)) {
+ ThreadSpecificData *tsdPtr = (ThreadSpecificData *) clientData;
+
+ *flagPtr = value;
+ if (tsdPtr != NULL && !tsdPtr->asyncPending) {
+ tsdPtr->asyncPending = 1;
+ TclpAlertNotifier(tsdPtr);
+ return 1;
+ }
+ return 0;
+ }
+
+ /*
+ * Re-send the signal to the proper target thread.
+ */
+
+ pthread_kill((pthread_t) threadId, sigNumber);
+#else
+ (void)sigNumber;
+ (void)threadId;
+ (void)clientData;
+ (void)flagPtr;
+ (void)value;
+#endif
+ return 0;
+}
+
#endif /* NOTIFIER_KQUEUE && TCL_THREADS */
#else
TCL_MAC_EMPTY_FILE(unix_tclKqueueNotfy_c)
diff --git a/unix/tclSelectNotfy.c b/unix/tclSelectNotfy.c
index 82f2ef7..732e4c9 100644
--- a/unix/tclSelectNotfy.c
+++ b/unix/tclSelectNotfy.c
@@ -148,6 +148,7 @@ static ThreadSpecificData *waitingListPtr = NULL;
*/
static int triggerPipe = -1;
+static int otherPipe = -1;
/*
* The notifierMutex locks access to all of the global notifier state.
@@ -164,9 +165,15 @@ static pthread_mutex_t notifierMutex = PTHREAD_MUTEX_INITIALIZER;
static int notifierThreadRunning = 0;
/*
+ * The following static flag indicates that async handlers are pending.
+ */
+
+static int asyncPending = 0;
+
+/*
* The notifier thread signals the notifierCV when it has finished
* initializing the triggerPipe and right before the notifier thread
- * terminates.
+ * terminates. This condition is used to deal with the signal mask, too.
*/
static pthread_cond_t notifierCV = PTHREAD_COND_INITIALIZER;
@@ -190,6 +197,16 @@ static pthread_cond_t notifierCV = PTHREAD_COND_INITIALIZER;
*/
static Tcl_ThreadId notifierThread;
+
+/*
+ * Signal mask information for notifier thread.
+ */
+
+static sigset_t notifierSigMask;
+#ifndef HAVE_PSELECT
+static sigset_t allSigMask;
+#endif /* HAVE_PSELECT */
+
#endif /* TCL_THREADS */
/*
@@ -264,9 +281,11 @@ extern unsigned char __stdcall TranslateMessage(const MSG *);
* Threaded-cygwin specific constants and functions in this file:
*/
+#if TCL_THREADS && defined(__CYGWIN__)
static const wchar_t className[] = L"TclNotifier";
static unsigned int __stdcall NotifierProc(void *hwnd, unsigned int message,
void *wParam, void *lParam);
+#endif /* TCL_THREADS && defined(__CYGWIN__) */
#ifdef __cplusplus
}
#endif
@@ -409,6 +428,14 @@ TclpFinalizeNotifier(
"unable to join notifier thread");
}
notifierThreadRunning = 0;
+
+ /*
+ * If async marks are outstanding, perform actions now.
+ */
+ if (asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
}
}
@@ -571,7 +598,7 @@ TclpDeleteFileHandler(
ckfree(filePtr);
}
-#if defined(__CYGWIN__)
+#if TCL_THREADS && defined(__CYGWIN__)
static unsigned int __stdcall
NotifierProc(
@@ -875,6 +902,65 @@ TclpWaitForEvent(
/*
*----------------------------------------------------------------------
*
+ * TclAsyncNotifier --
+ *
+ * This procedure sets the async mark of an async handler to a
+ * given value, if it is called from the notifier thread.
+ *
+ * Result:
+ * True, when the handler will be marked, false otherwise.
+ *
+ * Side effetcs:
+ * The trigger pipe is written when called from the notifier
+ * thread.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+TclAsyncNotifier(
+ int sigNumber, /* Signal number. */
+ TCL_UNUSED(Tcl_ThreadId), /* Target thread. */
+ TCL_UNUSED(ClientData), /* Notifier data. */
+ int *flagPtr, /* Flag to mark. */
+ int value) /* Value of mark. */
+{
+#if TCL_THREADS
+ /*
+ * WARNING:
+ * This code most likely runs in a signal handler. Thus,
+ * only few async-signal-safe system calls are allowed,
+ * e.g. pthread_self(), sem_post(), write().
+ */
+
+ if (pthread_equal(pthread_self(), (pthread_t) notifierThread)) {
+ if (notifierThreadRunning) {
+ *flagPtr = value;
+ if (!asyncPending) {
+ asyncPending = 1;
+ write(triggerPipe, "S", 1);
+ }
+ return 1;
+ }
+ return 0;
+ }
+
+ /*
+ * Re-send the signal to the notifier thread.
+ */
+
+ pthread_kill((pthread_t) notifierThread, sigNumber);
+#else
+ (void)sigNumber;
+ (void)flagPtr;
+ (void)value;
+#endif
+ return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* NotifierThreadProc --
*
* This routine is the initial (and only) function executed by the
@@ -906,8 +992,7 @@ NotifierThreadProc(
fd_set readableMask;
fd_set writableMask;
fd_set exceptionMask;
- int i;
- int fds[2], receivePipe;
+ int i, fds[2], receivePipe, ret;
long found;
struct timeval poll = {0, 0}, *timePtr;
char buf[2];
@@ -917,6 +1002,14 @@ NotifierThreadProc(
Tcl_Panic("NotifierThreadProc: %s", "could not create trigger pipe");
}
+ /*
+ * Ticket [c6897e6e6a].
+ */
+
+ if (fds[0] >= FD_SETSIZE || fds[1] >= FD_SETSIZE) {
+ Tcl_Panic("NotifierThreadProc: %s", "too many open files");
+ }
+
receivePipe = fds[0];
if (TclUnixSetBlockingMode(receivePipe, TCL_MODE_NONBLOCKING) < 0) {
@@ -942,6 +1035,7 @@ NotifierThreadProc(
pthread_mutex_lock(&notifierMutex);
triggerPipe = fds[1];
+ otherPipe = fds[0];
/*
* Signal any threads that are waiting.
@@ -1002,12 +1096,44 @@ NotifierThreadProc(
}
FD_SET(receivePipe, &readableMask);
- if (select(numFdBits, &readableMask, &writableMask, &exceptionMask,
- timePtr) == -1) {
+ /*
+ * Signals are unblocked only during select().
+ */
+
+#ifdef HAVE_PSELECT
+ {
+ struct timespec tspec, *tspecPtr;
+
+ if (timePtr == NULL) {
+ tspecPtr = NULL;
+ } else {
+ tspecPtr = &tspec;
+ tspecPtr->tv_sec = timePtr->tv_sec;
+ tspecPtr->tv_nsec = timePtr->tv_usec * 1000;
+ }
+ ret = pselect(numFdBits, &readableMask, &writableMask,
+ &exceptionMask, tspecPtr, &notifierSigMask);
+ }
+#else
+ pthread_sigmask(SIG_SETMASK, &notifierSigMask, NULL);
+ ret = select(numFdBits, &readableMask, &writableMask, &exceptionMask,
+ timePtr);
+ pthread_sigmask(SIG_BLOCK, &allSigMask, NULL);
+#endif
+
+ if (ret == -1) {
/*
- * Try again immediately on an error.
+ * In case a signal was caught during select(),
+ * perform work on async handlers now.
*/
+ if (errno == EINTR && asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
+ /*
+ * Try again immediately on select() error.
+ */
continue;
}
@@ -1063,6 +1189,12 @@ NotifierThreadProc(
break;
}
} while (1);
+
+ if (asyncPending) {
+ asyncPending = 0;
+ TclAsyncMarkFromNotifier();
+ }
+
if ((i == 0) || (buf[0] == 'q')) {
break;
}
@@ -1076,6 +1208,7 @@ NotifierThreadProc(
close(receivePipe);
pthread_mutex_lock(&notifierMutex);
triggerPipe = -1;
+ otherPipe = -1;
pthread_cond_broadcast(&notifierCV);
pthread_mutex_unlock(&notifierMutex);
diff --git a/unix/tclUnixFCmd.c b/unix/tclUnixFCmd.c
index 9e9a493..9f7a2ba 100644
--- a/unix/tclUnixFCmd.c
+++ b/unix/tclUnixFCmd.c
@@ -2239,17 +2239,17 @@ static const char *
DefaultTempDir(void)
{
const char *dir;
- struct stat buf;
+ Tcl_StatBuf buf;
dir = getenv("TMPDIR");
- if (dir && dir[0] && stat(dir, &buf) == 0 && S_ISDIR(buf.st_mode)
+ if (dir && dir[0] && TclOSstat(dir, &buf) == 0 && S_ISDIR(buf.st_mode)
&& access(dir, W_OK) == 0) {
return dir;
}
#ifdef P_tmpdir
dir = P_tmpdir;
- if (stat(dir, &buf)==0 && S_ISDIR(buf.st_mode) && access(dir, W_OK)==0) {
+ if (TclOSstat(dir, &buf)==0 && S_ISDIR(buf.st_mode) && access(dir, W_OK)==0) {
return dir;
}
#endif
diff --git a/unix/tclUnixFile.c b/unix/tclUnixFile.c
index 1ab5d14..998614d 100644
--- a/unix/tclUnixFile.c
+++ b/unix/tclUnixFile.c
@@ -41,10 +41,10 @@ TclpFindExecutable(
{
Tcl_Encoding encoding;
int length;
- wchar_t buf[PATH_MAX];
+ wchar_t buf[PATH_MAX] = L"";
char name[PATH_MAX * 3 + 1];
- GetModuleFileNameW(NULL, buf, sizeof(buf)/sizeof(wchar_t));
+ GetModuleFileNameW(NULL, buf, PATH_MAX);
cygwin_conv_path(3, buf, name, sizeof(name));
length = strlen(name);
if ((length > 4) && !strcasecmp(name + length - 4, ".exe")) {
@@ -1198,6 +1198,29 @@ TclpUtime(
#ifdef __CYGWIN__
int
+TclOSfstat(
+ int fd,
+ void *cygstat)
+{
+ struct stat buf;
+ Tcl_StatBuf *statBuf = (Tcl_StatBuf *)cygstat;
+ int result = fstat(fd, &buf);
+
+ statBuf->st_mode = buf.st_mode;
+ statBuf->st_ino = buf.st_ino;
+ statBuf->st_dev = buf.st_dev;
+ statBuf->st_rdev = buf.st_rdev;
+ statBuf->st_nlink = buf.st_nlink;
+ statBuf->st_uid = buf.st_uid;
+ statBuf->st_gid = buf.st_gid;
+ statBuf->st_size = buf.st_size;
+ statBuf->st_atime = buf.st_atime;
+ statBuf->st_mtime = buf.st_mtime;
+ statBuf->st_ctime = buf.st_ctime;
+ return result;
+}
+
+int
TclOSstat(
const char *name,
void *cygstat)
diff --git a/unix/tclUnixNotfy.c b/unix/tclUnixNotfy.c
index c1f00d5..943e7d7 100644
--- a/unix/tclUnixNotfy.c
+++ b/unix/tclUnixNotfy.c
@@ -105,7 +105,7 @@ StartNotifierThread(
void
TclpAlertNotifier(
- ClientData clientData)
+ void *clientData)
{
#ifdef NOTIFIER_SELECT
#if TCL_THREADS
@@ -120,6 +120,8 @@ TclpAlertNotifier(
pthread_cond_broadcast(&tsdPtr->waitCV);
# endif /* __CYGWIN__ */
pthread_mutex_unlock(&notifierMutex);
+#else
+ (void)clientData;
#endif /* TCL_THREADS */
#else /* !NOTIFIER_SELECT */
ThreadSpecificData *tsdPtr = (ThreadSpecificData *) clientData;
@@ -350,24 +352,24 @@ AlertSingleThread(
{
tsdPtr->eventReady = 1;
if (tsdPtr->onList) {
- /*
- * Remove the ThreadSpecificData structure of this thread from the
- * waiting list. This prevents us from continuously spinning on
- * epoll_wait until the other threads runs and services the file
- * event.
- */
-
- if (tsdPtr->prevPtr) {
+ /*
+ * Remove the ThreadSpecificData structure of this thread from the
+ * waiting list. This prevents us from continuously spinning on
+ * epoll_wait until the other threads runs and services the file
+ * event.
+ */
+
+ if (tsdPtr->prevPtr) {
tsdPtr->prevPtr->nextPtr = tsdPtr->nextPtr;
- } else {
+ } else {
waitingListPtr = tsdPtr->nextPtr;
- }
- if (tsdPtr->nextPtr) {
+ }
+ if (tsdPtr->nextPtr) {
tsdPtr->nextPtr->prevPtr = tsdPtr->prevPtr;
- }
- tsdPtr->nextPtr = tsdPtr->prevPtr = NULL;
- tsdPtr->onList = 0;
- tsdPtr->pollState = 0;
+ }
+ tsdPtr->nextPtr = tsdPtr->prevPtr = NULL;
+ tsdPtr->onList = 0;
+ tsdPtr->pollState = 0;
}
#ifdef __CYGWIN__
PostMessageW(tsdPtr->hwnd, 1024, 0, 0);
@@ -403,6 +405,10 @@ AtForkChild(void)
pthread_mutex_init(&notifierMutex, NULL);
pthread_cond_init(&notifierCV, NULL);
+#ifdef NOTIFIER_SELECT
+ asyncPending = 0;
+#endif
+
/*
* notifierThreadRunning == 1: thread is running, (there might be data in
* notifier lists)
@@ -420,6 +426,10 @@ AtForkChild(void)
close(triggerPipe);
triggerPipe = -1;
+#ifdef NOTIFIER_SELECT
+ close(otherPipe);
+ otherPipe = -1;
+#endif
/*
* The waitingListPtr might contain event info from multiple
* threads, which are invalid here, so setting it to NULL is not
@@ -456,6 +466,14 @@ AtForkChild(void)
}
Tcl_InitNotifier();
+
+#ifdef NOTIFIER_SELECT
+ /*
+ * Restart the notifier thread for signal handling.
+ */
+
+ StartNotifierThread("AtForkChild");
+#endif
}
#endif /* HAVE_PTHREAD_ATFORK */
#endif /* TCL_THREADS */
@@ -464,6 +482,36 @@ AtForkChild(void)
/*
*----------------------------------------------------------------------
*
+ * TclpNotifierData --
+ *
+ * This function returns a ClientData pointer to be associated
+ * with a Tcl_AsyncHandler.
+ *
+ * Results:
+ * For the epoll and kqueue notifiers, this function returns the
+ * thread specific data. Otherwise NULL.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ClientData
+TclpNotifierData(void)
+{
+#if defined(NOTIFIER_EPOLL) || defined(NOTIFIER_KQUEUE)
+ ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);
+
+ return (ClientData) tsdPtr;
+#else
+ return NULL;
+#endif
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* TclUnixWaitForFile --
*
* This function waits synchronously for a file to become readable or
diff --git a/unix/tclUnixPort.h b/unix/tclUnixPort.h
index ece0202..791c2a3 100644
--- a/unix/tclUnixPort.h
+++ b/unix/tclUnixPort.h
@@ -120,15 +120,18 @@ extern "C" {
#pragma clang diagnostic pop
#endif
# define timezone _timezone
+ extern int TclOSfstat(int fd, void *statBuf);
extern int TclOSstat(const char *name, void *statBuf);
extern int TclOSlstat(const char *name, void *statBuf);
#ifdef __cplusplus
}
#endif
#elif defined(HAVE_STRUCT_STAT64) && !defined(__APPLE__)
+# define TclOSfstat(fd, buf) fstat64(fd, (struct stat64 *)buf)
# define TclOSstat(name, buf) stat64(name, (struct stat64 *)buf)
# define TclOSlstat(name,buf) lstat64(name, (struct stat64 *)buf)
#else
+# define TclOSfstat(fd, buf) fstat(fd, (struct stat *)buf)
# define TclOSstat(name, buf) stat(name, (struct stat *)buf)
# define TclOSlstat(name, buf) lstat(name, (struct stat *)buf)
#endif
diff --git a/unix/tclUnixThrd.c b/unix/tclUnixThrd.c
index 8a16d0b..aa5926e 100644
--- a/unix/tclUnixThrd.c
+++ b/unix/tclUnixThrd.c
@@ -277,6 +277,11 @@ TclpThreadCreate(
pthread_attr_destroy(&attr);
return result;
#else
+ (void)idPtr;
+ (void)proc;
+ (void)clientData;
+ (void)stackSize;
+ (void)flags;
return TCL_ERROR;
#endif /* TCL_THREADS */
}
@@ -314,6 +319,9 @@ Tcl_JoinThread(
}
return (result == 0) ? TCL_OK : TCL_ERROR;
#else
+ (void)threadId;
+ (void)state;
+
return TCL_ERROR;
#endif
}
diff --git a/win/configure b/win/configure
index fead87c..54ce90b 100755
--- a/win/configure
+++ b/win/configure
@@ -1,9 +1,10 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.70 for tcl 8.7.
+# Generated by GNU Autoconf 2.71 for tcl 8.7.
#
#
-# Copyright (C) 1992-1996, 1998-2017, 2020 Free Software Foundation, Inc.
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
#
#
# This configure script is free software; the Free Software Foundation
@@ -1532,9 +1533,9 @@ test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
tcl configure 8.7
-generated by GNU Autoconf 2.70
+generated by GNU Autoconf 2.71
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -1736,7 +1737,7 @@ This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by tcl $as_me 8.7, which was
-generated by GNU Autoconf 2.70. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3295,7 +3296,10 @@ else
CFLAGS=
fi
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
@@ -3319,28 +3323,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c11" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c11"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c11" != xno
+
+if test "x$ac_cv_prog_cc_c11" = xno
then :
- ac_prog_cc_stdc=c11
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
@@ -3351,9 +3355,9 @@ else $as_nop
ac_save_CC=$CC
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-$ac_c_conftest_c89_program
+$ac_c_conftest_c99_program
_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc1x -qlanglvl=extc99
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
@@ -3365,28 +3369,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c99" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c99"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c99" != xno
+
+if test "x$ac_cv_prog_cc_c99" = xno
then :
- ac_prog_cc_stdc=c99
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
@@ -3399,8 +3403,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
$ac_c_conftest_c89_program
_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
@@ -3412,34 +3415,25 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam
done
rm -f conftest.$ac_ext
CC=$ac_save_CC
-
fi
-# AC_CACHE_VAL
-ac_prog_cc_stdc_options=
-case "x$ac_cv_prog_cc_c89" in #(
- x) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; } ;; #(
- xno) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; } ;; #(
- *) :
- ac_prog_cc_stdc_options=" $ac_cv_prog_cc_c89"
- CC="$CC$ac_prog_cc_stdc_options"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno
+
+if test "x$ac_cv_prog_cc_c89" = xno
then :
- ac_prog_cc_stdc=c89
- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
else $as_nop
- ac_prog_cc_stdc=no
- ac_cv_prog_cc_stdc=no
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
fi
-
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
fi
-
fi
ac_ext=c
@@ -6451,7 +6445,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# values after options handling.
ac_log="
This file was extended by tcl $as_me 8.7, which was
-generated by GNU Autoconf 2.70. Invocation command line was
+generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -6506,10 +6500,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
tcl config.status 8.7
-configured by $0, generated by GNU Autoconf 2.70,
+configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2020 Free Software Foundation, Inc.
+Copyright (C) 2021 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
diff --git a/win/rules.vc b/win/rules.vc
index c24fce3..8a91b58 100644
--- a/win/rules.vc
+++ b/win/rules.vc
@@ -1344,7 +1344,7 @@ INCLUDE_INSTALL_DIR = $(_INSTALLDIR)\..\include
# baselibs - minimum Windows libraries required. Parent makefile can
# define PRJ_LIBS before including rules.rc if additional libs are needed
-OPTDEFINES = /DSTDC_HEADERS
+OPTDEFINES = /DSTDC_HEADERS /DUSE_NMAKE=1
!if $(VCVERSION) > 1600
OPTDEFINES = $(OPTDEFINES) /DHAVE_STDINT_H=1
!else
diff --git a/win/tclWinLoad.c b/win/tclWinLoad.c
index 0f664f0..e262595 100644
--- a/win/tclWinLoad.c
+++ b/win/tclWinLoad.c
@@ -20,7 +20,9 @@
*/
static WCHAR *dllDirectoryName = NULL;
+#if TCL_THREADS
static Tcl_Mutex dllDirectoryNameMutex;
+#endif
/*
* Static functions defined within this file.
diff --git a/win/tclWinNotify.c b/win/tclWinNotify.c
index 068675c..fd39428 100644
--- a/win/tclWinNotify.c
+++ b/win/tclWinNotify.c
@@ -353,6 +353,32 @@ TclpServiceModeHook(
/*
*----------------------------------------------------------------------
*
+ * TclAsyncNotifier --
+ *
+ * This procedure is a no-op on Windows.
+ *
+ * Result:
+ * Always true.
+ *
+ * Side effetcs:
+ * None.
+ *----------------------------------------------------------------------
+ */
+
+int
+TclAsyncNotifier(
+ TCL_UNUSED(int), /* Signal number. */
+ TCL_UNUSED(Tcl_ThreadId), /* Target thread. */
+ TCL_UNUSED(void *), /* Notifier data. */
+ TCL_UNUSED(int *), /* Flag to mark. */
+ TCL_UNUSED(int)) /* Value of mark. */
+{
+ return 0;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* NotifierProc --
*
* This procedure is invoked by Windows to process events on the notifier
@@ -396,6 +422,29 @@ NotifierProc(
/*
*----------------------------------------------------------------------
*
+ * TclpNotifierData --
+ *
+ * This function returns a ClientData pointer to be associated
+ * with a Tcl_AsyncHandler.
+ *
+ * Results:
+ * On Windows, returns always NULL.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+ClientData
+TclpNotifierData(void)
+{
+ return NULL;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* TclpWaitForEvent --
*
* This function is called by Tcl_DoOneEvent to wait for new events on
diff --git a/win/tclsh.exe.manifest.in b/win/tclsh.exe.manifest.in
index dd8a7c5..dc652e6 100644
--- a/win/tclsh.exe.manifest.in
+++ b/win/tclsh.exe.manifest.in
@@ -35,6 +35,10 @@
xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
+ <asmv3:windowsSettings
+ xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
+ <activeCodePage>UTF-8</activeCodePage>
+ </asmv3:windowsSettings>
</asmv3:application>
<dependency>
<dependentAssembly>