--- a/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
b6f633a93ae0ec4555ff4bf756f5e2150c9bdede jdk7-b85
c94d9cc81f495d97817eba9d71b84fc45f7661a5 jdk7-b86
b7456c473862048fa70ed8092313a4ef0a55d403 jdk7-b87
+7077b95d42f6b3942a8751bba033801ff50e5889 jdk7-b88
+44158f6d3b94c0fa020e33632532473d92d1ea96 jdk7-b89
--- a/.hgtags-top-repo Sun Apr 11 23:21:23 2010 -0700
+++ b/.hgtags-top-repo Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
cf26288a114be67c39f2758959ce50b60f5ae330 jdk7-b85
433a60a9c0bf1b26ee7e65cebaa89c541f497aed jdk7-b86
6b1069f53fbc30663ccef49d78c31bb7d6967bde jdk7-b87
+82135c848d5fcddb065e98ae77b81077c858f593 jdk7-b88
+7f1ba4459972bf84b8201dc1cc4f62b1fe1c74f4 jdk7-b89
--- a/corba/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/corba/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
c67a9df7bc0ca291f08f9a9cc05cb78ea15d25e6 jdk7-b85
6253e28826d16cf1aecc39ce04c8de1f6bf2df5f jdk7-b86
09a41111a401d327f65e453384d976a10154d9ea jdk7-b87
+39e14d2da687c7e592142137517aaf689544820f jdk7-b88
+bb4424c5e778b842c064a8b1aa902b35f4397654 jdk7-b89
--- a/hotspot/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -86,3 +86,6 @@
bf823ef06b4f211e66988d76a2e2669be5c0820e jdk7-b86
07226e9eab8f74b37346b32715f829a2ef2c3188 hs18-b01
e7e7e36ccdb5d56edd47e5744351202d38f3b7ad jdk7-b87
+4b60f23c42231f7ecd62ad1fcb6a9ca26fa57d1b jdk7-b88
+15836273ac2494f36ef62088bc1cb6f3f011f565 jdk7-b89
+4b60f23c42231f7ecd62ad1fcb6a9ca26fa57d1b hs18-b02
--- a/hotspot/make/hotspot_version Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/make/hotspot_version Tue Apr 20 01:24:48 2010 -0700
@@ -35,7 +35,7 @@
HS_MAJOR_VER=18
HS_MINOR_VER=0
-HS_BUILD_NUMBER=02
+HS_BUILD_NUMBER=03
JDK_MAJOR_VER=1
JDK_MINOR_VER=7
--- a/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1728,9 +1728,13 @@
ShouldNotReachHere();
}
} else if (code == lir_cmp_l2i) {
+#ifdef _LP64
+ __ lcmp(left->as_register_lo(), right->as_register_lo(), dst->as_register());
+#else
__ lcmp(left->as_register_hi(), left->as_register_lo(),
right->as_register_hi(), right->as_register_lo(),
dst->as_register());
+#endif
} else {
ShouldNotReachHere();
}
@@ -2849,7 +2853,7 @@
void LIR_Assembler::align_backward_branch_target() {
- __ align(16);
+ __ align(OptoLoopAlignment);
}
--- a/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/c2_globals_sparc.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -60,9 +60,6 @@
define_pd_global(intx, INTPRESSURE, 48); // large register set
define_pd_global(intx, InteriorEntryAlignment, 16); // = CodeEntryAlignment
define_pd_global(intx, NewSizeThreadIncrease, ScaleForWordSize(4*K));
-// The default setting 16/16 seems to work best.
-// (For _228_jack 16/16 is 2% better than 4/4, 16/4, 32/32, 32/16, or 16/32.)
-define_pd_global(intx, OptoLoopAlignment, 16); // = 4*wordSize
define_pd_global(intx, RegisterCostAreaRatio, 12000);
define_pd_global(bool, UseTLAB, true);
define_pd_global(bool, ResizeTLAB, true);
--- a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -40,6 +40,9 @@
define_pd_global(bool, UncommonNullCast, true); // Uncommon-trap NULLs past to check cast
define_pd_global(intx, CodeEntryAlignment, 32);
+// The default setting 16/16 seems to work best.
+// (For _228_jack 16/16 is 2% better than 4/4, 16/4, 32/32, 32/16, or 16/32.)
+define_pd_global(intx, OptoLoopAlignment, 16); // = 4*wordSize
define_pd_global(intx, InlineFrequencyCount, 50); // we can use more inlining on the SPARC
define_pd_global(intx, InlineSmallCode, 1500);
#ifdef _LP64
--- a/hotspot/src/cpu/sparc/vm/sparc.ad Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/sparc.ad Tue Apr 20 01:24:48 2010 -0700
@@ -471,6 +471,9 @@
source %{
#define __ _masm.
+// Block initializing store
+#define ASI_BLK_INIT_QUAD_LDD_P 0xE2
+
// tertiary op of a LoadP or StoreP encoding
#define REGP_OP true
@@ -6147,6 +6150,7 @@
%}
instruct prefetchw( memory mem ) %{
+ predicate(AllocatePrefetchStyle != 3 );
match( PrefetchWrite mem );
ins_cost(MEMORY_REF_COST);
@@ -6156,6 +6160,23 @@
ins_pipe(iload_mem);
%}
+// Use BIS instruction to prefetch.
+instruct prefetchw_bis( memory mem ) %{
+ predicate(AllocatePrefetchStyle == 3);
+ match( PrefetchWrite mem );
+ ins_cost(MEMORY_REF_COST);
+
+ format %{ "STXA G0,$mem\t! // Block initializing store" %}
+ ins_encode %{
+ Register base = as_Register($mem$$base);
+ int disp = $mem$$disp;
+ if (disp != 0) {
+ __ add(base, AllocatePrefetchStepSize, base);
+ }
+ __ stxa(G0, base, G0, ASI_BLK_INIT_QUAD_LDD_P);
+ %}
+ ins_pipe(istore_mem_reg);
+%}
//----------Store Instructions-------------------------------------------------
// Store Byte
--- a/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/stubGenerator_sparc.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1148,7 +1148,7 @@
__ andn(from, 7, from); // Align address
__ ldx(from, 0, O3);
__ inc(from, 8);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_loop);
__ ldx(from, 0, O4);
__ deccc(count, count_dec); // Can we do next iteration after this one?
@@ -1220,7 +1220,7 @@
//
__ andn(end_from, 7, end_from); // Align address
__ ldx(end_from, 0, O3);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_loop);
__ ldx(end_from, -8, O4);
__ deccc(count, count_dec); // Can we do next iteration after this one?
@@ -1349,7 +1349,7 @@
__ BIND(L_copy_byte);
__ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
__ delayed()->nop();
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_byte_loop);
__ ldub(from, offset, O3);
__ deccc(count);
@@ -1445,7 +1445,7 @@
L_aligned_copy, L_copy_byte);
}
// copy 4 elements (16 bytes) at a time
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_aligned_copy);
__ dec(end_from, 16);
__ ldx(end_from, 8, O3);
@@ -1461,7 +1461,7 @@
__ BIND(L_copy_byte);
__ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
__ delayed()->nop();
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_byte_loop);
__ dec(end_from);
__ dec(end_to);
@@ -1577,7 +1577,7 @@
__ BIND(L_copy_2_bytes);
__ br_zero(Assembler::zero, false, Assembler::pt, count, L_exit);
__ delayed()->nop();
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_2_bytes_loop);
__ lduh(from, offset, O3);
__ deccc(count);
@@ -1684,7 +1684,7 @@
L_aligned_copy, L_copy_2_bytes);
}
// copy 4 elements (16 bytes) at a time
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_aligned_copy);
__ dec(end_from, 16);
__ ldx(end_from, 8, O3);
@@ -1781,7 +1781,7 @@
// copy with shift 4 elements (16 bytes) at a time
__ dec(count, 4); // The cmp at the beginning guaranty count >= 4
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_16_bytes);
__ ldx(from, 4, O4);
__ deccc(count, 4); // Can we do next iteration after this one?
@@ -1907,7 +1907,7 @@
// to form 2 aligned 8-bytes chunks to store.
//
__ ldx(end_from, -4, O3);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_16_bytes);
__ ldx(end_from, -12, O4);
__ deccc(count, 4);
@@ -1929,7 +1929,7 @@
__ delayed()->inc(count, 4);
// copy 4 elements (16 bytes) at a time
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_aligned_copy);
__ dec(end_from, 16);
__ ldx(end_from, 8, O3);
@@ -2000,6 +2000,27 @@
// to: O1
// count: O2 treated as signed
//
+ // count -= 2;
+ // if ( count >= 0 ) { // >= 2 elements
+ // if ( count > 6) { // >= 8 elements
+ // count -= 6; // original count - 8
+ // do {
+ // copy_8_elements;
+ // count -= 8;
+ // } while ( count >= 0 );
+ // count += 6;
+ // }
+ // if ( count >= 0 ) { // >= 2 elements
+ // do {
+ // copy_2_elements;
+ // } while ( (count=count-2) >= 0 );
+ // }
+ // }
+ // count += 2;
+ // if ( count != 0 ) { // 1 element left
+ // copy_1_element;
+ // }
+ //
void generate_disjoint_long_copy_core(bool aligned) {
Label L_copy_8_bytes, L_copy_16_bytes, L_exit;
const Register from = O0; // source array address
@@ -2012,7 +2033,39 @@
__ mov(G0, offset0); // offset from start of arrays (0)
__ brx(Assembler::negative, false, Assembler::pn, L_copy_8_bytes );
__ delayed()->add(offset0, 8, offset8);
- __ align(16);
+
+ // Copy by 64 bytes chunks
+ Label L_copy_64_bytes;
+ const Register from64 = O3; // source address
+ const Register to64 = G3; // destination address
+ __ subcc(count, 6, O3);
+ __ brx(Assembler::negative, false, Assembler::pt, L_copy_16_bytes );
+ __ delayed()->mov(to, to64);
+ // Now we can use O4(offset0), O5(offset8) as temps
+ __ mov(O3, count);
+ __ mov(from, from64);
+
+ __ align(OptoLoopAlignment);
+ __ BIND(L_copy_64_bytes);
+ for( int off = 0; off < 64; off += 16 ) {
+ __ ldx(from64, off+0, O4);
+ __ ldx(from64, off+8, O5);
+ __ stx(O4, to64, off+0);
+ __ stx(O5, to64, off+8);
+ }
+ __ deccc(count, 8);
+ __ inc(from64, 64);
+ __ brx(Assembler::greaterEqual, false, Assembler::pt, L_copy_64_bytes);
+ __ delayed()->inc(to64, 64);
+
+ // Restore O4(offset0), O5(offset8)
+ __ sub(from64, from, offset0);
+ __ inccc(count, 6);
+ __ brx(Assembler::negative, false, Assembler::pn, L_copy_8_bytes );
+ __ delayed()->add(offset0, 8, offset8);
+
+ // Copy by 16 bytes chunks
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_16_bytes);
__ ldx(from, offset0, O3);
__ ldx(from, offset8, G3);
@@ -2023,6 +2076,7 @@
__ brx(Assembler::greaterEqual, false, Assembler::pt, L_copy_16_bytes);
__ delayed()->inc(offset8, 16);
+ // Copy last 8 bytes
__ BIND(L_copy_8_bytes);
__ inccc(count, 2);
__ brx(Assembler::zero, true, Assembler::pn, L_exit );
@@ -2085,7 +2139,7 @@
__ brx(Assembler::lessEqual, false, Assembler::pn, L_copy_8_bytes );
__ delayed()->sllx(count, LogBytesPerLong, offset8);
__ sub(offset8, 8, offset0);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_16_bytes);
__ ldx(from, offset8, O2);
__ ldx(from, offset0, O3);
@@ -2351,7 +2405,7 @@
// (O5 = 0; ; O5 += wordSize) --- offset from src, dest arrays
// (O2 = len; O2 != 0; O2--) --- number of oops *remaining*
// G3, G4, G5 --- current oop, oop.klass, oop.klass.super
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(store_element);
__ deccc(G1_remain); // decrement the count
--- a/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/sparc/vm/vm_version_sparc.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -86,14 +86,24 @@
if (FLAG_IS_DEFAULT(InteriorEntryAlignment)) {
FLAG_SET_DEFAULT(InteriorEntryAlignment, 4);
}
+ if (is_niagara1_plus()) {
+ if (AllocatePrefetchStyle > 0 && FLAG_IS_DEFAULT(AllocatePrefetchStyle)) {
+ // Use BIS instruction for allocation prefetch.
+ FLAG_SET_DEFAULT(AllocatePrefetchStyle, 3);
+ if (FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+ // Use smaller prefetch distance on N2 with BIS
+ FLAG_SET_DEFAULT(AllocatePrefetchDistance, 64);
+ }
+ }
+ if (AllocatePrefetchStyle != 3 && FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
+ // Use different prefetch distance without BIS
+ FLAG_SET_DEFAULT(AllocatePrefetchDistance, 256);
+ }
+ }
+#endif
if (FLAG_IS_DEFAULT(OptoLoopAlignment)) {
FLAG_SET_DEFAULT(OptoLoopAlignment, 4);
}
- if (is_niagara1_plus() && FLAG_IS_DEFAULT(AllocatePrefetchDistance)) {
- // Use smaller prefetch distance on N2
- FLAG_SET_DEFAULT(AllocatePrefetchDistance, 256);
- }
-#endif
}
// Use hardware population count instruction if available.
--- a/hotspot/src/cpu/x86/vm/assembler_x86.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/assembler_x86.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -3365,6 +3365,13 @@
#else // LP64
+void Assembler::set_byte_if_not_zero(Register dst) {
+ int enc = prefix_and_encode(dst->encoding(), true);
+ emit_byte(0x0F);
+ emit_byte(0x95);
+ emit_byte(0xE0 | enc);
+}
+
// 64bit only pieces of the assembler
// This should only be used by 64bit instructions that can use rip-relative
// it cannot be used by instructions that want an immediate value.
--- a/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2690,19 +2690,14 @@
} else {
assert(code == lir_cmp_l2i, "check");
#ifdef _LP64
- Register dest = dst->as_register();
- __ xorptr(dest, dest);
- Label high, done;
- __ cmpptr(left->as_register_lo(), right->as_register_lo());
- __ jcc(Assembler::equal, done);
- __ jcc(Assembler::greater, high);
- __ decrement(dest);
- __ jmp(done);
- __ bind(high);
- __ increment(dest);
-
- __ bind(done);
-
+ Label done;
+ Register dest = dst->as_register();
+ __ cmpptr(left->as_register_lo(), right->as_register_lo());
+ __ movl(dest, -1);
+ __ jccb(Assembler::less, done);
+ __ set_byte_if_not_zero(dest);
+ __ movzbl(dest, dest);
+ __ bind(done);
#else
__ lcmp2int(left->as_register_hi(),
left->as_register_lo(),
--- a/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/c1_Runtime1_x86.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -781,7 +781,7 @@
// Restore SP from BP if the exception PC is a MethodHandle call site.
NOT_LP64(__ get_thread(thread);)
- __ cmpl(Address(thread, JavaThread::is_method_handle_exception_offset()), 0);
+ __ cmpl(Address(thread, JavaThread::is_method_handle_return_offset()), 0);
__ cmovptr(Assembler::notEqual, rsp, rbp);
// continue at exception handler (return address removed)
--- a/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/c2_globals_x86.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -80,7 +80,6 @@
// Ergonomics related flags
define_pd_global(uint64_t,MaxRAM, 4ULL*G);
#endif // AMD64
-define_pd_global(intx, OptoLoopAlignment, 16);
define_pd_global(intx, RegisterCostAreaRatio, 16000);
// Peephole and CISC spilling both break the graph, and so makes the
--- a/hotspot/src/cpu/x86/vm/globals_x86.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -45,6 +45,7 @@
#else
define_pd_global(intx, CodeEntryAlignment, 16);
#endif // COMPILER2
+define_pd_global(intx, OptoLoopAlignment, 16);
define_pd_global(intx, InlineFrequencyCount, 100);
define_pd_global(intx, InlineSmallCode, 1000);
--- a/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/runtime_x86_32.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -115,8 +115,8 @@
// rax: exception handler for given <exception oop/exception pc>
- // Restore SP from BP if the exception PC is a MethodHandle call.
- __ cmpl(Address(rcx, JavaThread::is_method_handle_exception_offset()), 0);
+ // Restore SP from BP if the exception PC is a MethodHandle call site.
+ __ cmpl(Address(rcx, JavaThread::is_method_handle_return_offset()), 0);
__ cmovptr(Assembler::notEqual, rsp, rbp);
// We have a handler in rax, (could be deopt blob)
--- a/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/sharedRuntime_x86_64.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -3328,8 +3328,8 @@
// rax: exception handler
- // Restore SP from BP if the exception PC is a MethodHandle call.
- __ cmpl(Address(r15_thread, JavaThread::is_method_handle_exception_offset()), 0);
+ // Restore SP from BP if the exception PC is a MethodHandle call site.
+ __ cmpl(Address(r15_thread, JavaThread::is_method_handle_return_offset()), 0);
__ cmovptr(Assembler::notEqual, rsp, rbp);
// We have a handler in rax (could be deopt blob).
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_32.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -430,7 +430,7 @@
__ verify_oop(exception_oop);
// Restore SP from BP if the exception PC is a MethodHandle call site.
- __ cmpl(Address(thread, JavaThread::is_method_handle_exception_offset()), 0);
+ __ cmpl(Address(thread, JavaThread::is_method_handle_return_offset()), 0);
__ cmovptr(Assembler::notEqual, rsp, rbp);
// continue at exception handler (return address removed)
@@ -812,7 +812,7 @@
Label L_copy_64_bytes_loop, L_copy_64_bytes, L_copy_8_bytes, L_exit;
// Copy 64-byte chunks
__ jmpb(L_copy_64_bytes);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_64_bytes_loop);
if(UseUnalignedLoadStores) {
@@ -874,7 +874,7 @@
Label L_copy_64_bytes_loop, L_copy_64_bytes, L_copy_8_bytes, L_exit;
// Copy 64-byte chunks
__ jmpb(L_copy_64_bytes);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_64_bytes_loop);
__ movq(mmx0, Address(from, 0));
__ movq(mmx1, Address(from, 8));
@@ -1144,7 +1144,7 @@
__ movl(Address(to, count, sf, 0), rdx);
__ jmpb(L_copy_8_bytes);
- __ align(16);
+ __ align(OptoLoopAlignment);
// Move 8 bytes
__ BIND(L_copy_8_bytes_loop);
if (UseXMMForArrayCopy) {
@@ -1235,7 +1235,7 @@
}
} else {
__ jmpb(L_copy_8_bytes);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_8_bytes_loop);
__ fild_d(Address(from, 0));
__ fistp_d(Address(from, to_from, Address::times_1));
@@ -1282,7 +1282,7 @@
__ jmpb(L_copy_8_bytes);
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_copy_8_bytes_loop);
if (VM_Version::supports_mmx()) {
if (UseXMMForArrayCopy) {
@@ -1454,7 +1454,7 @@
// Loop control:
// for (count = -count; count != 0; count++)
// Base pointers src, dst are biased by 8*count,to last element.
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_store_element);
__ movptr(to_element_addr, elem); // store the oop
--- a/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/x86/vm/stubGenerator_x86_64.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -871,9 +871,8 @@
}
address generate_fp_mask(const char *stub_name, int64_t mask) {
+ __ align(CodeEntryAlignment);
StubCodeMark mark(this, "StubRoutines", stub_name);
-
- __ align(16);
address start = __ pc();
__ emit_data64( mask, relocInfo::none );
@@ -1268,7 +1267,7 @@
Label& L_copy_32_bytes, Label& L_copy_8_bytes) {
DEBUG_ONLY(__ stop("enter at entry label, not here"));
Label L_loop;
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_loop);
if(UseUnalignedLoadStores) {
__ movdqu(xmm0, Address(end_from, qword_count, Address::times_8, -24));
@@ -1309,7 +1308,7 @@
Label& L_copy_32_bytes, Label& L_copy_8_bytes) {
DEBUG_ONLY(__ stop("enter at entry label, not here"));
Label L_loop;
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_loop);
if(UseUnalignedLoadStores) {
__ movdqu(xmm0, Address(from, qword_count, Address::times_8, 16));
@@ -2229,7 +2228,7 @@
// Loop control:
// for (count = -count; count != 0; count++)
// Base pointers src, dst are biased by 8*(count-1),to last element.
- __ align(16);
+ __ align(OptoLoopAlignment);
__ BIND(L_store_element);
__ store_heap_oop(to_element_addr, rax_oop); // store the oop
--- a/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -206,7 +206,6 @@
// Update the invocation counter
if ((UseCompiler || CountCompiledCalls) && !method->is_synchronized()) {
- thread->set_do_not_unlock();
InvocationCounter *counter = method->invocation_counter();
counter->increment();
if (counter->reached_InvocationLimit()) {
@@ -215,7 +214,6 @@
if (HAS_PENDING_EXCEPTION)
goto unwind_and_return;
}
- thread->clr_do_not_unlock();
}
// Lock if necessary
--- a/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1,6 +1,6 @@
/*
* Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
- * Copyright 2009 Red Hat, Inc.
+ * Copyright 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,4 +23,10 @@
*
*/
-// This file is intentionally empty
+#include "incls/_precompiled.incl"
+#include "incls/_methodHandles_zero.cpp.incl"
+
+void MethodHandles::generate_method_handle_stub(MacroAssembler* masm,
+ MethodHandles::EntryKind ek) {
+ ShouldNotCallThis();
+}
--- a/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -1,6 +1,6 @@
/*
* Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
- * Copyright 2007, 2008, 2009 Red Hat, Inc.
+ * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,10 @@
code_size2 = 0 // if these are too small. Simply increase
}; // them if that happens.
+ enum method_handles_platform_dependent_constants {
+ method_handles_adapters_code_size = 0
+ };
+
#ifdef IA32
class x86 {
friend class VMStructs;
--- a/hotspot/src/os/linux/vm/attachListener_linux.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/linux/vm/attachListener_linux.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -192,7 +192,8 @@
res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr));
}
if (res == -1) {
- sprintf(path, "%s/.java_pid%d", os::get_temp_directory(), os::current_process_id());
+ snprintf(path, PATH_MAX+1, "%s/.java_pid%d",
+ os::get_temp_directory(), os::current_process_id());
strcpy(addr.sun_path, path);
::unlink(path);
res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr));
@@ -460,13 +461,14 @@
if (init_at_startup() || is_initialized()) {
return false; // initialized at startup or already initialized
}
- char fn[32];
+ char fn[128];
sprintf(fn, ".attach_pid%d", os::current_process_id());
int ret;
struct stat64 st;
RESTARTABLE(::stat64(fn, &st), ret);
if (ret == -1) {
- sprintf(fn, "/tmp/.attach_pid%d", os::current_process_id());
+ snprintf(fn, sizeof(fn), "%s/.attach_pid%d",
+ os::get_temp_directory(), os::current_process_id());
RESTARTABLE(::stat64(fn, &st), ret);
}
if (ret == 0) {
--- a/hotspot/src/os/linux/vm/os_linux.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/linux/vm/os_linux.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1522,7 +1522,10 @@
const char* os::dll_file_extension() { return ".so"; }
-const char* os::get_temp_directory() { return "/tmp/"; }
+const char* os::get_temp_directory() {
+ const char *prop = Arguments::get_property("java.io.tmpdir");
+ return prop == NULL ? "/tmp" : prop;
+}
static bool file_exists(const char* filename) {
struct stat statbuf;
@@ -2305,7 +2308,8 @@
char buf[40];
int num = Atomic::add(1, &cnt);
- sprintf(buf, "/tmp/hs-vm-%d-%d", os::current_process_id(), num);
+ snprintf(buf, sizeof(buf), "%s/hs-vm-%d-%d",
+ os::get_temp_directory(), os::current_process_id(), num);
unlink(buf);
int fd = open(buf, O_CREAT | O_RDWR, S_IRWXU);
--- a/hotspot/src/os/linux/vm/perfMemory_linux.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/linux/vm/perfMemory_linux.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -145,11 +145,11 @@
const char* tmpdir = os::get_temp_directory();
const char* perfdir = PERFDATA_NAME;
- size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 2;
+ size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3;
char* dirname = NEW_C_HEAP_ARRAY(char, nbytes);
// construct the path name to user specific tmp directory
- snprintf(dirname, nbytes, "%s%s_%s", tmpdir, perfdir, user);
+ snprintf(dirname, nbytes, "%s/%s_%s", tmpdir, perfdir, user);
return dirname;
}
@@ -331,8 +331,9 @@
}
char* usrdir_name = NEW_C_HEAP_ARRAY(char,
- strlen(tmpdirname) + strlen(dentry->d_name) + 1);
+ strlen(tmpdirname) + strlen(dentry->d_name) + 2);
strcpy(usrdir_name, tmpdirname);
+ strcat(usrdir_name, "/");
strcat(usrdir_name, dentry->d_name);
DIR* subdirp = os::opendir(usrdir_name);
--- a/hotspot/src/os/solaris/vm/attachListener_solaris.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/solaris/vm/attachListener_solaris.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -375,7 +375,8 @@
return -1;
}
- sprintf(door_path, "%s/.java_pid%d", os::get_temp_directory(), os::current_process_id());
+ snprintf(door_path, sizeof(door_path), "%s/.java_pid%d",
+ os::get_temp_directory(), os::current_process_id());
RESTARTABLE(::creat(door_path, S_IRUSR | S_IWUSR), fd);
if (fd == -1) {
@@ -591,13 +592,14 @@
if (init_at_startup() || is_initialized()) {
return false; // initialized at startup or already initialized
}
- char fn[32];
+ char fn[128];
sprintf(fn, ".attach_pid%d", os::current_process_id());
int ret;
struct stat64 st;
RESTARTABLE(::stat64(fn, &st), ret);
if (ret == -1) {
- sprintf(fn, "/tmp/.attach_pid%d", os::current_process_id());
+ snprintf(fn, sizeof(fn), "%s/.attach_pid%d",
+ os::get_temp_directory(), os::current_process_id());
RESTARTABLE(::stat64(fn, &st), ret);
}
if (ret == 0) {
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -676,15 +676,6 @@
}
-static char* get_property(char* name, char* buffer, int buffer_size) {
- if (os::getenv(name, buffer, buffer_size)) {
- return buffer;
- }
- static char empty[] = "";
- return empty;
-}
-
-
void os::init_system_properties_values() {
char arch[12];
sysinfo(SI_ARCHITECTURE, arch, sizeof(arch));
@@ -1826,7 +1817,10 @@
const char* os::dll_file_extension() { return ".so"; }
-const char* os::get_temp_directory() { return "/tmp/"; }
+const char* os::get_temp_directory() {
+ const char *prop = Arguments::get_property("java.io.tmpdir");
+ return prop == NULL ? "/tmp" : prop;
+}
static bool file_exists(const char* filename) {
struct stat statbuf;
--- a/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/solaris/vm/perfMemory_solaris.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -147,11 +147,11 @@
const char* tmpdir = os::get_temp_directory();
const char* perfdir = PERFDATA_NAME;
- size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 2;
+ size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3;
char* dirname = NEW_C_HEAP_ARRAY(char, nbytes);
// construct the path name to user specific tmp directory
- snprintf(dirname, nbytes, "%s%s_%s", tmpdir, perfdir, user);
+ snprintf(dirname, nbytes, "%s/%s_%s", tmpdir, perfdir, user);
return dirname;
}
@@ -322,8 +322,9 @@
}
char* usrdir_name = NEW_C_HEAP_ARRAY(char,
- strlen(tmpdirname) + strlen(dentry->d_name) + 1);
+ strlen(tmpdirname) + strlen(dentry->d_name) + 2);
strcpy(usrdir_name, tmpdirname);
+ strcat(usrdir_name, "/");
strcat(usrdir_name, dentry->d_name);
DIR* subdirp = os::opendir(usrdir_name);
--- a/hotspot/src/os/windows/vm/os_windows.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/windows/vm/os_windows.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -998,15 +998,16 @@
const char* os::dll_file_extension() { return ".dll"; }
-const char * os::get_temp_directory()
-{
- static char path_buf[MAX_PATH];
- if (GetTempPath(MAX_PATH, path_buf)>0)
- return path_buf;
- else{
- path_buf[0]='\0';
- return path_buf;
- }
+const char* os::get_temp_directory() {
+ const char *prop = Arguments::get_property("java.io.tmpdir");
+ if (prop != 0) return prop;
+ static char path_buf[MAX_PATH];
+ if (GetTempPath(MAX_PATH, path_buf)>0)
+ return path_buf;
+ else{
+ path_buf[0]='\0';
+ return path_buf;
+ }
}
static bool file_exists(const char* filename) {
--- a/hotspot/src/os/windows/vm/perfMemory_windows.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/os/windows/vm/perfMemory_windows.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -149,11 +149,11 @@
const char* tmpdir = os::get_temp_directory();
const char* perfdir = PERFDATA_NAME;
- size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 2;
+ size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3;
char* dirname = NEW_C_HEAP_ARRAY(char, nbytes);
// construct the path name to user specific tmp directory
- _snprintf(dirname, nbytes, "%s%s_%s", tmpdir, perfdir, user);
+ _snprintf(dirname, nbytes, "%s\\%s_%s", tmpdir, perfdir, user);
return dirname;
}
@@ -318,8 +318,9 @@
}
char* usrdir_name = NEW_C_HEAP_ARRAY(char,
- strlen(tmpdirname) + strlen(dentry->d_name) + 1);
+ strlen(tmpdirname) + strlen(dentry->d_name) + 2);
strcpy(usrdir_name, tmpdirname);
+ strcat(usrdir_name, "\\");
strcat(usrdir_name, dentry->d_name);
DIR* subdirp = os::opendir(usrdir_name);
--- a/hotspot/src/share/vm/c1/c1_LinearScan.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/c1/c1_LinearScan.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2608,12 +2608,17 @@
} else if (opr->is_double_xmm()) {
assert(opr->fpu_regnrLo() == opr->fpu_regnrHi(), "assumed in calculation");
VMReg rname_first = opr->as_xmm_double_reg()->as_VMReg();
+# ifdef _LP64
+ first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
+ second = &_int_0_scope_value;
+# else
first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
// %%% This is probably a waste but we'll keep things as they were for now
if (true) {
VMReg rname_second = rname_first->next();
second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second));
}
+# endif
#endif
} else if (opr->is_double_fpu()) {
@@ -2639,13 +2644,17 @@
#endif
VMReg rname_first = frame_map()->fpu_regname(opr->fpu_regnrHi());
-
+#ifdef _LP64
+ first = new LocationValue(Location::new_reg_loc(Location::dbl, rname_first));
+ second = &_int_0_scope_value;
+#else
first = new LocationValue(Location::new_reg_loc(Location::normal, rname_first));
// %%% This is probably a waste but we'll keep things as they were for now
if (true) {
VMReg rname_second = rname_first->next();
second = new LocationValue(Location::new_reg_loc(Location::normal, rname_second));
}
+#endif
} else {
ShouldNotReachHere();
--- a/hotspot/src/share/vm/ci/ciConstant.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/ci/ciConstant.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -36,7 +36,7 @@
basictype_to_str(basic_type()));
switch (basic_type()) {
case T_BOOLEAN:
- tty->print("%s", bool_to_str(_value._int == 0));
+ tty->print("%s", bool_to_str(_value._int != 0));
break;
case T_CHAR:
case T_BYTE:
--- a/hotspot/src/share/vm/ci/ciEnv.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/ci/ciEnv.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -385,11 +385,6 @@
KILL_COMPILE_ON_FATAL_(fail_type));
}
- if (found_klass != NULL) {
- // Found it. Build a CI handle.
- return get_object(found_klass)->as_klass();
- }
-
// If we fail to find an array klass, look again for its element type.
// The element type may be available either locally or via constraints.
// In either case, if we can find the element type in the system dictionary,
@@ -414,6 +409,11 @@
}
}
+ if (found_klass != NULL) {
+ // Found it. Build a CI handle.
+ return get_object(found_klass)->as_klass();
+ }
+
if (require_local) return NULL;
// Not yet loaded into the VM, or not governed by loader constraints.
// Make a CI representative for it.
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2956,8 +2956,8 @@
#endif
bool compact_fields = CompactFields;
int allocation_style = FieldsAllocationStyle;
- if( allocation_style < 0 || allocation_style > 1 ) { // Out of range?
- assert(false, "0 <= FieldsAllocationStyle <= 1");
+ if( allocation_style < 0 || allocation_style > 2 ) { // Out of range?
+ assert(false, "0 <= FieldsAllocationStyle <= 2");
allocation_style = 1; // Optimistic
}
@@ -2993,6 +2993,25 @@
} else if( allocation_style == 1 ) {
// Fields order: longs/doubles, ints, shorts/chars, bytes, oops
next_nonstatic_double_offset = next_nonstatic_field_offset;
+ } else if( allocation_style == 2 ) {
+ // Fields allocation: oops fields in super and sub classes are together.
+ if( nonstatic_field_size > 0 && super_klass() != NULL &&
+ super_klass->nonstatic_oop_map_size() > 0 ) {
+ int map_size = super_klass->nonstatic_oop_map_size();
+ OopMapBlock* first_map = super_klass->start_of_nonstatic_oop_maps();
+ OopMapBlock* last_map = first_map + map_size - 1;
+ int next_offset = last_map->offset() + (last_map->count() * heapOopSize);
+ if (next_offset == next_nonstatic_field_offset) {
+ allocation_style = 0; // allocate oops first
+ next_nonstatic_oop_offset = next_nonstatic_field_offset;
+ next_nonstatic_double_offset = next_nonstatic_oop_offset +
+ (nonstatic_oop_count * heapOopSize);
+ }
+ }
+ if( allocation_style == 2 ) {
+ allocation_style = 1; // allocate oops last
+ next_nonstatic_double_offset = next_nonstatic_field_offset;
+ }
} else {
ShouldNotReachHere();
}
--- a/hotspot/src/share/vm/classfile/loaderConstraints.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/classfile/loaderConstraints.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -334,33 +334,6 @@
return NULL;
}
-
-klassOop LoaderConstraintTable::find_constrained_elem_klass(symbolHandle name,
- symbolHandle elem_name,
- Handle loader,
- TRAPS) {
- LoaderConstraintEntry *p = *(find_loader_constraint(name, loader));
- if (p != NULL) {
- assert(p->klass() == NULL, "Expecting null array klass");
-
- // The array name has a constraint, but it will not have a class. Check
- // each loader for an associated elem
- for (int i = 0; i < p->num_loaders(); i++) {
- Handle no_protection_domain;
-
- klassOop k = SystemDictionary::find(elem_name, p->loader(i), no_protection_domain, THREAD);
- if (k != NULL) {
- // Return the first elem klass found.
- return k;
- }
- }
- }
-
- // No constraints, or else no klass loaded yet.
- return NULL;
-}
-
-
void LoaderConstraintTable::ensure_loader_constraint_capacity(
LoaderConstraintEntry *p,
int nfree) {
--- a/hotspot/src/share/vm/classfile/loaderConstraints.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/classfile/loaderConstraints.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -66,9 +66,6 @@
// bool is_method, TRAPS)
klassOop find_constrained_klass(symbolHandle name, Handle loader);
- klassOop find_constrained_elem_klass(symbolHandle name, symbolHandle elem_name,
- Handle loader, TRAPS);
-
// Class loader constraints
--- a/hotspot/src/share/vm/classfile/systemDictionary.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/classfile/systemDictionary.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2178,9 +2178,8 @@
// a loader constraint that would require this loader to return the
// klass that is already loaded.
if (FieldType::is_array(class_name())) {
- // Array classes are hard because their klassOops are not kept in the
- // constraint table. The array klass may be constrained, but the elem class
- // may not be.
+ // For array classes, their klassOops are not kept in the
+ // constraint table. The element klassOops are.
jint dimension;
symbolOop object_key;
BasicType t = FieldType::get_array_info(class_name(), &dimension,
@@ -2190,8 +2189,9 @@
} else {
symbolHandle elem_name(THREAD, object_key);
MutexLocker mu(SystemDictionary_lock, THREAD);
- klass = constraints()->find_constrained_elem_klass(class_name, elem_name, class_loader, THREAD);
+ klass = constraints()->find_constrained_klass(elem_name, class_loader);
}
+ // If element class already loaded, allocate array klass
if (klass != NULL) {
klass = Klass::cast(klass)->array_klass_or_null(dimension);
}
@@ -2209,22 +2209,38 @@
Handle class_loader1,
Handle class_loader2,
Thread* THREAD) {
- unsigned int d_hash1 = dictionary()->compute_hash(class_name, class_loader1);
+ symbolHandle constraint_name;
+ if (!FieldType::is_array(class_name())) {
+ constraint_name = class_name;
+ } else {
+ // For array classes, their klassOops are not kept in the
+ // constraint table. The element classes are.
+ jint dimension;
+ symbolOop object_key;
+ BasicType t = FieldType::get_array_info(class_name(), &dimension,
+ &object_key, CHECK_(false));
+ // primitive types always pass
+ if (t != T_OBJECT) {
+ return true;
+ } else {
+ constraint_name = symbolHandle(THREAD, object_key);
+ }
+ }
+ unsigned int d_hash1 = dictionary()->compute_hash(constraint_name, class_loader1);
int d_index1 = dictionary()->hash_to_index(d_hash1);
- unsigned int d_hash2 = dictionary()->compute_hash(class_name, class_loader2);
+ unsigned int d_hash2 = dictionary()->compute_hash(constraint_name, class_loader2);
int d_index2 = dictionary()->hash_to_index(d_hash2);
-
{
- MutexLocker mu_s(SystemDictionary_lock, THREAD);
+ MutexLocker mu_s(SystemDictionary_lock, THREAD);
- // Better never do a GC while we're holding these oops
- No_Safepoint_Verifier nosafepoint;
+ // Better never do a GC while we're holding these oops
+ No_Safepoint_Verifier nosafepoint;
- klassOop klass1 = find_class(d_index1, d_hash1, class_name, class_loader1);
- klassOop klass2 = find_class(d_index2, d_hash2, class_name, class_loader2);
- return constraints()->add_entry(class_name, klass1, class_loader1,
- klass2, class_loader2);
+ klassOop klass1 = find_class(d_index1, d_hash1, constraint_name, class_loader1);
+ klassOop klass2 = find_class(d_index2, d_hash2, constraint_name, class_loader2);
+ return constraints()->add_entry(constraint_name, klass1, class_loader1,
+ klass2, class_loader2);
}
}
@@ -2301,6 +2317,7 @@
// Returns the name of the type that failed a loader constraint check, or
// NULL if no constraint failed. The returned C string needs cleaning up
// with a ResourceMark in the caller. No exception except OOME is thrown.
+// Arrays are not added to the loader constraint table, their elements are.
char* SystemDictionary::check_signature_loaders(symbolHandle signature,
Handle loader1, Handle loader2,
bool is_method, TRAPS) {
--- a/hotspot/src/share/vm/code/codeCache.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/code/codeCache.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -284,9 +284,11 @@
cur->print_on(tty, is_live ? "scavenge root" : "dead scavenge root"); tty->cr();
}
#endif //PRODUCT
- if (is_live)
+ if (is_live) {
// Perform cur->oops_do(f), maybe just once per nmethod.
f->do_code_blob(cur);
+ cur->fix_oop_relocations();
+ }
}
// Check for stray marks.
--- a/hotspot/src/share/vm/compiler/compileBroker.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1414,9 +1414,14 @@
intx thread_id = os::current_thread_id();
for (int try_temp_dir = 1; try_temp_dir >= 0; try_temp_dir--) {
const char* dir = (try_temp_dir ? os::get_temp_directory() : NULL);
- if (dir == NULL) dir = "";
- sprintf(fileBuf, "%shs_c" UINTX_FORMAT "_pid%u.log",
- dir, thread_id, os::current_process_id());
+ if (dir == NULL) {
+ jio_snprintf(fileBuf, sizeof(fileBuf), "hs_c" UINTX_FORMAT "_pid%u.log",
+ thread_id, os::current_process_id());
+ } else {
+ jio_snprintf(fileBuf, sizeof(fileBuf),
+ "%s%shs_c" UINTX_FORMAT "_pid%u.log", dir,
+ os::file_separator(), thread_id, os::current_process_id());
+ }
fp = fopen(fileBuf, "at");
if (fp != NULL) {
file = NEW_C_HEAP_ARRAY(char, strlen(fileBuf)+1);
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -297,6 +297,11 @@
}
}
+// Currently we do not call this at all. Normally we would call it
+// during the concurrent marking / remark phases but we now call
+// the lock-based version instead. But we might want to resurrect this
+// code in the future. So, we'll leave it here commented out.
+#if 0
MemRegion CMRegionStack::pop() {
while (true) {
// Otherwise...
@@ -321,6 +326,41 @@
// Otherwise, we need to try again.
}
}
+#endif // 0
+
+void CMRegionStack::push_with_lock(MemRegion mr) {
+ assert(mr.word_size() > 0, "Precondition");
+ MutexLockerEx x(CMRegionStack_lock, Mutex::_no_safepoint_check_flag);
+
+ if (isFull()) {
+ _overflow = true;
+ return;
+ }
+
+ _base[_index] = mr;
+ _index += 1;
+}
+
+MemRegion CMRegionStack::pop_with_lock() {
+ MutexLockerEx x(CMRegionStack_lock, Mutex::_no_safepoint_check_flag);
+
+ while (true) {
+ if (_index == 0) {
+ return MemRegion();
+ }
+ _index -= 1;
+
+ MemRegion mr = _base[_index];
+ if (mr.start() != NULL) {
+ assert(mr.end() != NULL, "invariant");
+ assert(mr.word_size() > 0, "invariant");
+ return mr;
+ } else {
+ // that entry was invalidated... let's skip it
+ assert(mr.end() == NULL, "invariant");
+ }
+ }
+}
bool CMRegionStack::invalidate_entries_into_cset() {
bool result = false;
@@ -668,24 +708,46 @@
//
void ConcurrentMark::clearNextBitmap() {
- guarantee(!G1CollectedHeap::heap()->mark_in_progress(), "Precondition.");
-
- // clear the mark bitmap (no grey objects to start with).
- // We need to do this in chunks and offer to yield in between
- // each chunk.
- HeapWord* start = _nextMarkBitMap->startWord();
- HeapWord* end = _nextMarkBitMap->endWord();
- HeapWord* cur = start;
- size_t chunkSize = M;
- while (cur < end) {
- HeapWord* next = cur + chunkSize;
- if (next > end)
- next = end;
- MemRegion mr(cur,next);
- _nextMarkBitMap->clearRange(mr);
- cur = next;
- do_yield_check();
- }
+ G1CollectedHeap* g1h = G1CollectedHeap::heap();
+ G1CollectorPolicy* g1p = g1h->g1_policy();
+
+ // Make sure that the concurrent mark thread looks to still be in
+ // the current cycle.
+ guarantee(cmThread()->during_cycle(), "invariant");
+
+ // We are finishing up the current cycle by clearing the next
+ // marking bitmap and getting it ready for the next cycle. During
+ // this time no other cycle can start. So, let's make sure that this
+ // is the case.
+ guarantee(!g1h->mark_in_progress(), "invariant");
+
+ // clear the mark bitmap (no grey objects to start with).
+ // We need to do this in chunks and offer to yield in between
+ // each chunk.
+ HeapWord* start = _nextMarkBitMap->startWord();
+ HeapWord* end = _nextMarkBitMap->endWord();
+ HeapWord* cur = start;
+ size_t chunkSize = M;
+ while (cur < end) {
+ HeapWord* next = cur + chunkSize;
+ if (next > end)
+ next = end;
+ MemRegion mr(cur,next);
+ _nextMarkBitMap->clearRange(mr);
+ cur = next;
+ do_yield_check();
+
+ // Repeat the asserts from above. We'll do them as asserts here to
+ // minimize their overhead on the product. However, we'll have
+ // them as guarantees at the beginning / end of the bitmap
+ // clearing to get some checking in the product.
+ assert(cmThread()->during_cycle(), "invariant");
+ assert(!g1h->mark_in_progress(), "invariant");
+ }
+
+ // Repeat the asserts from above.
+ guarantee(cmThread()->during_cycle(), "invariant");
+ guarantee(!g1h->mark_in_progress(), "invariant");
}
class NoteStartOfMarkHRClosure: public HeapRegionClosure {
@@ -3363,7 +3425,7 @@
gclog_or_tty->print_cr("[%d] draining region stack, size = %d",
_task_id, _cm->region_stack_size());
- MemRegion mr = _cm->region_stack_pop();
+ MemRegion mr = _cm->region_stack_pop_with_lock();
// it returns MemRegion() if the pop fails
statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
@@ -3384,7 +3446,7 @@
if (has_aborted())
mr = MemRegion();
else {
- mr = _cm->region_stack_pop();
+ mr = _cm->region_stack_pop_with_lock();
// it returns MemRegion() if the pop fails
statsOnly(if (mr.start() != NULL) ++_region_stack_pops );
}
@@ -3417,7 +3479,7 @@
}
// Now push the part of the region we didn't scan on the
// region stack to make sure a task scans it later.
- _cm->region_stack_push(newRegion);
+ _cm->region_stack_push_with_lock(newRegion);
}
// break from while
mr = MemRegion();
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -252,9 +252,19 @@
// with other "push" operations (no pops).
void push(MemRegion mr);
+#if 0
+ // This is currently not used. See the comment in the .cpp file.
+
// Lock-free; assumes that it will only be called in parallel
// with other "pop" operations (no pushes).
MemRegion pop();
+#endif // 0
+
+ // These two are the implementations that use a lock. They can be
+ // called concurrently with each other but they should not be called
+ // concurrently with the lock-free versions (push() / pop()).
+ void push_with_lock(MemRegion mr);
+ MemRegion pop_with_lock();
bool isEmpty() { return _index == 0; }
bool isFull() { return _index == _capacity; }
@@ -540,6 +550,10 @@
// Manipulation of the region stack
bool region_stack_push(MemRegion mr) {
+ // Currently we only call the lock-free version during evacuation
+ // pauses.
+ assert(SafepointSynchronize::is_at_safepoint(), "world should be stopped");
+
_regionStack.push(mr);
if (_regionStack.overflow()) {
set_has_overflown();
@@ -547,7 +561,33 @@
}
return true;
}
- MemRegion region_stack_pop() { return _regionStack.pop(); }
+#if 0
+ // Currently this is not used. See the comment in the .cpp file.
+ MemRegion region_stack_pop() { return _regionStack.pop(); }
+#endif // 0
+
+ bool region_stack_push_with_lock(MemRegion mr) {
+ // Currently we only call the lock-based version during either
+ // concurrent marking or remark.
+ assert(!SafepointSynchronize::is_at_safepoint() || !concurrent(),
+ "if we are at a safepoint it should be the remark safepoint");
+
+ _regionStack.push_with_lock(mr);
+ if (_regionStack.overflow()) {
+ set_has_overflown();
+ return false;
+ }
+ return true;
+ }
+ MemRegion region_stack_pop_with_lock() {
+ // Currently we only call the lock-based version during either
+ // concurrent marking or remark.
+ assert(!SafepointSynchronize::is_at_safepoint() || !concurrent(),
+ "if we are at a safepoint it should be the remark safepoint");
+
+ return _regionStack.pop_with_lock();
+ }
+
int region_stack_size() { return _regionStack.size(); }
bool region_stack_overflow() { return _regionStack.overflow(); }
bool region_stack_empty() { return _regionStack.isEmpty(); }
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMarkThread.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -42,8 +42,8 @@
private:
ConcurrentMark* _cm;
- bool _started;
- bool _in_progress;
+ volatile bool _started;
+ volatile bool _in_progress;
void sleepBeforeNextCycle();
@@ -67,15 +67,25 @@
// Counting virtual time so far.
double vtime_count_accum() { return _vtime_count_accum; }
- ConcurrentMark* cm() { return _cm; }
+ ConcurrentMark* cm() { return _cm; }
+
+ void set_started() { _started = true; }
+ void clear_started() { _started = false; }
+ bool started() { return _started; }
+
+ void set_in_progress() { _in_progress = true; }
+ void clear_in_progress() { _in_progress = false; }
+ bool in_progress() { return _in_progress; }
- void set_started() { _started = true; }
- void clear_started() { _started = false; }
- bool started() { return _started; }
-
- void set_in_progress() { _in_progress = true; }
- void clear_in_progress() { _in_progress = false; }
- bool in_progress() { return _in_progress; }
+ // This flag returns true from the moment a marking cycle is
+ // initiated (during the initial-mark pause when started() is set)
+ // to the moment when the cycle completes (just after the next
+ // marking bitmap has been cleared and in_progress() is
+ // cleared). While this flag is true we will not start another cycle
+ // so that cycles do not overlap. We cannot use just in_progress()
+ // as the CM thread might take some time to wake up before noticing
+ // that started() is set and set in_progress().
+ bool during_cycle() { return started() || in_progress(); }
// Yield for GC
void yield();
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -902,6 +902,10 @@
void G1CollectedHeap::do_collection(bool full, bool clear_all_soft_refs,
size_t word_size) {
+ if (GC_locker::check_active_before_gc()) {
+ return; // GC is disabled (e.g. JNI GetXXXCritical operation)
+ }
+
ResourceMark rm;
if (PrintHeapAtGC) {
@@ -916,10 +920,6 @@
assert(SafepointSynchronize::is_at_safepoint(), "should be at safepoint");
assert(Thread::current() == VMThread::vm_thread(), "should be in vm thread");
- if (GC_locker::is_active()) {
- return; // GC is disabled (e.g. JNI GetXXXCritical operation)
- }
-
{
IsGCActiveMark x;
@@ -2658,6 +2658,10 @@
void
G1CollectedHeap::do_collection_pause_at_safepoint() {
+ if (GC_locker::check_active_before_gc()) {
+ return; // GC is disabled (e.g. JNI GetXXXCritical operation)
+ }
+
if (PrintHeapAtGC) {
Universe::print_heap_before_gc();
}
@@ -2665,6 +2669,11 @@
{
ResourceMark rm;
+ // This call will decide whether this pause is an initial-mark
+ // pause. If it is, during_initial_mark_pause() will return true
+ // for the duration of this pause.
+ g1_policy()->decide_on_conc_mark_initiation();
+
char verbose_str[128];
sprintf(verbose_str, "GC pause ");
if (g1_policy()->in_young_gc_mode()) {
@@ -2673,7 +2682,7 @@
else
strcat(verbose_str, "(partial)");
}
- if (g1_policy()->should_initiate_conc_mark())
+ if (g1_policy()->during_initial_mark_pause())
strcat(verbose_str, " (initial-mark)");
// if PrintGCDetails is on, we'll print long statistics information
@@ -2697,10 +2706,6 @@
"young list should be well formed");
}
- if (GC_locker::is_active()) {
- return; // GC is disabled (e.g. JNI GetXXXCritical operation)
- }
-
bool abandoned = false;
{ // Call to jvmpi::post_class_unload_events must occur outside of active GC
IsGCActiveMark x;
@@ -2756,7 +2761,7 @@
_young_list->print();
#endif // SCAN_ONLY_VERBOSE
- if (g1_policy()->should_initiate_conc_mark()) {
+ if (g1_policy()->during_initial_mark_pause()) {
concurrent_mark()->checkpointRootsInitialPre();
}
save_marks();
@@ -2858,7 +2863,7 @@
}
if (g1_policy()->in_young_gc_mode() &&
- g1_policy()->should_initiate_conc_mark()) {
+ g1_policy()->during_initial_mark_pause()) {
concurrent_mark()->checkpointRootsInitialPost();
set_marking_started();
// CAUTION: after the doConcurrentMark() call below,
@@ -2937,6 +2942,9 @@
// the same region
assert(r == NULL || !r->is_gc_alloc_region(),
"shouldn't already be a GC alloc region");
+ assert(r == NULL || !r->isHumongous(),
+ "humongous regions shouldn't be used as GC alloc regions");
+
HeapWord* original_top = NULL;
if (r != NULL)
original_top = r->top();
@@ -3079,12 +3087,17 @@
if (alloc_region->in_collection_set() ||
alloc_region->top() == alloc_region->end() ||
- alloc_region->top() == alloc_region->bottom()) {
- // we will discard the current GC alloc region if it's in the
- // collection set (it can happen!), if it's already full (no
- // point in using it), or if it's empty (this means that it
- // was emptied during a cleanup and it should be on the free
- // list now).
+ alloc_region->top() == alloc_region->bottom() ||
+ alloc_region->isHumongous()) {
+ // we will discard the current GC alloc region if
+ // * it's in the collection set (it can happen!),
+ // * it's already full (no point in using it),
+ // * it's empty (this means that it was emptied during
+ // a cleanup and it should be on the free list now), or
+ // * it's humongous (this means that it was emptied
+ // during a cleanup and was added to the free list, but
+ // has been subseqently used to allocate a humongous
+ // object that may be less than the region size).
alloc_region = NULL;
}
@@ -3977,7 +3990,7 @@
OopsInHeapRegionClosure *scan_perm_cl;
OopsInHeapRegionClosure *scan_so_cl;
- if (_g1h->g1_policy()->should_initiate_conc_mark()) {
+ if (_g1h->g1_policy()->during_initial_mark_pause()) {
scan_root_cl = &scan_mark_root_cl;
scan_perm_cl = &scan_mark_perm_cl;
scan_so_cl = &scan_mark_heap_rs_cl;
@@ -4140,7 +4153,7 @@
FilterAndMarkInHeapRegionAndIntoCSClosure scan_and_mark(this, &boc, concurrent_mark());
OopsInHeapRegionClosure *foc;
- if (g1_policy()->should_initiate_conc_mark())
+ if (g1_policy()->during_initial_mark_pause())
foc = &scan_and_mark;
else
foc = &scan_only;
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -178,8 +178,8 @@
// so the hack is to do the cast QQQ FIXME
_pauses_btwn_concurrent_mark((size_t)G1PausesBtwnConcMark),
_n_marks_since_last_pause(0),
- _conc_mark_initiated(false),
- _should_initiate_conc_mark(false),
+ _initiate_conc_mark_if_possible(false),
+ _during_initial_mark_pause(false),
_should_revert_to_full_young_gcs(false),
_last_full_young_gc(false),
@@ -198,7 +198,9 @@
_recorded_survivor_regions(0),
_recorded_survivor_head(NULL),
_recorded_survivor_tail(NULL),
- _survivors_age_table(true)
+ _survivors_age_table(true),
+
+ _gc_overhead_perc(0.0)
{
// Set up the region size and associated fields. Given that the
@@ -275,6 +277,11 @@
// calculate_young_list_target_config during initialization
_max_survivor_regions = G1FixedSurvivorSpaceSize / HeapRegion::GrainBytes;
+ assert(GCTimeRatio > 0,
+ "we should have set it to a default value set_g1_gc_flags() "
+ "if a user set it to 0");
+ _gc_overhead_perc = 100.0 * (1.0 / (1.0 + GCTimeRatio));
+
initialize_all();
}
@@ -786,7 +793,7 @@
elapsed_time_ms,
calculations,
full_young_gcs() ? "full" : "partial",
- should_initiate_conc_mark() ? " i-m" : "",
+ during_initial_mark_pause() ? " i-m" : "",
_in_marking_window,
_in_marking_window_im);
#endif // TRACE_CALC_YOUNG_CONFIG
@@ -1033,7 +1040,8 @@
set_full_young_gcs(true);
_last_full_young_gc = false;
_should_revert_to_full_young_gcs = false;
- _should_initiate_conc_mark = false;
+ clear_initiate_conc_mark_if_possible();
+ clear_during_initial_mark_pause();
_known_garbage_bytes = 0;
_known_garbage_ratio = 0.0;
_in_marking_window = false;
@@ -1179,7 +1187,8 @@
void G1CollectorPolicy::record_concurrent_mark_init_end_pre(double
mark_init_elapsed_time_ms) {
_during_marking = true;
- _should_initiate_conc_mark = false;
+ assert(!initiate_conc_mark_if_possible(), "we should have cleared it by now");
+ clear_during_initial_mark_pause();
_cur_mark_stop_world_time_ms = mark_init_elapsed_time_ms;
}
@@ -1250,7 +1259,6 @@
}
_n_pauses_at_mark_end = _n_pauses;
_n_marks_since_last_pause++;
- _conc_mark_initiated = false;
}
void
@@ -1446,17 +1454,24 @@
#endif // PRODUCT
if (in_young_gc_mode()) {
- last_pause_included_initial_mark = _should_initiate_conc_mark;
+ last_pause_included_initial_mark = during_initial_mark_pause();
if (last_pause_included_initial_mark)
record_concurrent_mark_init_end_pre(0.0);
size_t min_used_targ =
(_g1->capacity() / 100) * InitiatingHeapOccupancyPercent;
- if (cur_used_bytes > min_used_targ) {
- if (cur_used_bytes <= _prev_collection_pause_used_at_end_bytes) {
- } else if (!_g1->mark_in_progress() && !_last_full_young_gc) {
- _should_initiate_conc_mark = true;
+
+ if (!_g1->mark_in_progress() && !_last_full_young_gc) {
+ assert(!last_pause_included_initial_mark, "invariant");
+ if (cur_used_bytes > min_used_targ &&
+ cur_used_bytes > _prev_collection_pause_used_at_end_bytes) {
+ assert(!during_initial_mark_pause(), "we should not see this here");
+
+ // Note: this might have already been set, if during the last
+ // pause we decided to start a cycle but at the beginning of
+ // this pause we decided to postpone it. That's OK.
+ set_initiate_conc_mark_if_possible();
}
}
@@ -1747,7 +1762,7 @@
bool new_in_marking_window = _in_marking_window;
bool new_in_marking_window_im = false;
- if (_should_initiate_conc_mark) {
+ if (during_initial_mark_pause()) {
new_in_marking_window = true;
new_in_marking_window_im = true;
}
@@ -2166,7 +2181,13 @@
if (predicted_time_ms > _expensive_region_limit_ms) {
if (!in_young_gc_mode()) {
set_full_young_gcs(true);
- _should_initiate_conc_mark = true;
+ // We might want to do something different here. However,
+ // right now we don't support the non-generational G1 mode
+ // (and in fact we are planning to remove the associated code,
+ // see CR 6814390). So, let's leave it as is and this will be
+ // removed some time in the future
+ ShouldNotReachHere();
+ set_during_initial_mark_pause();
} else
// no point in doing another partial one
_should_revert_to_full_young_gcs = true;
@@ -2288,7 +2309,7 @@
}
size_t G1CollectorPolicy::expansion_amount() {
- if ((int)(recent_avg_pause_time_ratio() * 100.0) > G1GCPercent) {
+ if ((recent_avg_pause_time_ratio() * 100.0) > _gc_overhead_perc) {
// We will double the existing space, or take
// G1ExpandByPercentOfAvailable % of the available expansion
// space, whichever is smaller, bounded below by a minimum
@@ -2690,6 +2711,50 @@
#endif
void
+G1CollectorPolicy::decide_on_conc_mark_initiation() {
+ // We are about to decide on whether this pause will be an
+ // initial-mark pause.
+
+ // First, during_initial_mark_pause() should not be already set. We
+ // will set it here if we have to. However, it should be cleared by
+ // the end of the pause (it's only set for the duration of an
+ // initial-mark pause).
+ assert(!during_initial_mark_pause(), "pre-condition");
+
+ if (initiate_conc_mark_if_possible()) {
+ // We had noticed on a previous pause that the heap occupancy has
+ // gone over the initiating threshold and we should start a
+ // concurrent marking cycle. So we might initiate one.
+
+ bool during_cycle = _g1->concurrent_mark()->cmThread()->during_cycle();
+ if (!during_cycle) {
+ // The concurrent marking thread is not "during a cycle", i.e.,
+ // it has completed the last one. So we can go ahead and
+ // initiate a new cycle.
+
+ set_during_initial_mark_pause();
+
+ // And we can now clear initiate_conc_mark_if_possible() as
+ // we've already acted on it.
+ clear_initiate_conc_mark_if_possible();
+ } else {
+ // The concurrent marking thread is still finishing up the
+ // previous cycle. If we start one right now the two cycles
+ // overlap. In particular, the concurrent marking thread might
+ // be in the process of clearing the next marking bitmap (which
+ // we will use for the next cycle if we start one). Starting a
+ // cycle now will be bad given that parts of the marking
+ // information might get cleared by the marking thread. And we
+ // cannot wait for the marking thread to finish the cycle as it
+ // periodically yields while clearing the next marking bitmap
+ // and, if it's in a yield point, it's waiting for us to
+ // finish. So, at this point we will not start a cycle and we'll
+ // let the concurrent marking thread complete the last one.
+ }
+ }
+}
+
+void
G1CollectorPolicy_BestRegionsFirst::
record_collection_pause_start(double start_time_sec, size_t start_used) {
G1CollectorPolicy::record_collection_pause_start(start_time_sec, start_used);
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -215,6 +215,8 @@
SurvRateGroup* _survivor_surv_rate_group;
// add here any more surv rate groups
+ double _gc_overhead_perc;
+
bool during_marking() {
return _during_marking;
}
@@ -722,11 +724,31 @@
size_t _n_marks_since_last_pause;
- // True iff CM has been initiated.
- bool _conc_mark_initiated;
+ // At the end of a pause we check the heap occupancy and we decide
+ // whether we will start a marking cycle during the next pause. If
+ // we decide that we want to do that, we will set this parameter to
+ // true. So, this parameter will stay true between the end of a
+ // pause and the beginning of a subsequent pause (not necessarily
+ // the next one, see the comments on the next field) when we decide
+ // that we will indeed start a marking cycle and do the initial-mark
+ // work.
+ volatile bool _initiate_conc_mark_if_possible;
- // True iff CM should be initiated
- bool _should_initiate_conc_mark;
+ // If initiate_conc_mark_if_possible() is set at the beginning of a
+ // pause, it is a suggestion that the pause should start a marking
+ // cycle by doing the initial-mark work. However, it is possible
+ // that the concurrent marking thread is still finishing up the
+ // previous marking cycle (e.g., clearing the next marking
+ // bitmap). If that is the case we cannot start a new cycle and
+ // we'll have to wait for the concurrent marking thread to finish
+ // what it is doing. In this case we will postpone the marking cycle
+ // initiation decision for the next pause. When we eventually decide
+ // to start a cycle, we will set _during_initial_mark_pause which
+ // will stay true until the end of the initial-mark pause and it's
+ // the condition that indicates that a pause is doing the
+ // initial-mark work.
+ volatile bool _during_initial_mark_pause;
+
bool _should_revert_to_full_young_gcs;
bool _last_full_young_gc;
@@ -979,9 +1001,21 @@
// Add "hr" to the CS.
void add_to_collection_set(HeapRegion* hr);
- bool should_initiate_conc_mark() { return _should_initiate_conc_mark; }
- void set_should_initiate_conc_mark() { _should_initiate_conc_mark = true; }
- void unset_should_initiate_conc_mark(){ _should_initiate_conc_mark = false; }
+ bool initiate_conc_mark_if_possible() { return _initiate_conc_mark_if_possible; }
+ void set_initiate_conc_mark_if_possible() { _initiate_conc_mark_if_possible = true; }
+ void clear_initiate_conc_mark_if_possible() { _initiate_conc_mark_if_possible = false; }
+
+ bool during_initial_mark_pause() { return _during_initial_mark_pause; }
+ void set_during_initial_mark_pause() { _during_initial_mark_pause = true; }
+ void clear_during_initial_mark_pause(){ _during_initial_mark_pause = false; }
+
+ // This is called at the very beginning of an evacuation pause (it
+ // has to be the first thing that the pause does). If
+ // initiate_conc_mark_if_possible() is true, and the concurrent
+ // marking thread has completed its work during the previous cycle,
+ // it will set during_initial_mark_pause() to so that the pause does
+ // the initial-mark work and start a marking cycle.
+ void decide_on_conc_mark_initiation();
// If an expansion would be appropriate, because recent GC overhead had
// exceeded the desired limit, return an amount to expand by.
--- a/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1_globals.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -40,9 +40,6 @@
develop(bool, G1Gen, true, \
"If true, it will enable the generational G1") \
\
- develop(intx, G1GCPercent, 10, \
- "The desired percent time spent on GC") \
- \
develop(intx, G1PolicyVerbose, 0, \
"The verbosity level on G1 policy decisions") \
\
@@ -270,11 +267,11 @@
product(uintx, G1HeapRegionSize, 0, \
"Size of the G1 regions.") \
\
- experimental(bool, G1UseParallelRSetUpdating, false, \
+ experimental(bool, G1UseParallelRSetUpdating, true, \
"Enables the parallelization of remembered set updating " \
"during evacuation pauses") \
\
- experimental(bool, G1UseParallelRSetScanning, false, \
+ experimental(bool, G1UseParallelRSetScanning, true, \
"Enables the parallelization of remembered set scanning " \
"during evacuation pauses") \
\
--- a/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2328,6 +2328,17 @@
}
DEFAULT:
+#ifdef ZERO
+ // Some zero configurations use the C++ interpreter as a
+ // fallback interpreter and have support for platform
+ // specific fast bytecodes which aren't supported here, so
+ // redispatch to the equivalent non-fast bytecode when they
+ // are encountered.
+ if (Bytecodes::is_defined((Bytecodes::Code)opcode)) {
+ opcode = (jubyte)Bytecodes::java_code((Bytecodes::Code)opcode);
+ goto opcode_switch;
+ }
+#endif
fatal2("\t*** Unimplemented opcode: %d = %s\n",
opcode, Bytecodes::name((Bytecodes::Code)opcode));
goto finish;
--- a/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/memory/threadLocalAllocBuffer.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -111,7 +111,22 @@
// Allocate size HeapWords. The memory is NOT initialized to zero.
inline HeapWord* allocate(size_t size);
- static size_t alignment_reserve() { return align_object_size(typeArrayOopDesc::header_size(T_INT)); }
+
+ // Reserve space at the end of TLAB
+ static size_t end_reserve() {
+ int reserve_size = typeArrayOopDesc::header_size(T_INT);
+ if (AllocatePrefetchStyle == 3) {
+ // BIS is used to prefetch - we need a space for it.
+ // +1 for rounding up to next cache line +1 to be safe
+ int lines = AllocatePrefetchLines + 2;
+ int step_size = AllocatePrefetchStepSize;
+ int distance = AllocatePrefetchDistance;
+ int prefetch_end = (distance + step_size*lines)/(int)HeapWordSize;
+ reserve_size = MAX2(reserve_size, prefetch_end);
+ }
+ return reserve_size;
+ }
+ static size_t alignment_reserve() { return align_object_size(end_reserve()); }
static size_t alignment_reserve_in_bytes() { return alignment_reserve() * HeapWordSize; }
// Return tlab size or remaining space in eden such that the
--- a/hotspot/src/share/vm/oops/typeArrayKlass.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/oops/typeArrayKlass.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -123,16 +123,16 @@
|| (((unsigned int) length + (unsigned int) dst_pos) > (unsigned int) d->length()) ) {
THROW(vmSymbols::java_lang_ArrayIndexOutOfBoundsException());
}
+ // Check zero copy
+ if (length == 0)
+ return;
// This is an attempt to make the copy_array fast.
- // NB: memmove takes care of overlapping memory segments.
- // Potential problem: memmove is not guaranteed to be word atomic
- // Revisit in Merlin
int l2es = log2_element_size();
int ihs = array_header_in_bytes() / wordSize;
- char* src = (char*) ((oop*)s + ihs) + (src_pos << l2es);
- char* dst = (char*) ((oop*)d + ihs) + (dst_pos << l2es);
- memmove(dst, src, length << l2es);
+ char* src = (char*) ((oop*)s + ihs) + ((size_t)src_pos << l2es);
+ char* dst = (char*) ((oop*)d + ihs) + ((size_t)dst_pos << l2es);
+ Copy::conjoint_memory_atomic(src, dst, (size_t)length << l2es);
}
--- a/hotspot/src/share/vm/opto/c2_globals.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -52,9 +52,6 @@
"Code alignment for interior entry points " \
"in generated code (in bytes)") \
\
- product_pd(intx, OptoLoopAlignment, \
- "Align inner loops to zero relative to this modulus") \
- \
product(intx, MaxLoopPad, (OptoLoopAlignment-1), \
"Align a loop if padding size in bytes is less or equal to this value") \
\
--- a/hotspot/src/share/vm/opto/cfgnode.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/cfgnode.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -956,6 +956,7 @@
}
if( jtkp && ttkp ) {
if( jtkp->is_loaded() && jtkp->klass()->is_interface() &&
+ !jtkp->klass_is_exact() && // Keep exact interface klass (6894807)
ttkp->is_loaded() && !ttkp->klass()->is_interface() ) {
assert(ft == ttkp->cast_to_ptr_type(jtkp->ptr()) ||
ft->isa_narrowoop() && ft->make_ptr() == ttkp->cast_to_ptr_type(jtkp->ptr()), "");
--- a/hotspot/src/share/vm/opto/doCall.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/doCall.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -714,8 +714,6 @@
// iterate through all entries sequentially
for (;!handlers.is_done(); handlers.next()) {
- // Do nothing if turned off
- if( !DeutschShiffmanExceptions ) break;
ciExceptionHandler* handler = handlers.handler();
if (handler->is_rethrow()) {
@@ -741,46 +739,26 @@
return; // No more handling to be done here!
}
- // %%% The following logic replicates make_from_klass_unique.
- // TO DO: Replace by a subroutine call. Then generalize
- // the type check, as noted in the next "%%%" comment.
-
+ // Get the handler's klass
ciInstanceKlass* klass = handler->catch_klass();
- if (UseUniqueSubclasses) {
- // (We use make_from_klass because it respects UseUniqueSubclasses.)
- const TypeOopPtr* tp = TypeOopPtr::make_from_klass(klass);
- klass = tp->klass()->as_instance_klass();
+
+ if (!klass->is_loaded()) { // klass is not loaded?
+ // fall through into catch_call_exceptions which will emit a
+ // handler with an uncommon trap.
+ break;
}
- // Get the handler's klass
- if (!klass->is_loaded()) // klass is not loaded?
- break; // Must call Rethrow!
if (klass->is_interface()) // should not happen, but...
break; // bail out
- // See if the loaded exception klass has no subtypes
- if (klass->has_subklass())
- break; // Cannot easily do precise test ==> Rethrow
- // %%% Now that subclass checking is very fast, we need to rewrite
- // this section and remove the option "DeutschShiffmanExceptions".
- // The exception processing chain should be a normal typecase pattern,
- // with a bailout to the interpreter only in the case of unloaded
- // classes. (The bailout should mark the method non-entrant.)
- // This rewrite should be placed in GraphKit::, not Parse::.
-
- // Add a dependence; if any subclass added we need to recompile
- // %%% should use stronger assert_unique_concrete_subtype instead
- if (!klass->is_final()) {
- C->dependencies()->assert_leaf_type(klass);
- }
-
- // Implement precise test
+ // Check the type of the exception against the catch type
const TypeKlassPtr *tk = TypeKlassPtr::make(klass);
Node* con = _gvn.makecon(tk);
- Node* cmp = _gvn.transform( new (C, 3) CmpPNode(ex_klass_node, con) );
- Node* bol = _gvn.transform( new (C, 2) BoolNode(cmp, BoolTest::ne) );
- { BuildCutout unless(this, bol, PROB_LIKELY(0.7f));
- const TypeInstPtr* tinst = TypeInstPtr::make_exact(TypePtr::NotNull, klass);
+ Node* not_subtype_ctrl = gen_subtype_check(ex_klass_node, con);
+ if (!stopped()) {
+ PreserveJVMState pjvms(this);
+ const TypeInstPtr* tinst = TypeOopPtr::make_from_klass_unique(klass)->cast_to_ptr_type(TypePtr::NotNull)->is_instptr();
+ assert(klass->has_subklass() || tinst->klass_is_exact(), "lost exactness");
Node* ex_oop = _gvn.transform(new (C, 2) CheckCastPPNode(control(), ex_node, tinst));
push_ex_oop(ex_oop); // Push exception oop for handler
#ifndef PRODUCT
@@ -792,6 +770,7 @@
#endif
merge_exception(handler_bci);
}
+ set_control(not_subtype_ctrl);
// Come here if exception does not match handler.
// Carry on with more handler checks.
@@ -800,21 +779,6 @@
assert(!stopped(), "you should return if you finish the chain");
- if (remaining == 1) {
- // Further checks do not matter.
- }
-
- if (can_rerun_bytecode()) {
- // Do not push_ex_oop here!
- // Re-executing the bytecode will reproduce the throwing condition.
- bool must_throw = true;
- uncommon_trap(Deoptimization::Reason_unhandled,
- Deoptimization::Action_none,
- (ciKlass*)NULL, (const char*)NULL, // default args
- must_throw);
- return;
- }
-
// Oops, need to call into the VM to resolve the klasses at runtime.
// Note: This call must not deoptimize, since it is not a real at this bci!
kill_dead_locals();
--- a/hotspot/src/share/vm/opto/macro.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/macro.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1487,11 +1487,11 @@
Node*& contended_phi_rawmem,
Node* old_eden_top, Node* new_eden_top,
Node* length) {
+ enum { fall_in_path = 1, pf_path = 2 };
if( UseTLAB && AllocatePrefetchStyle == 2 ) {
// Generate prefetch allocation with watermark check.
// As an allocation hits the watermark, we will prefetch starting
// at a "distance" away from watermark.
- enum { fall_in_path = 1, pf_path = 2 };
Node *pf_region = new (C, 3) RegionNode(3);
Node *pf_phi_rawmem = new (C, 3) PhiNode( pf_region, Type::MEMORY,
@@ -1570,6 +1570,45 @@
needgc_false = pf_region;
contended_phi_rawmem = pf_phi_rawmem;
i_o = pf_phi_abio;
+ } else if( UseTLAB && AllocatePrefetchStyle == 3 ) {
+ // Insert a prefetch for each allocation only on the fast-path
+ Node *pf_region = new (C, 3) RegionNode(3);
+ Node *pf_phi_rawmem = new (C, 3) PhiNode( pf_region, Type::MEMORY,
+ TypeRawPtr::BOTTOM );
+
+ // Generate several prefetch instructions only for arrays.
+ uint lines = (length != NULL) ? AllocatePrefetchLines : 1;
+ uint step_size = AllocatePrefetchStepSize;
+ uint distance = AllocatePrefetchDistance;
+
+ // Next cache address.
+ Node *cache_adr = new (C, 4) AddPNode(old_eden_top, old_eden_top,
+ _igvn.MakeConX(distance));
+ transform_later(cache_adr);
+ cache_adr = new (C, 2) CastP2XNode(needgc_false, cache_adr);
+ transform_later(cache_adr);
+ Node* mask = _igvn.MakeConX(~(intptr_t)(step_size-1));
+ cache_adr = new (C, 3) AndXNode(cache_adr, mask);
+ transform_later(cache_adr);
+ cache_adr = new (C, 2) CastX2PNode(cache_adr);
+ transform_later(cache_adr);
+
+ // Prefetch
+ Node *prefetch = new (C, 3) PrefetchWriteNode( contended_phi_rawmem, cache_adr );
+ prefetch->set_req(0, needgc_false);
+ transform_later(prefetch);
+ contended_phi_rawmem = prefetch;
+ Node *prefetch_adr;
+ distance = step_size;
+ for ( uint i = 1; i < lines; i++ ) {
+ prefetch_adr = new (C, 4) AddPNode( cache_adr, cache_adr,
+ _igvn.MakeConX(distance) );
+ transform_later(prefetch_adr);
+ prefetch = new (C, 3) PrefetchWriteNode( contended_phi_rawmem, prefetch_adr );
+ transform_later(prefetch);
+ distance += step_size;
+ contended_phi_rawmem = prefetch;
+ }
} else if( AllocatePrefetchStyle > 0 ) {
// Insert a prefetch for each allocation only on the fast-path
Node *prefetch_adr;
--- a/hotspot/src/share/vm/opto/memnode.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/memnode.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -1244,5 +1244,5 @@
virtual int Opcode() const;
virtual uint ideal_reg() const { return NotAMachineReg; }
virtual uint match_edge(uint idx) const { return idx==2; }
- virtual const Type *bottom_type() const { return Type::ABIO; }
+ virtual const Type *bottom_type() const { return ( AllocatePrefetchStyle == 3 ) ? Type::MEMORY : Type::ABIO; }
};
--- a/hotspot/src/share/vm/opto/parse.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/parse.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -551,9 +551,6 @@
// Also handles exceptions for individual bytecodes.
void catch_inline_exceptions(SafePointNode* ex_map);
- // Bytecode classifier, helps decide to use uncommon_trap vs. rethrow_C.
- bool can_rerun_bytecode();
-
// Merge the given map into correct exceptional exit state.
// Assumes that there is no applicable local handler.
void throw_to_exit(SafePointNode* ex_map);
--- a/hotspot/src/share/vm/opto/parse1.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/parse1.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -798,67 +798,6 @@
initial_gvn()->transform_no_reclaim(exit);
}
-bool Parse::can_rerun_bytecode() {
- switch (bc()) {
- case Bytecodes::_ldc:
- case Bytecodes::_ldc_w:
- case Bytecodes::_ldc2_w:
- case Bytecodes::_getfield:
- case Bytecodes::_putfield:
- case Bytecodes::_getstatic:
- case Bytecodes::_putstatic:
- case Bytecodes::_arraylength:
- case Bytecodes::_baload:
- case Bytecodes::_caload:
- case Bytecodes::_iaload:
- case Bytecodes::_saload:
- case Bytecodes::_faload:
- case Bytecodes::_aaload:
- case Bytecodes::_laload:
- case Bytecodes::_daload:
- case Bytecodes::_bastore:
- case Bytecodes::_castore:
- case Bytecodes::_iastore:
- case Bytecodes::_sastore:
- case Bytecodes::_fastore:
- case Bytecodes::_aastore:
- case Bytecodes::_lastore:
- case Bytecodes::_dastore:
- case Bytecodes::_irem:
- case Bytecodes::_idiv:
- case Bytecodes::_lrem:
- case Bytecodes::_ldiv:
- case Bytecodes::_frem:
- case Bytecodes::_fdiv:
- case Bytecodes::_drem:
- case Bytecodes::_ddiv:
- case Bytecodes::_checkcast:
- case Bytecodes::_instanceof:
- case Bytecodes::_anewarray:
- case Bytecodes::_newarray:
- case Bytecodes::_multianewarray:
- case Bytecodes::_new:
- case Bytecodes::_monitorenter: // can re-run initial null check, only
- case Bytecodes::_return:
- return true;
- break;
-
- // Don't rerun athrow since it's part of the exception path.
- case Bytecodes::_athrow:
- case Bytecodes::_invokestatic:
- case Bytecodes::_invokedynamic:
- case Bytecodes::_invokespecial:
- case Bytecodes::_invokevirtual:
- case Bytecodes::_invokeinterface:
- return false;
- break;
-
- default:
- assert(false, "unexpected bytecode produced an exception");
- return true;
- }
-}
-
//---------------------------do_exceptions-------------------------------------
// Process exceptions arising from the current bytecode.
// Send caught exceptions to the proper handler within this method.
@@ -872,9 +811,6 @@
return;
}
- // Make sure we can classify this bytecode if we need to.
- debug_only(can_rerun_bytecode());
-
PreserveJVMState pjvms(this, false);
SafePointNode* ex_map;
--- a/hotspot/src/share/vm/opto/runtime.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/runtime.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -865,7 +865,7 @@
thread->set_exception_stack_size(0);
// Check if the exception PC is a MethodHandle call site.
- thread->set_is_method_handle_exception(nm->is_method_handle_return(pc));
+ thread->set_is_method_handle_return(nm->is_method_handle_return(pc));
}
// Restore correct return pc. Was saved above.
--- a/hotspot/src/share/vm/opto/type.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/opto/type.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -2545,12 +2545,15 @@
ftip->is_loaded() && ftip->klass()->is_interface() &&
ktip->is_loaded() && !ktip->klass()->is_interface()) {
// Happens in a CTW of rt.jar, 320-341, no extra flags
+ assert(!ftip->klass_is_exact(), "interface could not be exact");
return ktip->cast_to_ptr_type(ftip->ptr());
}
+ // Interface klass type could be exact in opposite to interface type,
+ // return it here instead of incorrect Constant ptr J/L/Object (6894807).
if (ftkp != NULL && ktkp != NULL &&
ftkp->is_loaded() && ftkp->klass()->is_interface() &&
+ !ftkp->klass_is_exact() && // Keep exact interface klass
ktkp->is_loaded() && !ktkp->klass()->is_interface()) {
- // Happens in a CTW of rt.jar, 320-341, no extra flags
return ktkp->cast_to_ptr_type(ftkp->ptr());
}
--- a/hotspot/src/share/vm/prims/forte.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/prims/forte.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -55,12 +55,11 @@
};
-static void is_decipherable_compiled_frame(frame* fr, RegisterMap* map,
- bool* is_compiled_p, bool* is_walkable_p);
+static bool is_decipherable_compiled_frame(JavaThread* thread, frame* fr, nmethod* nm);
static bool is_decipherable_interpreted_frame(JavaThread* thread,
- frame* fr,
- methodOop* method_p,
- int* bci_p);
+ frame* fr,
+ methodOop* method_p,
+ int* bci_p);
@@ -122,41 +121,43 @@
// Determine if 'fr' is a decipherable compiled frame. We are already
// assured that fr is for a java nmethod.
-static bool is_decipherable_compiled_frame(frame* fr) {
-
- assert(fr->cb() != NULL && fr->cb()->is_nmethod(), "invariant");
- nmethod* nm = (nmethod*) fr->cb();
+static bool is_decipherable_compiled_frame(JavaThread* thread, frame* fr, nmethod* nm) {
assert(nm->is_java_method(), "invariant");
- // First try and find an exact PcDesc
-
- PcDesc* pc_desc = nm->pc_desc_at(fr->pc());
-
- // Did we find a useful PcDesc?
- if (pc_desc != NULL &&
- pc_desc->scope_decode_offset() == DebugInformationRecorder::serialized_null) {
-
- address probe_pc = fr->pc() + 1;
- pc_desc = nm->pc_desc_near(probe_pc);
+ if (thread->has_last_Java_frame() && thread->last_Java_pc() == fr->pc()) {
+ // We're stopped at a call into the JVM so look for a PcDesc with
+ // the actual pc reported by the frame.
+ PcDesc* pc_desc = nm->pc_desc_at(fr->pc());
- // Now do we have a useful PcDesc?
-
+ // Did we find a useful PcDesc?
if (pc_desc != NULL &&
- pc_desc->scope_decode_offset() == DebugInformationRecorder::serialized_null) {
- // No debug information available for this pc
- // vframeStream would explode if we try and walk the frames.
- return false;
+ pc_desc->scope_decode_offset() != DebugInformationRecorder::serialized_null) {
+ return true;
}
-
- // This PcDesc is useful however we must adjust the frame's pc
- // so that the vframeStream lookups will use this same pc
-
- fr->set_pc(pc_desc->real_pc(nm));
}
+ // We're at some random pc in the nmethod so search for the PcDesc
+ // whose pc is greater than the current PC. It's done this way
+ // because the extra PcDescs that are recorded for improved debug
+ // info record the end of the region covered by the ScopeDesc
+ // instead of the beginning.
+ PcDesc* pc_desc = nm->pc_desc_near(fr->pc() + 1);
+
+ // Now do we have a useful PcDesc?
+ if (pc_desc == NULL ||
+ pc_desc->scope_decode_offset() == DebugInformationRecorder::serialized_null) {
+ // No debug information available for this pc
+ // vframeStream would explode if we try and walk the frames.
+ return false;
+ }
+
+ // This PcDesc is useful however we must adjust the frame's pc
+ // so that the vframeStream lookups will use this same pc
+ fr->set_pc(pc_desc->real_pc(nm));
return true;
}
+
// Determine if 'fr' is a walkable interpreted frame. Returns false
// if it is not. *method_p, and *bci_p are not set when false is
// returned. *method_p is non-NULL if frame was executing a Java
@@ -166,9 +167,9 @@
// even if a valid BCI cannot be found.
static bool is_decipherable_interpreted_frame(JavaThread* thread,
- frame* fr,
- methodOop* method_p,
- int* bci_p) {
+ frame* fr,
+ methodOop* method_p,
+ int* bci_p) {
assert(fr->is_interpreted_frame(), "just checking");
// top frame is an interpreted frame
@@ -323,13 +324,15 @@
// have a PCDesc that can get us a bci however we did find
// a method
- if (!is_decipherable_compiled_frame(&candidate)) {
+ if (!is_decipherable_compiled_frame(thread, &candidate, nm)) {
return false;
}
// is_decipherable_compiled_frame may modify candidate's pc
*initial_frame_p = candidate;
+ assert(nm->pc_desc_at(candidate.pc()) != NULL, "if it's decipherable then pc must be valid");
+
return true;
}
--- a/hotspot/src/share/vm/runtime/arguments.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1353,6 +1353,16 @@
MarkStackSize / K, MarkStackSizeMax / K);
tty->print_cr("ConcGCThreads: %u", ConcGCThreads);
}
+
+ if (FLAG_IS_DEFAULT(GCTimeRatio) || GCTimeRatio == 0) {
+ // In G1, we want the default GC overhead goal to be higher than
+ // say in PS. So we set it here to 10%. Otherwise the heap might
+ // be expanded more aggressively than we would like it to. In
+ // fact, even 10% seems to not be high enough in some cases
+ // (especially small GC stress tests that the main thing they do
+ // is allocation). We might consider increase it further.
+ FLAG_SET_DEFAULT(GCTimeRatio, 9);
+ }
}
void Arguments::set_heap_size() {
--- a/hotspot/src/share/vm/runtime/globals.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/globals.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -1052,7 +1052,8 @@
"Use SSE2 MOVDQU instruction for Arraycopy") \
\
product(intx, FieldsAllocationStyle, 1, \
- "0 - type based with oops first, 1 - with oops last") \
+ "0 - type based with oops first, 1 - with oops last, " \
+ "2 - oops in super and sub classes are together") \
\
product(bool, CompactFields, true, \
"Allocate nonstatic fields in gaps between previous fields") \
@@ -2502,10 +2503,6 @@
notproduct(bool, TraceSpilling, false, \
"Trace spilling") \
\
- develop(bool, DeutschShiffmanExceptions, true, \
- "Fast check to find exception handler for precisely typed " \
- "exceptions") \
- \
product(bool, SplitIfBlocks, true, \
"Clone compares and control flow through merge points to fold " \
"some branches") \
@@ -2711,7 +2708,8 @@
product(intx, AllocatePrefetchStyle, 1, \
"0 = no prefetch, " \
"1 = prefetch instructions for each allocation, " \
- "2 = use TLAB watermark to gate allocation prefetch") \
+ "2 = use TLAB watermark to gate allocation prefetch, " \
+ "3 = use BIS instruction on Sparc for allocation prefetch") \
\
product(intx, AllocatePrefetchDistance, -1, \
"Distance to prefetch ahead of allocation pointer") \
@@ -3114,6 +3112,9 @@
develop_pd(intx, CodeEntryAlignment, \
"Code entry alignment for generated code (in bytes)") \
\
+ product_pd(intx, OptoLoopAlignment, \
+ "Align inner loops to zero relative to this modulus") \
+ \
product_pd(uintx, InitialCodeCacheSize, \
"Initial code cache size (in bytes)") \
\
--- a/hotspot/src/share/vm/runtime/mutexLocker.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/mutexLocker.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -70,6 +70,7 @@
Monitor* CMark_lock = NULL;
Monitor* ZF_mon = NULL;
Monitor* Cleanup_mon = NULL;
+Mutex* CMRegionStack_lock = NULL;
Mutex* SATB_Q_FL_lock = NULL;
Monitor* SATB_Q_CBL_mon = NULL;
Mutex* Shared_SATB_Q_lock = NULL;
@@ -167,6 +168,7 @@
def(CMark_lock , Monitor, nonleaf, true ); // coordinate concurrent mark thread
def(ZF_mon , Monitor, leaf, true );
def(Cleanup_mon , Monitor, nonleaf, true );
+ def(CMRegionStack_lock , Mutex, leaf, true );
def(SATB_Q_FL_lock , Mutex , special, true );
def(SATB_Q_CBL_mon , Monitor, nonleaf, true );
def(Shared_SATB_Q_lock , Mutex, nonleaf, true );
--- a/hotspot/src/share/vm/runtime/mutexLocker.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/mutexLocker.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -63,6 +63,7 @@
extern Monitor* CMark_lock; // used for concurrent mark thread coordination
extern Monitor* ZF_mon; // used for G1 conc zero-fill.
extern Monitor* Cleanup_mon; // used for G1 conc cleanup.
+extern Mutex* CMRegionStack_lock; // used for protecting accesses to the CM region stack
extern Mutex* SATB_Q_FL_lock; // Protects SATB Q
// buffer free list.
extern Monitor* SATB_Q_CBL_mon; // Protects SATB Q
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -259,13 +259,16 @@
address SharedRuntime::raw_exception_handler_for_return_address(JavaThread* thread, address return_address) {
assert(frame::verify_return_pc(return_address), "must be a return pc");
+ // Reset MethodHandle flag.
+ thread->set_is_method_handle_return(false);
+
// the fastest case first
CodeBlob* blob = CodeCache::find_blob(return_address);
if (blob != NULL && blob->is_nmethod()) {
nmethod* code = (nmethod*)blob;
assert(code != NULL, "nmethod must be present");
// Check if the return address is a MethodHandle call site.
- thread->set_is_method_handle_exception(code->is_method_handle_return(return_address));
+ thread->set_is_method_handle_return(code->is_method_handle_return(return_address));
// native nmethods don't have exception handlers
assert(!code->is_native_method(), "no exception handler");
assert(code->header_begin() != code->exception_begin(), "no exception handler");
@@ -292,7 +295,7 @@
nmethod* code = (nmethod*)blob;
assert(code != NULL, "nmethod must be present");
// Check if the return address is a MethodHandle call site.
- thread->set_is_method_handle_exception(code->is_method_handle_return(return_address));
+ thread->set_is_method_handle_return(code->is_method_handle_return(return_address));
assert(code->header_begin() != code->exception_begin(), "no exception handler");
return code->exception_begin();
}
--- a/hotspot/src/share/vm/runtime/thread.hpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/runtime/thread.hpp Tue Apr 20 01:24:48 2010 -0700
@@ -772,7 +772,7 @@
volatile address _exception_pc; // PC where exception happened
volatile address _exception_handler_pc; // PC for handler of exception
volatile int _exception_stack_size; // Size of frame where exception happened
- volatile int _is_method_handle_exception; // True if the current exception PC is at a MethodHandle call.
+ volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site.
// support for compilation
bool _is_compiling; // is true if a compilation is active inthis thread (one compilation per thread possible)
@@ -1108,13 +1108,13 @@
int exception_stack_size() const { return _exception_stack_size; }
address exception_pc() const { return _exception_pc; }
address exception_handler_pc() const { return _exception_handler_pc; }
- int is_method_handle_exception() const { return _is_method_handle_exception; }
+ bool is_method_handle_return() const { return _is_method_handle_return == 1; }
void set_exception_oop(oop o) { _exception_oop = o; }
void set_exception_pc(address a) { _exception_pc = a; }
void set_exception_handler_pc(address a) { _exception_handler_pc = a; }
void set_exception_stack_size(int size) { _exception_stack_size = size; }
- void set_is_method_handle_exception(int value) { _is_method_handle_exception = value; }
+ void set_is_method_handle_return(bool value) { _is_method_handle_return = value ? 1 : 0; }
// Stack overflow support
inline size_t stack_available(address cur_sp);
@@ -1188,7 +1188,7 @@
static ByteSize exception_pc_offset() { return byte_offset_of(JavaThread, _exception_pc ); }
static ByteSize exception_handler_pc_offset() { return byte_offset_of(JavaThread, _exception_handler_pc); }
static ByteSize exception_stack_size_offset() { return byte_offset_of(JavaThread, _exception_stack_size); }
- static ByteSize is_method_handle_exception_offset() { return byte_offset_of(JavaThread, _is_method_handle_exception); }
+ static ByteSize is_method_handle_return_offset() { return byte_offset_of(JavaThread, _is_method_handle_return); }
static ByteSize stack_guard_state_offset() { return byte_offset_of(JavaThread, _stack_guard_state ); }
static ByteSize suspend_flags_offset() { return byte_offset_of(JavaThread, _suspend_flags ); }
--- a/hotspot/src/share/vm/utilities/ostream.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/utilities/ostream.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -363,7 +363,7 @@
return _log_file != NULL;
}
-static const char* make_log_name(const char* log_name, const char* force_directory, char* buf) {
+static const char* make_log_name(const char* log_name, const char* force_directory) {
const char* basename = log_name;
char file_sep = os::file_separator()[0];
const char* cp;
@@ -374,6 +374,27 @@
}
const char* nametail = log_name;
+ // Compute buffer length
+ size_t buffer_length;
+ if (force_directory != NULL) {
+ buffer_length = strlen(force_directory) + strlen(os::file_separator()) +
+ strlen(basename) + 1;
+ } else {
+ buffer_length = strlen(log_name) + 1;
+ }
+
+ const char* star = strchr(basename, '*');
+ int star_pos = (star == NULL) ? -1 : (star - nametail);
+
+ char pid[32];
+ if (star_pos >= 0) {
+ jio_snprintf(pid, sizeof(pid), "%u", os::current_process_id());
+ buffer_length += strlen(pid);
+ }
+
+ // Create big enough buffer.
+ char *buf = NEW_C_HEAP_ARRAY(char, buffer_length);
+
strcpy(buf, "");
if (force_directory != NULL) {
strcat(buf, force_directory);
@@ -381,14 +402,11 @@
nametail = basename; // completely skip directory prefix
}
- const char* star = strchr(basename, '*');
- int star_pos = (star == NULL) ? -1 : (star - nametail);
-
if (star_pos >= 0) {
// convert foo*bar.log to foo123bar.log
int buf_pos = (int) strlen(buf);
strncpy(&buf[buf_pos], nametail, star_pos);
- sprintf(&buf[buf_pos + star_pos], "%u", os::current_process_id());
+ strcpy(&buf[buf_pos + star_pos], pid);
nametail += star_pos + 1; // skip prefix and star
}
@@ -399,20 +417,23 @@
void defaultStream::init_log() {
// %%% Need a MutexLocker?
const char* log_name = LogFile != NULL ? LogFile : "hotspot.log";
- char buf[O_BUFLEN*2];
- const char* try_name = make_log_name(log_name, NULL, buf);
+ const char* try_name = make_log_name(log_name, NULL);
fileStream* file = new(ResourceObj::C_HEAP) fileStream(try_name);
if (!file->is_open()) {
// Try again to open the file.
char warnbuf[O_BUFLEN*2];
- sprintf(warnbuf, "Warning: Cannot open log file: %s\n", try_name);
+ jio_snprintf(warnbuf, sizeof(warnbuf),
+ "Warning: Cannot open log file: %s\n", try_name);
// Note: This feature is for maintainer use only. No need for L10N.
jio_print(warnbuf);
- try_name = make_log_name("hs_pid*.log", os::get_temp_directory(), buf);
- sprintf(warnbuf, "Warning: Forcing option -XX:LogFile=%s\n", try_name);
+ FREE_C_HEAP_ARRAY(char, try_name);
+ try_name = make_log_name("hs_pid*.log", os::get_temp_directory());
+ jio_snprintf(warnbuf, sizeof(warnbuf),
+ "Warning: Forcing option -XX:LogFile=%s\n", try_name);
jio_print(warnbuf);
delete file;
file = new(ResourceObj::C_HEAP) fileStream(try_name);
+ FREE_C_HEAP_ARRAY(char, try_name);
}
if (file->is_open()) {
_log_file = file;
--- a/hotspot/src/share/vm/utilities/vmError.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/hotspot/src/share/vm/utilities/vmError.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -807,8 +807,8 @@
if (fd == -1) {
// try temp directory
const char * tmpdir = os::get_temp_directory();
- jio_snprintf(buffer, sizeof(buffer), "%shs_err_pid%u.log",
- (tmpdir ? tmpdir : ""), os::current_process_id());
+ jio_snprintf(buffer, sizeof(buffer), "%s%shs_err_pid%u.log",
+ tmpdir, os::file_separator(), os::current_process_id());
fd = open(buffer, O_WRONLY | O_CREAT | O_TRUNC, 0666);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/compiler/6892265/Test.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ *
+ */
+
+/**
+ * @test
+ * @bug 6892265
+ * @summary System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes
+ *
+ * @run main/othervm Test
+ */
+
+public class Test {
+ static final int NCOPY = 1;
+ static final int OVERFLOW = 1;
+ static int[] src2 = new int[NCOPY];
+ static int[] dst2;
+
+ static void test() {
+ int N;
+ int SIZE;
+
+ N = Integer.MAX_VALUE/4 + OVERFLOW;
+ System.arraycopy(src2, 0, dst2, N, NCOPY);
+ System.arraycopy(dst2, N, src2, 0, NCOPY);
+ }
+
+ public static void main(String[] args) {
+ try {
+ dst2 = new int[NCOPY + Integer.MAX_VALUE/4 + OVERFLOW];
+ } catch (OutOfMemoryError e) {
+ System.exit(95); // Not enough memory
+ }
+ System.out.println("warmup");
+ for (int i=0; i <11000; i++) {
+ test();
+ }
+ System.out.println("start");
+ for (int i=0; i <1000; i++) {
+ test();
+ }
+ System.out.println("finish");
+ }
+
+}
--- a/jaxp/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/jaxp/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
6c0ccabb430dacdcd4479f8b197980d5da4eeb66 jdk7-b85
81c0f115bbe5d3bcf59864465b5eca5538567c79 jdk7-b86
8b493f1aa136d86de0885fcba15262c4fa2b1412 jdk7-b87
+d8ebd15910034f2ba50b2f129f959f86cca01419 jdk7-b88
+d2818fd2b036f3b3154a9a7de41afcf4ac679c1b jdk7-b89
--- a/jaxws/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/jaxws/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
8424512588ff95362c1f1e5f11c6efd4e7f7db6e jdk7-b85
512b0e924a5ae0c0b7ad326182cae0dc0e4d1aa8 jdk7-b86
3febd6fab2ac8ffddbaf7bed00d11290262af153 jdk7-b87
+8c666f8f3565974e301ccb58b7538912551a6e26 jdk7-b88
+bf3675aa7f20fc6f241ce95760005aef2a30ff41 jdk7-b89
--- a/jdk/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -63,3 +63,4 @@
eae6e9ab26064d9ba0e7665dd646a1fd2506fcc1 jdk7-b86
2cafbbe9825e911a6ca6c17d9a18eb1f0bf0873c jdk7-b87
b3c69282f6d3c90ec21056cd1ab70dc0c895b069 jdk7-b88
+4a6abb7e224cc8d9a583c23c5782e4668739a119 jdk7-b89
--- a/jdk/make/sun/javazic/tzdata/VERSION Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/VERSION Tue Apr 20 01:24:48 2010 -0700
@@ -21,4 +21,4 @@
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
-tzdata2010b
+tzdata2010g
--- a/jdk/make/sun/javazic/tzdata/antarctica Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/antarctica Tue Apr 20 01:24:48 2010 -0700
@@ -79,6 +79,33 @@
Rule ChileAQ 1999 max - Oct Sun>=9 4:00u 1:00 S
Rule ChileAQ 2000 max - Mar Sun>=9 3:00u 0 -
+# These rules are stolen from the `australasia' file.
+Rule AusAQ 1917 only - Jan 1 0:01 1:00 -
+Rule AusAQ 1917 only - Mar 25 2:00 0 -
+Rule AusAQ 1942 only - Jan 1 2:00 1:00 -
+Rule AusAQ 1942 only - Mar 29 2:00 0 -
+Rule AusAQ 1942 only - Sep 27 2:00 1:00 -
+Rule AusAQ 1943 1944 - Mar lastSun 2:00 0 -
+Rule AusAQ 1943 only - Oct 3 2:00 1:00 -
+Rule ATAQ 1967 only - Oct Sun>=1 2:00s 1:00 -
+Rule ATAQ 1968 only - Mar lastSun 2:00s 0 -
+Rule ATAQ 1968 1985 - Oct lastSun 2:00s 1:00 -
+Rule ATAQ 1969 1971 - Mar Sun>=8 2:00s 0 -
+Rule ATAQ 1972 only - Feb lastSun 2:00s 0 -
+Rule ATAQ 1973 1981 - Mar Sun>=1 2:00s 0 -
+Rule ATAQ 1982 1983 - Mar lastSun 2:00s 0 -
+Rule ATAQ 1984 1986 - Mar Sun>=1 2:00s 0 -
+Rule ATAQ 1986 only - Oct Sun>=15 2:00s 1:00 -
+Rule ATAQ 1987 1990 - Mar Sun>=15 2:00s 0 -
+Rule ATAQ 1987 only - Oct Sun>=22 2:00s 1:00 -
+Rule ATAQ 1988 1990 - Oct lastSun 2:00s 1:00 -
+Rule ATAQ 1991 1999 - Oct Sun>=1 2:00s 1:00 -
+Rule ATAQ 1991 2005 - Mar lastSun 2:00s 0 -
+Rule ATAQ 2000 only - Aug lastSun 2:00s 1:00 -
+Rule ATAQ 2001 max - Oct Sun>=1 2:00s 1:00 -
+Rule ATAQ 2006 only - Apr Sun>=1 2:00s 0 -
+Rule ATAQ 2007 only - Mar lastSun 2:00s 0 -
+Rule ATAQ 2008 max - Apr Sun>=1 2:00s 0 -
# Argentina - year-round bases
# Belgrano II, Confin Coast, -770227-0343737, since 1972-02-05
@@ -120,20 +147,52 @@
# http://www.timeanddate.com/news/time/antarctica-new-times.html
# </a>
+# From Steffen Thorsen (2010-03-10):
+# We got these changes from the Australian Antarctic Division:
+# - Macquarie Island will stay on UTC+11 for winter and therefore not
+# switch back from daylight savings time when other parts of Australia do
+# on 4 April.
+#
+# - Casey station reverted to its normal time of UTC+8 on 5 March 2010.
+# The change to UTC+11 is being considered as a regular summer thing but
+# has not been decided yet.
+#
+# - Davis station will revert to its normal time of UTC+7 at 10 March 2010
+# 20:00 UTC.
+#
+# - Mawson station stays on UTC+5.
+#
+# In addition to the Rule changes for Casey/Davis, it means that Macquarie
+# will no longer be like Hobart and will have to have its own Zone created.
+#
+# Background:
+# <a href="http://www.timeanddate.com/news/time/antartica-time-changes-2010.html">
+# http://www.timeanddate.com/news/time/antartica-time-changes-2010.html
+# </a>
+
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Antarctica/Casey 0 - zzz 1969
8:00 - WST 2009 Oct 18 2:00
# Western (Aus) Standard Time
- 11:00 - CAST # Casey Time
+ 11:00 - CAST 2010 Mar 5 2:00
+ # Casey Time
+ 8:00 - WST
Zone Antarctica/Davis 0 - zzz 1957 Jan 13
7:00 - DAVT 1964 Nov # Davis Time
0 - zzz 1969 Feb
7:00 - DAVT 2009 Oct 18 2:00
- 5:00 - DAVT
+ 5:00 - DAVT 2010 Mar 10 20:00u
+ 7:00 - DAVT
Zone Antarctica/Mawson 0 - zzz 1954 Feb 13
6:00 - MAWT 2009 Oct 18 2:00
# Mawson Time
5:00 - MAWT
+Zone Antarctica/Macquarie 0 - zzz 1911
+ 10:00 - EST 1916 Oct 1 2:00
+ 10:00 1:00 EST 1917 Feb
+ 10:00 AusAQ EST 1967
+ 10:00 ATAQ EST 2010 Apr 4 3:00
+ 11:00 - MIST # Macquarie Island Time
# References:
# <a href="http://www.antdiv.gov.au/aad/exop/sfo/casey/casey_aws.html">
# Casey Weather (1998-02-26)
--- a/jdk/make/sun/javazic/tzdata/asia Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/asia Tue Apr 20 01:24:48 2010 -0700
@@ -236,22 +236,20 @@
# 2010 midnight. The decision came at a cabinet meeting at the Prime
# Minister's Office last night..."
-# From Danvin Ruangchan (2009-12-24):
-# ...the news mentions DST will be turned off again 7 months after March
-# 31st on Oct 31, 2010.
-
-# From Arthur David Olson (2009-12-26):
-# Indeed, "The government will advance again the Banglasdesh Standard
-# Time by one one hour on March 31 next year by enforcing the Daylight
-# Saving Time (DST) for seven months. It will continue till October 31
-# until further notice." I take that last sentence as the
-# establishment of a rule.
+# From Alexander Krivenyshev (2010-03-22):
+# According to Bangladesh newspaper "The Daily Star,"
+# Cabinet cancels Daylight Saving Time
+# <a href="http://www.thedailystar.net/newDesign/latest_news.php?nid=22817">
+# http://www.thedailystar.net/newDesign/latest_news.php?nid=22817
+# </a>
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html">
+# http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html
+# </a>
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Dhaka 2009 only - Jun 19 23:00 1:00 S
-Rule Dhaka 2010 only - Jan 1 0:00 0 -
-Rule Dhaka 2010 max - Mar 31 23:00 1:00 S
-Rule Dhaka 2010 max - Nov 1 0:00 0 -
+Rule Dhaka 2009 only - Dec 31 23:59 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Dhaka 6:01:40 - LMT 1890
@@ -2131,6 +2129,32 @@
# http://www.worldtimezone.com/dst_news/dst_news_gazastrip02.html
# </a>
+# From Alexander Krivenyshev (2010-03-19):
+# According to Voice of Palestine DST will last for 191 days, from March
+# 26, 2010 till "the last Sunday before the tenth day of Tishri
+# (October), each year" (October 03, 2010?)
+#
+# <a href="http://palvoice.org/forums/showthread.php?t=245697">
+# http://palvoice.org/forums/showthread.php?t=245697
+# </a>
+# (in Arabic)
+# or
+# <a href="http://www.worldtimezone.com/dst_news/dst_news_westbank03.html">
+# http://www.worldtimezone.com/dst_news/dst_news_westbank03.html
+# </a>
+
+# From Steffen Thorsen (2010-03-24):
+# ...Ma'an News Agency reports that Hamas cabinet has decided it will
+# start one day later, at 12:01am. Not sure if they really mean 12:01am or
+# noon though:
+#
+# <a href="http://www.maannews.net/eng/ViewDetails.aspx?ID=271178">
+# http://www.maannews.net/eng/ViewDetails.aspx?ID=271178
+# </a>
+# (Ma'an News Agency)
+# "At 12:01am Friday, clocks in Israel and the West Bank will change to
+# 1:01am, while Gaza clocks will change at 12:01am Saturday morning."
+
# The rules for Egypt are stolen from the `africa' file.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule EgyptAsia 1957 only - May 10 0:00 1:00 S
@@ -2148,7 +2172,8 @@
Rule Palestine 2006 only - Sep 22 0:00 0 -
Rule Palestine 2007 only - Sep Thu>=8 2:00 0 -
Rule Palestine 2008 only - Aug lastFri 2:00 0 -
-Rule Palestine 2009 max - Mar lastFri 0:00 1:00 S
+Rule Palestine 2009 only - Mar lastFri 0:00 1:00 S
+Rule Palestine 2010 max - Mar lastSat 0:01 1:00 S
Rule Palestine 2009 max - Sep Fri>=1 2:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -2440,9 +2465,18 @@
# Thursday of the month or the start of the last Friday of the month or
# something else. For now, use the start of the last Friday.
+# From Steffen Thorsen (2010-03-17):
+# The "Syrian News Station" reported on 2010-03-16 that the Council of
+# Ministers has decided that Syria will start DST on midnight Thursday
+# 2010-04-01: (midnight between Thursday and Friday):
+# <a href="http://sns.sy/sns/?path=news/read/11421">
+# http://sns.sy/sns/?path=news/read/11421 (Arabic)
+# </a>
+
Rule Syria 2008 only - Apr Fri>=1 0:00 1:00 S
Rule Syria 2008 only - Nov 1 0:00 0 -
-Rule Syria 2009 max - Mar lastFri 0:00 1:00 S
+Rule Syria 2009 only - Mar lastFri 0:00 1:00 S
+Rule Syria 2010 max - Apr Fri>=1 0:00 1:00 S
Rule Syria 2009 max - Oct lastFri 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
--- a/jdk/make/sun/javazic/tzdata/australasia Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/australasia Tue Apr 20 01:24:48 2010 -0700
@@ -289,11 +289,30 @@
# <a href="http://www.fiji.gov.fj/publish/page_16198.shtml">
# http://www.fiji.gov.fj/publish/page_16198.shtml
# </a>
+
+# From Steffen Thorsen (2010-03-03):
+# The Cabinet in Fiji has decided to end DST about a month early, on
+# 2010-03-28 at 03:00.
+# The plan is to observe DST again, from 2010-10-24 to sometime in March
+# 2011 (last Sunday a good guess?).
+#
+# Official source:
+# <a href="http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166">
+# http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=1096:3310-cabinet-approves-change-in-daylight-savings-dates&catid=49:cabinet-releases&Itemid=166
+# </a>
+#
+# A bit more background info here:
+# <a href="http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html">
+# http://www.timeanddate.com/news/time/fiji-dst-ends-march-2010.html
+# </a>
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S
Rule Fiji 1999 2000 - Feb lastSun 3:00 0 -
Rule Fiji 2009 only - Nov 29 2:00 1:00 S
-Rule Fiji 2010 only - Apr 25 3:00 0 -
+Rule Fiji 2010 only - Mar lastSun 3:00 0 -
+Rule Fiji 2010 only - Oct 24 2:00 1:00 S
+Rule Fiji 2011 only - Mar lastSun 3:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Pacific/Fiji 11:53:40 - LMT 1915 Oct 26 # Suva
12:00 Fiji FJ%sT # Fiji Time
@@ -471,70 +490,30 @@
# Samoa
-# From Alexander Krivenyshev (2008-12-06):
-# The Samoa government (Western Samoa) may implement DST on the first Sunday of
-# October 2009 (October 4, 2009) until the last Sunday of March 2010 (March 28,
-# 2010).
-#
-# "Selected Committee reports to Cabinet on Daylight Saving Time",
-# Government of Samoa:
-# <a href="http://www.govt.ws/pr_article.cfm?pr_id=560">
-# http://www.govt.ws/pr_article.cfm?pr_id=560
-# </a>
-# or
-# <a href="http://www.worldtimezone.com/dst_news/dst_news_samoa01.html">
-# http://www.worldtimezone.com/dst_news/dst_news_samoa01.html
-# </a>
-
-# From Steffen Thorsen (2009-08-27):
-# Samoa's parliament passed the Daylight Saving Bill 2009, and will start
-# daylight saving time on the first Sunday of October 2009 and end on the
-# last Sunday of March 2010. We hope that the full text will be published
-# soon, but we believe that the bill is only valid for 2009-2010. Samoa's
-# Daylight Saving Act 2009 will be enforced as soon as the Head of State
-# executes a proclamation publicizing this Act.
+# From Steffen Thorsen (2009-10-16):
+# We have been in contact with the government of Samoa again, and received
+# the following info:
#
-# Some background information here, which will be updated once we have
-# more details:
+# "Cabinet has now approved Daylight Saving to be effected next year
+# commencing from the last Sunday of September 2010 and conclude first
+# Sunday of April 2011."
+#
+# Background info:
# <a href="http://www.timeanddate.com/news/time/samoa-dst-plan-2009.html">
# http://www.timeanddate.com/news/time/samoa-dst-plan-2009.html
# </a>
-
-# From Alexander Krivenyshev (2009-10-03):
-# First, my deepest condolences to people of Samoa islands and all families and
-# loved ones around the world who lost their lives in the earthquake and tsunami.
#
-# Considering the recent devastation on Samoa by earthquake and tsunami and that
-# many government offices/ ministers are closed- not sure if "Daylight Saving
-# Bill 2009" will be implemented in next few days- on October 4, 2009.
-#
-# Here is reply from Consulate-General of Samoa in New Zealand
-# ---------------------------
-# Consul General
-# consulgeneral@samoaconsulate.org.nz
-#
-# Talofa Alexander,
-#
-# Thank you for your sympathy for our country but at this time we have not
-# been informed about the Daylight Savings Time Change. Most Ministries in
-# Apia are closed or relocating due to weather concerns.
-#
-# When we do find out if they are still proceeding with the time change we
-# will advise you soonest.
-#
-# Kind Regards,
-# Lana
-# for: Consul General
-
-# From Steffen Thorsen (2009-10-05):
-# We have called a hotel in Samoa and asked about local time there - they
-# are still on standard time.
+# Samoa's Daylight Saving Time Act 2009 is available here, but does not
+# contain any dates:
+# <a href="http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf">
+# http://www.parliament.gov.ws/documents/acts/Daylight%20Saving%20Act%20%202009%20%28English%29%20-%20Final%207-7-091.pdf
+# </a>
Zone Pacific/Apia 12:33:04 - LMT 1879 Jul 5
-11:26:56 - LMT 1911
-11:30 - SAMT 1950 # Samoa Time
- -11:00 - WST 2009 Oct 4
- -11:00 1:00 WSDT 2010 Mar 28
+ -11:00 - WST 2010 Sep 26
+ -11:00 1:00 WSDT 2011 Apr 3
-11:00 - WST
# Solomon Is
--- a/jdk/make/sun/javazic/tzdata/europe Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/europe Tue Apr 20 01:24:48 2010 -0700
@@ -2063,7 +2063,9 @@
3:00 Russia KUY%sT 1991 Mar 31 2:00s
2:00 Russia KUY%sT 1991 Sep 29 2:00s
3:00 - KUYT 1991 Oct 20 3:00
- 4:00 Russia SAM%sT # Samara Time
+ 4:00 Russia SAM%sT 2010 Mar 28 2:00s # Samara Time
+ 3:00 Russia SAM%sT
+
#
# From Oscar van Vlijmen (2001-08-25): [This region consists of]
# Respublika Bashkortostan, Komi-Permyatskij avtonomnyj okrug,
@@ -2216,7 +2218,8 @@
11:00 - PETT 1930 Jun 21 # P-K Time
12:00 Russia PET%sT 1991 Mar 31 2:00s
11:00 Russia PET%sT 1992 Jan 19 2:00s
- 12:00 Russia PET%sT
+ 12:00 Russia PET%sT 2010 Mar 28 2:00s
+ 11:00 Russia PET%sT
#
# Chukotskij avtonomnyj okrug
Zone Asia/Anadyr 11:49:56 - LMT 1924 May 2
@@ -2224,7 +2227,8 @@
13:00 Russia ANA%sT 1982 Apr 1 0:00s
12:00 Russia ANA%sT 1991 Mar 31 2:00s
11:00 Russia ANA%sT 1992 Jan 19 2:00s
- 12:00 Russia ANA%sT
+ 12:00 Russia ANA%sT 2010 Mar 28 2:00s
+ 11:00 Russia ANA%sT
# Serbia
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
--- a/jdk/make/sun/javazic/tzdata/southamerica Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/southamerica Tue Apr 20 01:24:48 2010 -0700
@@ -1143,6 +1143,18 @@
# http://www.shoa.cl/noticias/2008/04hora/hora.htm
# </a>.
+# From Angel Chiang (2010-03-04):
+# Subject: DST in Chile exceptionally extended to 3 April due to earthquake
+# <a href="http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098">
+# http://www.gobiernodechile.cl/viewNoticia.aspx?idArticulo=30098
+# </a>
+# (in Spanish, last paragraph).
+#
+# This is breaking news. There should be more information available later.
+
+# From Arthur Daivd Olson (2010-03-06):
+# Angel Chiang's message confirmed by Julio Pacheco; Julio provided a patch.
+
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Chile 1927 1932 - Sep 1 0:00 1:00 S
Rule Chile 1928 1932 - Apr 1 0:00 0 -
@@ -1177,7 +1189,9 @@
# N.B.: the end of March 29 in Chile is March 30 in Universal time,
# which is used below in specifying the transition.
Rule Chile 2008 only - Mar 30 3:00u 0 -
-Rule Chile 2009 max - Mar Sun>=9 3:00u 0 -
+Rule Chile 2009 only - Mar Sun>=9 3:00u 0 -
+Rule Chile 2010 only - Apr 4 3:00u 0 -
+Rule Chile 2011 max - Mar Sun>=9 3:00u 0 -
# IATA SSIM anomalies: (1992-02) says 1992-03-14;
# (1996-09) says 1998-03-08. Ignore these.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
@@ -1386,8 +1400,24 @@
# Decree 1,867 (2004-03-05)
# From Carlos Raul Perasso via Jesper Norgaard Welen (2006-10-13)
# <http://www.presidencia.gov.py/decretos/D1867.pdf>
-Rule Para 2004 max - Oct Sun>=15 0:00 1:00 S
-Rule Para 2005 max - Mar Sun>=8 0:00 0 -
+Rule Para 2004 2009 - Oct Sun>=15 0:00 1:00 S
+Rule Para 2005 2009 - Mar Sun>=8 0:00 0 -
+# From Carlos Raul Perasso (2010-02-18):
+# By decree number 3958 issued yesterday (
+# <a href="http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf">
+# http://www.presidencia.gov.py/v1/wp-content/uploads/2010/02/decreto3958.pdf
+# </a>
+# )
+# Paraguay changes its DST schedule, postponing the March rule to April and
+# modifying the October date. The decree reads:
+# ...
+# Art. 1. It is hereby established that from the second Sunday of the month of
+# April of this year (2010), the official time is to be set back 60 minutes,
+# and that on the first Sunday of the month of October, it is to be set
+# forward 60 minutes, in all the territory of the Paraguayan Republic.
+# ...
+Rule Para 2010 max - Oct Sun>=1 0:00 1:00 S
+Rule Para 2010 max - Apr Sun>=8 0:00 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/Asuncion -3:50:40 - LMT 1890
--- a/jdk/make/sun/javazic/tzdata/zone.tab Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/javazic/tzdata/zone.tab Tue Apr 20 01:24:48 2010 -0700
@@ -66,6 +66,7 @@
AQ -7824+10654 Antarctica/Vostok Vostok Station, S Magnetic Pole
AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie
AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I
+AQ -5430+15857 Antarctica/Macquarie Macquarie Island Station, Macquarie Island
AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF)
AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF)
AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN)
@@ -351,7 +352,7 @@
RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad
RU +5545+03735 Europe/Moscow Moscow+00 - west Russia
RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea
-RU +5312+05009 Europe/Samara Moscow+01 - Samara, Udmurtia
+RU +5312+05009 Europe/Samara Moscow - Samara, Udmurtia
RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals
RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia
RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk
@@ -362,8 +363,8 @@
RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River
RU +4658+14242 Asia/Sakhalin Moscow+07 - Sakhalin Island
RU +5934+15048 Asia/Magadan Moscow+08 - Magadan
-RU +5301+15839 Asia/Kamchatka Moscow+09 - Kamchatka
-RU +6445+17729 Asia/Anadyr Moscow+10 - Bering Sea
+RU +5301+15839 Asia/Kamchatka Moscow+08 - Kamchatka
+RU +6445+17729 Asia/Anadyr Moscow+08 - Bering Sea
RW -0157+03004 Africa/Kigali
SA +2438+04643 Asia/Riyadh
SB -0932+16012 Pacific/Guadalcanal
--- a/jdk/make/sun/nio/cs/FILES_java.gmk Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/nio/cs/FILES_java.gmk Tue Apr 20 01:24:48 2010 -0700
@@ -42,8 +42,6 @@
sun/io/ByteToCharBig5_Solaris.java \
sun/io/ByteToCharBig5_HKSCS.java \
sun/io/ByteToCharMS950_HKSCS.java \
- sun/io/ByteToCharHKSCS.java \
- sun/io/ByteToCharHKSCS_2001.java \
sun/io/ByteToCharGB18030.java \
sun/io/ByteToCharGB18030DB.java \
sun/io/ByteToCharCp037.java \
@@ -173,8 +171,6 @@
sun/io/CharToByteBig5.java \
sun/io/CharToByteBig5_Solaris.java \
sun/io/CharToByteBig5_HKSCS.java \
- sun/io/CharToByteHKSCS.java \
- sun/io/CharToByteHKSCS_2001.java \
sun/io/CharToByteMS950_HKSCS.java \
sun/io/CharToByteGB18030.java \
sun/io/CharToByteCp037.java \
@@ -374,6 +370,9 @@
sun/nio/cs/ext/MacUkraine.java \
sun/nio/cs/ext/TIS_620.java \
sun/nio/cs/ext/EUC_TWMapping.java \
+ sun/nio/cs/ext/HKSCSMapping.java \
+ sun/nio/cs/ext/HKSCS2001Mapping.java \
+ sun/nio/cs/ext/HKSCS_XPMapping.java \
sun/nio/cs/ext/IBM1381.java \
sun/nio/cs/ext/IBM1383.java \
sun/nio/cs/ext/IBM930.java \
@@ -394,7 +393,8 @@
sun/nio/cs/ext/MS936.java \
sun/nio/cs/ext/MS949.java \
sun/nio/cs/ext/MS950.java \
- sun/nio/cs/ext/GBK.java
+ sun/nio/cs/ext/GBK.java \
+ sun/nio/cs/ext/Big5.java
FILES_java = $(FILES_src) $(FILES_gen_extcs)
--- a/jdk/make/sun/nio/cs/Makefile Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/sun/nio/cs/Makefile Tue Apr 20 01:24:48 2010 -0700
@@ -93,7 +93,9 @@
$(MKDIR) -p $(GENCSEXT)
$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) extsbcs
$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) euctw \
- $(GENCSSRCDIR)/GenerateEUC_TW.java
+ $(GENCSSRCDIR)/EUC_TW.java
+ $(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) hkscs \
+ $(GENCSSRCDIR)/HKSCS.java
$(BOOT_JAVA_CMD) -jar $(CHARSETMAPPING_JARFILE) $(GENCSDATASRC) $(GENCSEXT) dbcs
$(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH): \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.c2b Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,8 @@
+#Add the following 5 characters which are duplicated
+#or have conflicts with other characters.
+0xA1C4 0xFF3F #REGWARN Fallback 0xA1C4 SPACING UNDERSCORE
+0xA2AC 0x2571 #REGWARN Fallback 0xA2AC LT DIAG UP RIGHT TO LOW LEFT
+0xA2AD 0x2572 #REGWARN Fallback 0xA2AD LT DIAG UP LEFT TO LOW RIGHT
+0xA451 0x5341 #REGWARN Fallback 0xA451 HANGZHOU NUMERAL TEN
+0xA4CA 0x5345 #REGWARN Fallback 0xA4CA HANGZHOU NUMERAL THIRTY
+#
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.map Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,13837 @@
+# From Big5.b2c
+# Added sb
+# Added Big5.b2c-irreversible
+#
+0x00 0x0000
+0x01 0x0001
+0x02 0x0002
+0x03 0x0003
+0x04 0x0004
+0x05 0x0005
+0x06 0x0006
+0x07 0x0007
+0x08 0x0008
+0x09 0x0009
+0x0a 0x000a
+0x0b 0x000b
+0x0c 0x000c
+0x0d 0x000d
+0x0e 0x000e
+0x0f 0x000f
+0x10 0x0010
+0x11 0x0011
+0x12 0x0012
+0x13 0x0013
+0x14 0x0014
+0x15 0x0015
+0x16 0x0016
+0x17 0x0017
+0x18 0x0018
+0x19 0x0019
+0x1a 0x001a
+0x1b 0x001b
+0x1c 0x001c
+0x1d 0x001d
+0x1e 0x001e
+0x1f 0x001f
+0x20 0x0020 # SPACE
+0x21 0x0021 # EXCLAMATION MARK
+0x22 0x0022 # QUOTATION MARK
+0x23 0x0023 # NUMBER SIGN
+0x24 0x0024 # DOLLAR SIGN
+0x25 0x0025 # PERCENT SIGN
+0x26 0x0026 # AMPERSAND
+0x27 0x0027 # APOSTROPHE
+0x28 0x0028 # LEFT PARENTHESIS
+0x29 0x0029 # RIGHT PARENTHESIS
+0x2A 0x002A # ASTERISK
+0x2B 0x002B # PLUS SIGN
+0x2C 0x002C # COMMA
+0x2D 0x002D # HYPHEN-MINUS
+0x2E 0x002E # FULL STOP
+0x2F 0x002F # SOLIDUS
+0x30 0x0030 # DIGIT ZERO
+0x31 0x0031 # DIGIT ONE
+0x32 0x0032 # DIGIT TWO
+0x33 0x0033 # DIGIT THREE
+0x34 0x0034 # DIGIT FOUR
+0x35 0x0035 # DIGIT FIVE
+0x36 0x0036 # DIGIT SIX
+0x37 0x0037 # DIGIT SEVEN
+0x38 0x0038 # DIGIT EIGHT
+0x39 0x0039 # DIGIT NINE
+0x3A 0x003A # COLON
+0x3B 0x003B # SEMICOLON
+0x3C 0x003C # LESS-THAN SIGN
+0x3D 0x003D # EQUALS SIGN
+0x3E 0x003E # GREATER-THAN SIGN
+0x3F 0x003F # QUESTION MARK
+0x40 0x0040 # COMMERCIAL AT
+0x41 0x0041 # LATIN CAPITAL LETTER A
+0x42 0x0042 # LATIN CAPITAL LETTER B
+0x43 0x0043 # LATIN CAPITAL LETTER C
+0x44 0x0044 # LATIN CAPITAL LETTER D
+0x45 0x0045 # LATIN CAPITAL LETTER E
+0x46 0x0046 # LATIN CAPITAL LETTER F
+0x47 0x0047 # LATIN CAPITAL LETTER G
+0x48 0x0048 # LATIN CAPITAL LETTER H
+0x49 0x0049 # LATIN CAPITAL LETTER I
+0x4A 0x004A # LATIN CAPITAL LETTER J
+0x4B 0x004B # LATIN CAPITAL LETTER K
+0x4C 0x004C # LATIN CAPITAL LETTER L
+0x4D 0x004D # LATIN CAPITAL LETTER M
+0x4E 0x004E # LATIN CAPITAL LETTER N
+0x4F 0x004F # LATIN CAPITAL LETTER O
+0x50 0x0050 # LATIN CAPITAL LETTER P
+0x51 0x0051 # LATIN CAPITAL LETTER Q
+0x52 0x0052 # LATIN CAPITAL LETTER R
+0x53 0x0053 # LATIN CAPITAL LETTER S
+0x54 0x0054 # LATIN CAPITAL LETTER T
+0x55 0x0055 # LATIN CAPITAL LETTER U
+0x56 0x0056 # LATIN CAPITAL LETTER V
+0x57 0x0057 # LATIN CAPITAL LETTER W
+0x58 0x0058 # LATIN CAPITAL LETTER X
+0x59 0x0059 # LATIN CAPITAL LETTER Y
+0x5A 0x005A # LATIN CAPITAL LETTER Z
+0x5B 0x005B # LEFT SQUARE BRACKET
+0x5C 0x005C # WON SIGN
+0x5D 0x005D # RIGHT SQUARE BRACKET
+0x5E 0x005E # CIRCUMFLEX ACCENT
+0x5F 0x005F # LOW LINE
+0x60 0x0060 # GRAVE ACCENT
+0x61 0x0061 # LATIN SMALL LETTER A
+0x62 0x0062 # LATIN SMALL LETTER B
+0x63 0x0063 # LATIN SMALL LETTER C
+0x64 0x0064 # LATIN SMALL LETTER D
+0x65 0x0065 # LATIN SMALL LETTER E
+0x66 0x0066 # LATIN SMALL LETTER F
+0x67 0x0067 # LATIN SMALL LETTER G
+0x68 0x0068 # LATIN SMALL LETTER H
+0x69 0x0069 # LATIN SMALL LETTER I
+0x6A 0x006A # LATIN SMALL LETTER J
+0x6B 0x006B # LATIN SMALL LETTER K
+0x6C 0x006C # LATIN SMALL LETTER L
+0x6D 0x006D # LATIN SMALL LETTER M
+0x6E 0x006E # LATIN SMALL LETTER N
+0x6F 0x006F # LATIN SMALL LETTER O
+0x70 0x0070 # LATIN SMALL LETTER P
+0x71 0x0071 # LATIN SMALL LETTER Q
+0x72 0x0072 # LATIN SMALL LETTER R
+0x73 0x0073 # LATIN SMALL LETTER S
+0x74 0x0074 # LATIN SMALL LETTER T
+0x75 0x0075 # LATIN SMALL LETTER U
+0x76 0x0076 # LATIN SMALL LETTER V
+0x77 0x0077 # LATIN SMALL LETTER W
+0x78 0x0078 # LATIN SMALL LETTER X
+0x79 0x0079 # LATIN SMALL LETTER Y
+0x7A 0x007A # LATIN SMALL LETTER Z
+0x7B 0x007B # LEFT CURLY BRACKET
+0x7C 0x007C # VERTICAL LINE
+0x7D 0x007D # RIGHT CURLY BRACKET
+0x7E 0x007E # TILDE
+0x7F 0x007F
+#
+0xA140 0x3000 # IDEOGRAPHIC SPACE
+0xA141 0xFF0C # FULLWIDTH COMMA
+0xA142 0x3001 # IDEOGRAPHIC COMMA
+0xA143 0x3002 # IDEOGRAPHIC FULL STOP
+0xA144 0xFF0E # FULLWIDTH FULL STOP
+0xA145 0x2022 # BULLET
+0xA146 0xFF1B # FULLWIDTH SEMICOLON
+0xA147 0xFF1A # FULLWIDTH COLON
+0xA148 0xFF1F # FULLWIDTH QUESTION MARK
+0xA149 0xFF01 # FULLWIDTH EXCLAMATION MARK
+0xA14A 0xFE30 # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+0xA14B 0x2026 # HORIZONTAL ELLIPSIS
+0xA14C 0x2025 # TWO DOT LEADER
+0xA14D 0xFE50 # SMALL COMMA
+0xA14E 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA
+0xA14F 0xFE52 # SMALL FULL STOP
+0xA150 0x00B7 # MIDDLE DOT
+0xA151 0xFE54 # SMALL SEMICOLON
+0xA152 0xFE55 # SMALL COLON
+0xA153 0xFE56 # SMALL QUESTION MARK
+0xA154 0xFE57 # SMALL EXCLAMATION MARK
+0xA155 0xFF5C # FULLWIDTH VERTICAL BAR
+0xA156 0x2013 # EN DASH
+0xA157 0xFE31 # PRESENTATION FORM FOR VERTICAL EM DASH
+0xA158 0x2014 # EM DASH
+0xA159 0xFE33 # PRESENTATION FORM FOR VERTICAL LOW LINE
+0xA15B 0xFE34 # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+0xA15C 0xFE4F # WAVY LOW LINE
+0xA15D 0xFF08 # FULLWIDTH LEFT PARENTHESIS
+0xA15E 0xFF09 # FULLWIDTH RIGHT PARENTHESIS
+0xA15F 0xFE35 # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+0xA160 0xFE36 # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+0xA161 0xFF5B # FULLWIDTH LEFT CURLY BRACKET
+0xA162 0xFF5D # FULLWIDTH RIGHT CURLY BRACKET
+0xA163 0xFE37 # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+0xA164 0xFE38 # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+0xA165 0x3014 # LEFT TORTOISE SHELL BRACKET
+0xA166 0x3015 # RIGHT TORTOISE SHELL BRACKET
+0xA167 0xFE39 # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+0xA168 0xFE3A # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+0xA169 0x3010 # LEFT BLACK LENTICULAR BRACKET
+0xA16A 0x3011 # RIGHT BLACK LENTICULAR BRACKET
+0xA16B 0xFE3B # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+0xA16C 0xFE3C # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+0xA16D 0x300A # LEFT DOUBLE ANGLE BRACKET
+0xA16E 0x300B # RIGHT DOUBLE ANGLE BRACKET
+0xA16F 0xFE3D # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+0xA170 0xFE3E # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+0xA171 0x3008 # LEFT ANGLE BRACKET
+0xA172 0x3009 # RIGHT ANGLE BRACKET
+0xA173 0xFE3F # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+0xA174 0xFE40 # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+0xA175 0x300C # LEFT CORNER BRACKET
+0xA176 0x300D # RIGHT CORNER BRACKET
+0xA177 0xFE41 # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+0xA178 0xFE42 # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+0xA179 0x300E # LEFT WHITE CORNER BRACKET
+0xA17A 0x300F # RIGHT WHITE CORNER BRACKET
+0xA17B 0xFE43 # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+0xA17C 0xFE44 # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+0xA17D 0xFE59 # SMALL LEFT PARENTHESIS
+0xA17E 0xFE5A # SMALL RIGHT PARENTHESIS
+0xA1A1 0xFE5B # SMALL LEFT CURLY BRACKET
+0xA1A2 0xFE5C # SMALL RIGHT CURLY BRACKET
+0xA1A3 0xFE5D # SMALL LEFT TORTOISE SHELL BRACKET
+0xA1A4 0xFE5E # SMALL RIGHT TORTOISE SHELL BRACKET
+0xA1A5 0x2018 # LEFT SINGLE QUOTATION MARK
+0xA1A6 0x2019 # RIGHT SINGLE QUOTATION MARK
+0xA1A7 0x201C # LEFT DOUBLE QUOTATION MARK
+0xA1A8 0x201D # RIGHT DOUBLE QUOTATION MARK
+0xA1A9 0x301D # REVERSED DOUBLE PRIME QUOTATION MARK
+0xA1AA 0x301E # DOUBLE PRIME QUOTATION MARK
+0xA1AB 0x2035 # REVERSED PRIME
+0xA1AC 0x2032 # PRIME
+0xA1AD 0xFF03 # FULLWIDTH NUMBER SIGN
+0xA1AE 0xFF06 # FULLWIDTH AMPERSAND
+0xA1AF 0xFF0A # FULLWIDTH ASTERISK
+0xA1B0 0x203B # REFERENCE MARK
+0xA1B1 0x00A7 # SECTION SIGN
+0xA1B2 0x3003 # DITTO MARK
+0xA1B3 0x25CB # WHITE CIRCLE
+0xA1B4 0x25CF # BLACK CIRCLE
+0xA1B5 0x25B3 # WHITE UP-POINTING TRIANGLE
+0xA1B6 0x25B2 # BLACK UP-POINTING TRIANGLE
+0xA1B7 0x25CE # BULLSEYE
+0xA1B8 0x2606 # WHITE STAR
+0xA1B9 0x2605 # BLACK STAR
+0xA1BA 0x25C7 # WHITE DIAMOND
+0xA1BB 0x25C6 # BLACK DIAMOND
+0xA1BC 0x25A1 # WHITE SQUARE
+0xA1BD 0x25A0 # BLACK SQUARE
+0xA1BE 0x25BD # WHITE DOWN-POINTING TRIANGLE
+0xA1BF 0x25BC # BLACK DOWN-POINTING TRIANGLE
+0xA1C0 0x32A3 # CIRCLED IDEOGRAPH CORRECT
+0xA1C1 0x2105 # CARE OF
+0xA1C2 0x203E # OVERLINE
+0xA1C6 0xFE49 # DASHED OVERLINE
+0xA1C7 0xFE4A # CENTRELINE OVERLINE
+0xA1C8 0xFE4D # DASHED LOW LINE
+0xA1C9 0xFE4E # CENTRELINE LOW LINE
+0xA1CA 0xFE4B # WAVY OVERLINE
+0xA1CB 0xFE4C # DOUBLE WAVY OVERLINE
+0xA1CC 0xFE5F # SMALL NUMBER SIGN
+0xA1CD 0xFE60 # SMALL AMPERSAND
+0xA1CE 0xFE61 # SMALL ASTERISK
+0xA1CF 0xFF0B # FULLWIDTH PLUS SIGN
+0xA1D0 0xFF0D # FULLWIDTH HYPHEN-MINUS
+0xA1D1 0x00D7 # MULTIPLICATION SIGN
+0xA1D2 0x00F7 # DIVISION SIGN
+0xA1D3 0x00B1 # PLUS-MINUS SIGN
+0xA1D4 0x221A # SQUARE ROOT
+0xA1D5 0xFF1C # FULLWIDTH LESS-THAN SIGN
+0xA1D6 0xFF1E # FULLWIDTH GREATER-THAN SIGN
+0xA1D7 0xFF1D # FULLWIDTH EQUALS SIGN
+0xA1D8 0x2266 # LESS THAN OVER EQUAL TO
+0xA1D9 0x2267 # GREATER THAN OVER EQUAL TO
+0xA1DA 0x2260 # NOT EQUAL TO
+0xA1DB 0x221E # INFINITY
+0xA1DC 0x2252 # APPROXIMATELY EQUAL TO OR THE IMAGE OF
+0xA1DD 0x2261 # IDENTICAL TO
+0xA1DE 0xFE62 # SMALL PLUS SIGN
+0xA1DF 0xFE63 # SMALL HYPHEN-MINUS
+0xA1E0 0xFE64 # SMALL LESS-THAN SIGN
+0xA1E1 0xFE65 # SMALL GREATER-THAN SIGN
+0xA1E2 0xFE66 # SMALL EQUALS SIGN
+0xA1E3 0x223C # TILDE OPERATOR
+0xA1E4 0x2229 # INTERSECTION
+0xA1E5 0x222A # UNION
+0xA1E6 0x22A5 # UP TACK
+0xA1E7 0x2220 # ANGLE
+0xA1E8 0x221F # RIGHT ANGLE
+0xA1E9 0x22BF # RIGHT TRIANGLE
+0xA1EA 0x33D2 # SQUARE LOG
+0xA1EB 0x33D1 # SQUARE LN
+0xA1EC 0x222B # INTEGRAL
+0xA1ED 0x222E # CONTOUR INTEGRAL
+0xA1EE 0x2235 # BECAUSE
+0xA1EF 0x2234 # THEREFORE
+0xA1F0 0x2640 # FEMALE SIGN
+0xA1F1 0x2642 # MALE SIGN
+0xA1F2 0x2641 # EARTH
+0xA1F3 0x2609 # SUN
+0xA1F4 0x2191 # UPWARDS ARROW
+0xA1F5 0x2193 # DOWNWARDS ARROW
+0xA1F6 0x2190 # LEFTWARDS ARROW
+0xA1F7 0x2192 # RIGHTWARDS ARROW
+0xA1F8 0x2196 # NORTH WEST ARROW
+0xA1F9 0x2197 # NORTH EAST ARROW
+0xA1FA 0x2199 # SOUTH WEST ARROW
+0xA1FB 0x2198 # SOUTH EAST ARROW
+0xA1FC 0x2225 # PARALLEL TO
+0xA1FD 0x2223 # DIVIDES
+0xA241 0xFF0F # FULLWIDTH SOLIDUS
+0xA242 0xFF3C # FULLWIDTH REVERSE SOLIDUS
+0xA243 0xFF04 # FULLWIDTH DOLLAR SIGN
+0xA244 0x00A5 # YEN SIGN
+0xA245 0x3012 # POSTAL MARK
+0xA246 0x00A2 # CENT SIGN
+0xA247 0x00A3 # POUND SIGN
+0xA248 0xFF05 # FULLWIDTH PERCENT SIGN
+0xA249 0xFF20 # FULLWIDTH COMMERCIAL AT
+0xA24A 0x2103 # DEGREE CELSIUS
+0xA24B 0x2109 # DEGREE FAHRENHEIT
+0xA24C 0xFE69 # SMALL DOLLAR SIGN
+0xA24D 0xFE6A # SMALL PERCENT SIGN
+0xA24E 0xFE6B # SMALL COMMERCIAL AT
+0xA24F 0x33D5 # SQUARE MIL
+0xA250 0x339C # SQUARE MM
+0xA251 0x339D # SQUARE CM
+0xA252 0x339E # SQUARE KM
+0xA253 0x33CE # SQUARE KM CAPITAL
+0xA254 0x33A1 # SQUARE M SQUARED
+0xA255 0x338E # SQUARE MG
+0xA256 0x338F # SQUARE KG
+0xA257 0x33C4 # SQUARE CC
+0xA258 0x00B0 # DEGREE SIGN
+0xA259 0x5159 # <CJK>
+0xA25A 0x515B # <CJK>
+0xA25B 0x515E # <CJK>
+0xA25C 0x515D # <CJK>
+0xA25D 0x5161 # <CJK>
+0xA25E 0x5163 # <CJK>
+0xA25F 0x55E7 # <CJK>
+0xA260 0x74E9 # <CJK>
+0xA261 0x7CCE # <CJK>
+0xA262 0x2581 # LOWER ONE EIGHTH BLOCK
+0xA263 0x2582 # LOWER ONE QUARTER BLOCK
+0xA264 0x2583 # LOWER THREE EIGHTHS BLOCK
+0xA265 0x2584 # LOWER HALF BLOCK
+0xA266 0x2585 # LOWER FIVE EIGHTHS BLOCK
+0xA267 0x2586 # LOWER THREE QUARTERS BLOCK
+0xA268 0x2587 # LOWER SEVEN EIGHTHS BLOCK
+0xA269 0x2588 # FULL BLOCK
+0xA26A 0x258F # LEFT ONE EIGHTH BLOCK
+0xA26B 0x258E # LEFT ONE QUARTER BLOCK
+0xA26C 0x258D # LEFT THREE EIGHTHS BLOCK
+0xA26D 0x258C # LEFT HALF BLOCK
+0xA26E 0x258B # LEFT FIVE EIGHTHS BLOCK
+0xA26F 0x258A # LEFT THREE QUARTERS BLOCK
+0xA270 0x2589 # LEFT SEVEN EIGHTHS BLOCK
+0xA271 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xA272 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xA273 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xA274 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xA275 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xA276 0x2594 # UPPER ONE EIGHTH BLOCK
+0xA277 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
+0xA278 0x2502 # BOX DRAWINGS LIGHT VERTICAL
+0xA279 0x2595 # RIGHT ONE EIGHTH BLOCK
+0xA27A 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xA27B 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
+0xA27C 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
+0xA27D 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
+0xA27E 0x256D # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT
+0xA2A1 0x256E # BOX DRAWINGS LIGHT ARC DOWN AND LEFT
+0xA2A2 0x2570 # BOX DRAWINGS LIGHT ARC UP AND RIGHT
+0xA2A3 0x256F # BOX DRAWINGS LIGHT ARC UP AND LEFT
+0xA2A4 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
+0xA2A5 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
+0xA2A6 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
+0xA2A7 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
+0xA2A8 0x25E2 # BLACK LOWER RIGHT TRIANGLE
+0xA2A9 0x25E3 # BLACK LOWER LEFT TRIANGLE
+0xA2AA 0x25E5 # BLACK UPPER RIGHT TRIANGLE
+0xA2AB 0x25E4 # BLACK UPPER LEFT TRIANGLE
+0xA2AE 0x2573 # BOX DRAWINGS LIGHT DIAGONAL CROSS
+0xA2AF 0xFF10 # FULLWIDTH DIGIT ZERO
+0xA2B0 0xFF11 # FULLWIDTH DIGIT ONE
+0xA2B1 0xFF12 # FULLWIDTH DIGIT TWO
+0xA2B2 0xFF13 # FULLWIDTH DIGIT THREE
+0xA2B3 0xFF14 # FULLWIDTH DIGIT FOUR
+0xA2B4 0xFF15 # FULLWIDTH DIGIT FIVE
+0xA2B5 0xFF16 # FULLWIDTH DIGIT SIX
+0xA2B6 0xFF17 # FULLWIDTH DIGIT SEVEN
+0xA2B7 0xFF18 # FULLWIDTH DIGIT EIGHT
+0xA2B8 0xFF19 # FULLWIDTH DIGIT NINE
+0xA2B9 0x2160 # ROMAN NUMERAL ONE
+0xA2BA 0x2161 # ROMAN NUMERAL TWO
+0xA2BB 0x2162 # ROMAN NUMERAL THREE
+0xA2BC 0x2163 # ROMAN NUMERAL FOUR
+0xA2BD 0x2164 # ROMAN NUMERAL FIVE
+0xA2BE 0x2165 # ROMAN NUMERAL SIX
+0xA2BF 0x2166 # ROMAN NUMERAL SEVEN
+0xA2C0 0x2167 # ROMAN NUMERAL EIGHT
+0xA2C1 0x2168 # ROMAN NUMERAL NINE
+0xA2C2 0x2169 # ROMAN NUMERAL TEN
+0xA2C3 0x3021 # HANGZHOU NUMERAL ONE
+0xA2C4 0x3022 # HANGZHOU NUMERAL TWO
+0xA2C5 0x3023 # HANGZHOU NUMERAL THREE
+0xA2C6 0x3024 # HANGZHOU NUMERAL FOUR
+0xA2C7 0x3025 # HANGZHOU NUMERAL FIVE
+0xA2C8 0x3026 # HANGZHOU NUMERAL SIX
+0xA2C9 0x3027 # HANGZHOU NUMERAL SEVEN
+0xA2CA 0x3028 # HANGZHOU NUMERAL EIGHT
+0xA2CB 0x3029 # HANGZHOU NUMERAL NINE
+0xA2CD 0x5344 # <CJK>
+0xA2CF 0xFF21 # FULLWIDTH LATIN CAPITAL LETTER A
+0xA2D0 0xFF22 # FULLWIDTH LATIN CAPITAL LETTER B
+0xA2D1 0xFF23 # FULLWIDTH LATIN CAPITAL LETTER C
+0xA2D2 0xFF24 # FULLWIDTH LATIN CAPITAL LETTER D
+0xA2D3 0xFF25 # FULLWIDTH LATIN CAPITAL LETTER E
+0xA2D4 0xFF26 # FULLWIDTH LATIN CAPITAL LETTER F
+0xA2D5 0xFF27 # FULLWIDTH LATIN CAPITAL LETTER G
+0xA2D6 0xFF28 # FULLWIDTH LATIN CAPITAL LETTER H
+0xA2D7 0xFF29 # FULLWIDTH LATIN CAPITAL LETTER I
+0xA2D8 0xFF2A # FULLWIDTH LATIN CAPITAL LETTER J
+0xA2D9 0xFF2B # FULLWIDTH LATIN CAPITAL LETTER K
+0xA2DA 0xFF2C # FULLWIDTH LATIN CAPITAL LETTER L
+0xA2DB 0xFF2D # FULLWIDTH LATIN CAPITAL LETTER M
+0xA2DC 0xFF2E # FULLWIDTH LATIN CAPITAL LETTER N
+0xA2DD 0xFF2F # FULLWIDTH LATIN CAPITAL LETTER O
+0xA2DE 0xFF30 # FULLWIDTH LATIN CAPITAL LETTER P
+0xA2DF 0xFF31 # FULLWIDTH LATIN CAPITAL LETTER Q
+0xA2E0 0xFF32 # FULLWIDTH LATIN CAPITAL LETTER R
+0xA2E1 0xFF33 # FULLWIDTH LATIN CAPITAL LETTER S
+0xA2E2 0xFF34 # FULLWIDTH LATIN CAPITAL LETTER T
+0xA2E3 0xFF35 # FULLWIDTH LATIN CAPITAL LETTER U
+0xA2E4 0xFF36 # FULLWIDTH LATIN CAPITAL LETTER V
+0xA2E5 0xFF37 # FULLWIDTH LATIN CAPITAL LETTER W
+0xA2E6 0xFF38 # FULLWIDTH LATIN CAPITAL LETTER X
+0xA2E7 0xFF39 # FULLWIDTH LATIN CAPITAL LETTER Y
+0xA2E8 0xFF3A # FULLWIDTH LATIN CAPITAL LETTER Z
+0xA2E9 0xFF41 # FULLWIDTH LATIN SMALL LETTER A
+0xA2EA 0xFF42 # FULLWIDTH LATIN SMALL LETTER B
+0xA2EB 0xFF43 # FULLWIDTH LATIN SMALL LETTER C
+0xA2EC 0xFF44 # FULLWIDTH LATIN SMALL LETTER D
+0xA2ED 0xFF45 # FULLWIDTH LATIN SMALL LETTER E
+0xA2EE 0xFF46 # FULLWIDTH LATIN SMALL LETTER F
+0xA2EF 0xFF47 # FULLWIDTH LATIN SMALL LETTER G
+0xA2F0 0xFF48 # FULLWIDTH LATIN SMALL LETTER H
+0xA2F1 0xFF49 # FULLWIDTH LATIN SMALL LETTER I
+0xA2F2 0xFF4A # FULLWIDTH LATIN SMALL LETTER J
+0xA2F3 0xFF4B # FULLWIDTH LATIN SMALL LETTER K
+0xA2F4 0xFF4C # FULLWIDTH LATIN SMALL LETTER L
+0xA2F5 0xFF4D # FULLWIDTH LATIN SMALL LETTER M
+0xA2F6 0xFF4E # FULLWIDTH LATIN SMALL LETTER N
+0xA2F7 0xFF4F # FULLWIDTH LATIN SMALL LETTER O
+0xA2F8 0xFF50 # FULLWIDTH LATIN SMALL LETTER P
+0xA2F9 0xFF51 # FULLWIDTH LATIN SMALL LETTER Q
+0xA2FA 0xFF52 # FULLWIDTH LATIN SMALL LETTER R
+0xA2FB 0xFF53 # FULLWIDTH LATIN SMALL LETTER S
+0xA2FC 0xFF54 # FULLWIDTH LATIN SMALL LETTER T
+0xA2FD 0xFF55 # FULLWIDTH LATIN SMALL LETTER U
+0xA2FE 0xFF56 # FULLWIDTH LATIN SMALL LETTER V
+0xA340 0xFF57 # FULLWIDTH LATIN SMALL LETTER W
+0xA341 0xFF58 # FULLWIDTH LATIN SMALL LETTER X
+0xA342 0xFF59 # FULLWIDTH LATIN SMALL LETTER Y
+0xA343 0xFF5A # FULLWIDTH LATIN SMALL LETTER Z
+0xA344 0x0391 # GREEK CAPITAL LETTER ALPHA
+0xA345 0x0392 # GREEK CAPITAL LETTER BETA
+0xA346 0x0393 # GREEK CAPITAL LETTER GAMMA
+0xA347 0x0394 # GREEK CAPITAL LETTER DELTA
+0xA348 0x0395 # GREEK CAPITAL LETTER EPSILON
+0xA349 0x0396 # GREEK CAPITAL LETTER ZETA
+0xA34A 0x0397 # GREEK CAPITAL LETTER ETA
+0xA34B 0x0398 # GREEK CAPITAL LETTER THETA
+0xA34C 0x0399 # GREEK CAPITAL LETTER IOTA
+0xA34D 0x039A # GREEK CAPITAL LETTER KAPPA
+0xA34E 0x039B # GREEK CAPITAL LETTER LAMDA
+0xA34F 0x039C # GREEK CAPITAL LETTER MU
+0xA350 0x039D # GREEK CAPITAL LETTER NU
+0xA351 0x039E # GREEK CAPITAL LETTER XI
+0xA352 0x039F # GREEK CAPITAL LETTER OMICRON
+0xA353 0x03A0 # GREEK CAPITAL LETTER PI
+0xA354 0x03A1 # GREEK CAPITAL LETTER RHO
+0xA355 0x03A3 # GREEK CAPITAL LETTER SIGMA
+0xA356 0x03A4 # GREEK CAPITAL LETTER TAU
+0xA357 0x03A5 # GREEK CAPITAL LETTER UPSILON
+0xA358 0x03A6 # GREEK CAPITAL LETTER PHI
+0xA359 0x03A7 # GREEK CAPITAL LETTER CHI
+0xA35A 0x03A8 # GREEK CAPITAL LETTER PSI
+0xA35B 0x03A9 # GREEK CAPITAL LETTER OMEGA
+0xA35C 0x03B1 # GREEK SMALL LETTER ALPHA
+0xA35D 0x03B2 # GREEK SMALL LETTER BETA
+0xA35E 0x03B3 # GREEK SMALL LETTER GAMMA
+0xA35F 0x03B4 # GREEK SMALL LETTER DELTA
+0xA360 0x03B5 # GREEK SMALL LETTER EPSILON
+0xA361 0x03B6 # GREEK SMALL LETTER ZETA
+0xA362 0x03B7 # GREEK SMALL LETTER ETA
+0xA363 0x03B8 # GREEK SMALL LETTER THETA
+0xA364 0x03B9 # GREEK SMALL LETTER IOTA
+0xA365 0x03BA # GREEK SMALL LETTER KAPPA
+0xA366 0x03BB # GREEK SMALL LETTER LAMDA
+0xA367 0x03BC # GREEK SMALL LETTER MU
+0xA368 0x03BD # GREEK SMALL LETTER NU
+0xA369 0x03BE # GREEK SMALL LETTER XI
+0xA36A 0x03BF # GREEK SMALL LETTER OMICRON
+0xA36B 0x03C0 # GREEK SMALL LETTER PI
+0xA36C 0x03C1 # GREEK SMALL LETTER RHO
+0xA36D 0x03C3 # GREEK SMALL LETTER SIGMA
+0xA36E 0x03C4 # GREEK SMALL LETTER TAU
+0xA36F 0x03C5 # GREEK SMALL LETTER UPSILON
+0xA370 0x03C6 # GREEK SMALL LETTER PHI
+0xA371 0x03C7 # GREEK SMALL LETTER CHI
+0xA372 0x03C8 # GREEK SMALL LETTER PSI
+0xA373 0x03C9 # GREEK SMALL LETTER OMEGA
+0xA374 0x3105 # BOPOMOFO LETTER B
+0xA375 0x3106 # BOPOMOFO LETTER P
+0xA376 0x3107 # BOPOMOFO LETTER M
+0xA377 0x3108 # BOPOMOFO LETTER F
+0xA378 0x3109 # BOPOMOFO LETTER D
+0xA379 0x310A # BOPOMOFO LETTER T
+0xA37A 0x310B # BOPOMOFO LETTER N
+0xA37B 0x310C # BOPOMOFO LETTER L
+0xA37C 0x310D # BOPOMOFO LETTER G
+0xA37D 0x310E # BOPOMOFO LETTER K
+0xA37E 0x310F # BOPOMOFO LETTER H
+0xA3A1 0x3110 # BOPOMOFO LETTER J
+0xA3A2 0x3111 # BOPOMOFO LETTER Q
+0xA3A3 0x3112 # BOPOMOFO LETTER X
+0xA3A4 0x3113 # BOPOMOFO LETTER ZH
+0xA3A5 0x3114 # BOPOMOFO LETTER CH
+0xA3A6 0x3115 # BOPOMOFO LETTER SH
+0xA3A7 0x3116 # BOPOMOFO LETTER R
+0xA3A8 0x3117 # BOPOMOFO LETTER Z
+0xA3A9 0x3118 # BOPOMOFO LETTER C
+0xA3AA 0x3119 # BOPOMOFO LETTER S
+0xA3AB 0x311A # BOPOMOFO LETTER A
+0xA3AC 0x311B # BOPOMOFO LETTER O
+0xA3AD 0x311C # BOPOMOFO LETTER E
+0xA3AE 0x311D # BOPOMOFO LETTER EH
+0xA3AF 0x311E # BOPOMOFO LETTER AI
+0xA3B0 0x311F # BOPOMOFO LETTER EI
+0xA3B1 0x3120 # BOPOMOFO LETTER AU
+0xA3B2 0x3121 # BOPOMOFO LETTER OU
+0xA3B3 0x3122 # BOPOMOFO LETTER AN
+0xA3B4 0x3123 # BOPOMOFO LETTER EN
+0xA3B5 0x3124 # BOPOMOFO LETTER ANG
+0xA3B6 0x3125 # BOPOMOFO LETTER ENG
+0xA3B7 0x3126 # BOPOMOFO LETTER ER
+0xA3B8 0x3127 # BOPOMOFO LETTER I
+0xA3B9 0x3128 # BOPOMOFO LETTER U
+0xA3BA 0x3129 # BOPOMOFO LETTER IU
+0xA3BB 0x02D9 # DOT ABOVE (Mandarin Chinese light tone)
+0xA3BC 0x02C9 # MODIFIER LETTER MACRON (Mandarin Chinese first tone)
+0xA3BD 0x02CA # MODIFIER LETTER ACUTE ACCENT (Mandarin Chinese second tone)
+0xA3BE 0x02C7 # CARON (Mandarin Chinese third tone)
+0xA3BF 0x02CB # MODIFIER LETTER GRAVE ACCENT (Mandarin Chinese fourth tone)
+0xA440 0x4E00 # <CJK>
+0xA441 0x4E59 # <CJK>
+0xA442 0x4E01 # <CJK>
+0xA443 0x4E03 # <CJK>
+0xA444 0x4E43 # <CJK>
+0xA445 0x4E5D # <CJK>
+0xA446 0x4E86 # <CJK>
+0xA447 0x4E8C # <CJK>
+0xA448 0x4EBA # <CJK>
+0xA449 0x513F # <CJK>
+0xA44A 0x5165 # <CJK>
+0xA44B 0x516B # <CJK>
+0xA44C 0x51E0 # <CJK>
+0xA44D 0x5200 # <CJK>
+0xA44E 0x5201 # <CJK>
+0xA44F 0x529B # <CJK>
+0xA450 0x5315 # <CJK>
+0xA452 0x535C # <CJK>
+0xA453 0x53C8 # <CJK>
+0xA454 0x4E09 # <CJK>
+0xA455 0x4E0B # <CJK>
+0xA456 0x4E08 # <CJK>
+0xA457 0x4E0A # <CJK>
+0xA458 0x4E2B # <CJK>
+0xA459 0x4E38 # <CJK>
+0xA45A 0x51E1 # <CJK>
+0xA45B 0x4E45 # <CJK>
+0xA45C 0x4E48 # <CJK>
+0xA45D 0x4E5F # <CJK>
+0xA45E 0x4E5E # <CJK>
+0xA45F 0x4E8E # <CJK>
+0xA460 0x4EA1 # <CJK>
+0xA461 0x5140 # <CJK>
+0xA462 0x5203 # <CJK>
+0xA463 0x52FA # <CJK>
+0xA464 0x5343 # <CJK>
+0xA465 0x53C9 # <CJK>
+0xA466 0x53E3 # <CJK>
+0xA467 0x571F # <CJK>
+0xA468 0x58EB # <CJK>
+0xA469 0x5915 # <CJK>
+0xA46A 0x5927 # <CJK>
+0xA46B 0x5973 # <CJK>
+0xA46C 0x5B50 # <CJK>
+0xA46D 0x5B51 # <CJK>
+0xA46E 0x5B53 # <CJK>
+0xA46F 0x5BF8 # <CJK>
+0xA470 0x5C0F # <CJK>
+0xA471 0x5C22 # <CJK>
+0xA472 0x5C38 # <CJK>
+0xA473 0x5C71 # <CJK>
+0xA474 0x5DDD # <CJK>
+0xA475 0x5DE5 # <CJK>
+0xA476 0x5DF1 # <CJK>
+0xA477 0x5DF2 # <CJK>
+0xA478 0x5DF3 # <CJK>
+0xA479 0x5DFE # <CJK>
+0xA47A 0x5E72 # <CJK>
+0xA47B 0x5EFE # <CJK>
+0xA47C 0x5F0B # <CJK>
+0xA47D 0x5F13 # <CJK>
+0xA47E 0x624D # <CJK>
+0xA4A1 0x4E11 # <CJK>
+0xA4A2 0x4E10 # <CJK>
+0xA4A3 0x4E0D # <CJK>
+0xA4A4 0x4E2D # <CJK>
+0xA4A5 0x4E30 # <CJK>
+0xA4A6 0x4E39 # <CJK>
+0xA4A7 0x4E4B # <CJK>
+0xA4A8 0x5C39 # <CJK>
+0xA4A9 0x4E88 # <CJK>
+0xA4AA 0x4E91 # <CJK>
+0xA4AB 0x4E95 # <CJK>
+0xA4AC 0x4E92 # <CJK>
+0xA4AD 0x4E94 # <CJK>
+0xA4AE 0x4EA2 # <CJK>
+0xA4AF 0x4EC1 # <CJK>
+0xA4B0 0x4EC0 # <CJK>
+0xA4B1 0x4EC3 # <CJK>
+0xA4B2 0x4EC6 # <CJK>
+0xA4B3 0x4EC7 # <CJK>
+0xA4B4 0x4ECD # <CJK>
+0xA4B5 0x4ECA # <CJK>
+0xA4B6 0x4ECB # <CJK>
+0xA4B7 0x4EC4 # <CJK>
+0xA4B8 0x5143 # <CJK>
+0xA4B9 0x5141 # <CJK>
+0xA4BA 0x5167 # <CJK>
+0xA4BB 0x516D # <CJK>
+0xA4BC 0x516E # <CJK>
+0xA4BD 0x516C # <CJK>
+0xA4BE 0x5197 # <CJK>
+0xA4BF 0x51F6 # <CJK>
+0xA4C0 0x5206 # <CJK>
+0xA4C1 0x5207 # <CJK>
+0xA4C2 0x5208 # <CJK>
+0xA4C3 0x52FB # <CJK>
+0xA4C4 0x52FE # <CJK>
+0xA4C5 0x52FF # <CJK>
+0xA4C6 0x5316 # <CJK>
+0xA4C7 0x5339 # <CJK>
+0xA4C8 0x5348 # <CJK>
+0xA4C9 0x5347 # <CJK>
+0xA4CB 0x535E # <CJK>
+0xA4CC 0x5384 # <CJK>
+0xA4CD 0x53CB # <CJK>
+0xA4CE 0x53CA # <CJK>
+0xA4CF 0x53CD # <CJK>
+0xA4D0 0x58EC # <CJK>
+0xA4D1 0x5929 # <CJK>
+0xA4D2 0x592B # <CJK>
+0xA4D3 0x592A # <CJK>
+0xA4D4 0x592D # <CJK>
+0xA4D5 0x5B54 # <CJK>
+0xA4D6 0x5C11 # <CJK>
+0xA4D7 0x5C24 # <CJK>
+0xA4D8 0x5C3A # <CJK>
+0xA4D9 0x5C6F # <CJK>
+0xA4DA 0x5DF4 # <CJK>
+0xA4DB 0x5E7B # <CJK>
+0xA4DC 0x5EFF # <CJK>
+0xA4DD 0x5F14 # <CJK>
+0xA4DE 0x5F15 # <CJK>
+0xA4DF 0x5FC3 # <CJK>
+0xA4E0 0x6208 # <CJK>
+0xA4E1 0x6236 # <CJK>
+0xA4E2 0x624B # <CJK>
+0xA4E3 0x624E # <CJK>
+0xA4E4 0x652F # <CJK>
+0xA4E5 0x6587 # <CJK>
+0xA4E6 0x6597 # <CJK>
+0xA4E7 0x65A4 # <CJK>
+0xA4E8 0x65B9 # <CJK>
+0xA4E9 0x65E5 # <CJK>
+0xA4EA 0x66F0 # <CJK>
+0xA4EB 0x6708 # <CJK>
+0xA4EC 0x6728 # <CJK>
+0xA4ED 0x6B20 # <CJK>
+0xA4EE 0x6B62 # <CJK>
+0xA4EF 0x6B79 # <CJK>
+0xA4F0 0x6BCB # <CJK>
+0xA4F1 0x6BD4 # <CJK>
+0xA4F2 0x6BDB # <CJK>
+0xA4F3 0x6C0F # <CJK>
+0xA4F4 0x6C34 # <CJK>
+0xA4F5 0x706B # <CJK>
+0xA4F6 0x722A # <CJK>
+0xA4F7 0x7236 # <CJK>
+0xA4F8 0x723B # <CJK>
+0xA4F9 0x7247 # <CJK>
+0xA4FA 0x7259 # <CJK>
+0xA4FB 0x725B # <CJK>
+0xA4FC 0x72AC # <CJK>
+0xA4FD 0x738B # <CJK>
+0xA4FE 0x4E19 # <CJK>
+0xA540 0x4E16 # <CJK>
+0xA541 0x4E15 # <CJK>
+0xA542 0x4E14 # <CJK>
+0xA543 0x4E18 # <CJK>
+0xA544 0x4E3B # <CJK>
+0xA545 0x4E4D # <CJK>
+0xA546 0x4E4F # <CJK>
+0xA547 0x4E4E # <CJK>
+0xA548 0x4EE5 # <CJK>
+0xA549 0x4ED8 # <CJK>
+0xA54A 0x4ED4 # <CJK>
+0xA54B 0x4ED5 # <CJK>
+0xA54C 0x4ED6 # <CJK>
+0xA54D 0x4ED7 # <CJK>
+0xA54E 0x4EE3 # <CJK>
+0xA54F 0x4EE4 # <CJK>
+0xA550 0x4ED9 # <CJK>
+0xA551 0x4EDE # <CJK>
+0xA552 0x5145 # <CJK>
+0xA553 0x5144 # <CJK>
+0xA554 0x5189 # <CJK>
+0xA555 0x518A # <CJK>
+0xA556 0x51AC # <CJK>
+0xA557 0x51F9 # <CJK>
+0xA558 0x51FA # <CJK>
+0xA559 0x51F8 # <CJK>
+0xA55A 0x520A # <CJK>
+0xA55B 0x52A0 # <CJK>
+0xA55C 0x529F # <CJK>
+0xA55D 0x5305 # <CJK>
+0xA55E 0x5306 # <CJK>
+0xA55F 0x5317 # <CJK>
+0xA560 0x531D # <CJK>
+0xA561 0x4EDF # <CJK>
+0xA562 0x534A # <CJK>
+0xA563 0x5349 # <CJK>
+0xA564 0x5361 # <CJK>
+0xA565 0x5360 # <CJK>
+0xA566 0x536F # <CJK>
+0xA567 0x536E # <CJK>
+0xA568 0x53BB # <CJK>
+0xA569 0x53EF # <CJK>
+0xA56A 0x53E4 # <CJK>
+0xA56B 0x53F3 # <CJK>
+0xA56C 0x53EC # <CJK>
+0xA56D 0x53EE # <CJK>
+0xA56E 0x53E9 # <CJK>
+0xA56F 0x53E8 # <CJK>
+0xA570 0x53FC # <CJK>
+0xA571 0x53F8 # <CJK>
+0xA572 0x53F5 # <CJK>
+0xA573 0x53EB # <CJK>
+0xA574 0x53E6 # <CJK>
+0xA575 0x53EA # <CJK>
+0xA576 0x53F2 # <CJK>
+0xA577 0x53F1 # <CJK>
+0xA578 0x53F0 # <CJK>
+0xA579 0x53E5 # <CJK>
+0xA57A 0x53ED # <CJK>
+0xA57B 0x53FB # <CJK>
+0xA57C 0x56DB # <CJK>
+0xA57D 0x56DA # <CJK>
+0xA57E 0x5916 # <CJK>
+0xA5A1 0x592E # <CJK>
+0xA5A2 0x5931 # <CJK>
+0xA5A3 0x5974 # <CJK>
+0xA5A4 0x5976 # <CJK>
+0xA5A5 0x5B55 # <CJK>
+0xA5A6 0x5B83 # <CJK>
+0xA5A7 0x5C3C # <CJK>
+0xA5A8 0x5DE8 # <CJK>
+0xA5A9 0x5DE7 # <CJK>
+0xA5AA 0x5DE6 # <CJK>
+0xA5AB 0x5E02 # <CJK>
+0xA5AC 0x5E03 # <CJK>
+0xA5AD 0x5E73 # <CJK>
+0xA5AE 0x5E7C # <CJK>
+0xA5AF 0x5F01 # <CJK>
+0xA5B0 0x5F18 # <CJK>
+0xA5B1 0x5F17 # <CJK>
+0xA5B2 0x5FC5 # <CJK>
+0xA5B3 0x620A # <CJK>
+0xA5B4 0x6253 # <CJK>
+0xA5B5 0x6254 # <CJK>
+0xA5B6 0x6252 # <CJK>
+0xA5B7 0x6251 # <CJK>
+0xA5B8 0x65A5 # <CJK>
+0xA5B9 0x65E6 # <CJK>
+0xA5BA 0x672E # <CJK>
+0xA5BB 0x672C # <CJK>
+0xA5BC 0x672A # <CJK>
+0xA5BD 0x672B # <CJK>
+0xA5BE 0x672D # <CJK>
+0xA5BF 0x6B63 # <CJK>
+0xA5C0 0x6BCD # <CJK>
+0xA5C1 0x6C11 # <CJK>
+0xA5C2 0x6C10 # <CJK>
+0xA5C3 0x6C38 # <CJK>
+0xA5C4 0x6C41 # <CJK>
+0xA5C5 0x6C40 # <CJK>
+0xA5C6 0x6C3E # <CJK>
+0xA5C7 0x72AF # <CJK>
+0xA5C8 0x7384 # <CJK>
+0xA5C9 0x7389 # <CJK>
+0xA5CA 0x74DC # <CJK>
+0xA5CB 0x74E6 # <CJK>
+0xA5CC 0x7518 # <CJK>
+0xA5CD 0x751F # <CJK>
+0xA5CE 0x7528 # <CJK>
+0xA5CF 0x7529 # <CJK>
+0xA5D0 0x7530 # <CJK>
+0xA5D1 0x7531 # <CJK>
+0xA5D2 0x7532 # <CJK>
+0xA5D3 0x7533 # <CJK>
+0xA5D4 0x758B # <CJK>
+0xA5D5 0x767D # <CJK>
+0xA5D6 0x76AE # <CJK>
+0xA5D7 0x76BF # <CJK>
+0xA5D8 0x76EE # <CJK>
+0xA5D9 0x77DB # <CJK>
+0xA5DA 0x77E2 # <CJK>
+0xA5DB 0x77F3 # <CJK>
+0xA5DC 0x793A # <CJK>
+0xA5DD 0x79BE # <CJK>
+0xA5DE 0x7A74 # <CJK>
+0xA5DF 0x7ACB # <CJK>
+0xA5E0 0x4E1E # <CJK>
+0xA5E1 0x4E1F # <CJK>
+0xA5E2 0x4E52 # <CJK>
+0xA5E3 0x4E53 # <CJK>
+0xA5E4 0x4E69 # <CJK>
+0xA5E5 0x4E99 # <CJK>
+0xA5E6 0x4EA4 # <CJK>
+0xA5E7 0x4EA6 # <CJK>
+0xA5E8 0x4EA5 # <CJK>
+0xA5E9 0x4EFF # <CJK>
+0xA5EA 0x4F09 # <CJK>
+0xA5EB 0x4F19 # <CJK>
+0xA5EC 0x4F0A # <CJK>
+0xA5ED 0x4F15 # <CJK>
+0xA5EE 0x4F0D # <CJK>
+0xA5EF 0x4F10 # <CJK>
+0xA5F0 0x4F11 # <CJK>
+0xA5F1 0x4F0F # <CJK>
+0xA5F2 0x4EF2 # <CJK>
+0xA5F3 0x4EF6 # <CJK>
+0xA5F4 0x4EFB # <CJK>
+0xA5F5 0x4EF0 # <CJK>
+0xA5F6 0x4EF3 # <CJK>
+0xA5F7 0x4EFD # <CJK>
+0xA5F8 0x4F01 # <CJK>
+0xA5F9 0x4F0B # <CJK>
+0xA5FA 0x5149 # <CJK>
+0xA5FB 0x5147 # <CJK>
+0xA5FC 0x5146 # <CJK>
+0xA5FD 0x5148 # <CJK>
+0xA5FE 0x5168 # <CJK>
+0xA640 0x5171 # <CJK>
+0xA641 0x518D # <CJK>
+0xA642 0x51B0 # <CJK>
+0xA643 0x5217 # <CJK>
+0xA644 0x5211 # <CJK>
+0xA645 0x5212 # <CJK>
+0xA646 0x520E # <CJK>
+0xA647 0x5216 # <CJK>
+0xA648 0x52A3 # <CJK>
+0xA649 0x5308 # <CJK>
+0xA64A 0x5321 # <CJK>
+0xA64B 0x5320 # <CJK>
+0xA64C 0x5370 # <CJK>
+0xA64D 0x5371 # <CJK>
+0xA64E 0x5409 # <CJK>
+0xA64F 0x540F # <CJK>
+0xA650 0x540C # <CJK>
+0xA651 0x540A # <CJK>
+0xA652 0x5410 # <CJK>
+0xA653 0x5401 # <CJK>
+0xA654 0x540B # <CJK>
+0xA655 0x5404 # <CJK>
+0xA656 0x5411 # <CJK>
+0xA657 0x540D # <CJK>
+0xA658 0x5408 # <CJK>
+0xA659 0x5403 # <CJK>
+0xA65A 0x540E # <CJK>
+0xA65B 0x5406 # <CJK>
+0xA65C 0x5412 # <CJK>
+0xA65D 0x56E0 # <CJK>
+0xA65E 0x56DE # <CJK>
+0xA65F 0x56DD # <CJK>
+0xA660 0x5733 # <CJK>
+0xA661 0x5730 # <CJK>
+0xA662 0x5728 # <CJK>
+0xA663 0x572D # <CJK>
+0xA664 0x572C # <CJK>
+0xA665 0x572F # <CJK>
+0xA666 0x5729 # <CJK>
+0xA667 0x5919 # <CJK>
+0xA668 0x591A # <CJK>
+0xA669 0x5937 # <CJK>
+0xA66A 0x5938 # <CJK>
+0xA66B 0x5984 # <CJK>
+0xA66C 0x5978 # <CJK>
+0xA66D 0x5983 # <CJK>
+0xA66E 0x597D # <CJK>
+0xA66F 0x5979 # <CJK>
+0xA670 0x5982 # <CJK>
+0xA671 0x5981 # <CJK>
+0xA672 0x5B57 # <CJK>
+0xA673 0x5B58 # <CJK>
+0xA674 0x5B87 # <CJK>
+0xA675 0x5B88 # <CJK>
+0xA676 0x5B85 # <CJK>
+0xA677 0x5B89 # <CJK>
+0xA678 0x5BFA # <CJK>
+0xA679 0x5C16 # <CJK>
+0xA67A 0x5C79 # <CJK>
+0xA67B 0x5DDE # <CJK>
+0xA67C 0x5E06 # <CJK>
+0xA67D 0x5E76 # <CJK>
+0xA67E 0x5E74 # <CJK>
+0xA6A1 0x5F0F # <CJK>
+0xA6A2 0x5F1B # <CJK>
+0xA6A3 0x5FD9 # <CJK>
+0xA6A4 0x5FD6 # <CJK>
+0xA6A5 0x620E # <CJK>
+0xA6A6 0x620C # <CJK>
+0xA6A7 0x620D # <CJK>
+0xA6A8 0x6210 # <CJK>
+0xA6A9 0x6263 # <CJK>
+0xA6AA 0x625B # <CJK>
+0xA6AB 0x6258 # <CJK>
+0xA6AC 0x6536 # <CJK>
+0xA6AD 0x65E9 # <CJK>
+0xA6AE 0x65E8 # <CJK>
+0xA6AF 0x65EC # <CJK>
+0xA6B0 0x65ED # <CJK>
+0xA6B1 0x66F2 # <CJK>
+0xA6B2 0x66F3 # <CJK>
+0xA6B3 0x6709 # <CJK>
+0xA6B4 0x673D # <CJK>
+0xA6B5 0x6734 # <CJK>
+0xA6B6 0x6731 # <CJK>
+0xA6B7 0x6735 # <CJK>
+0xA6B8 0x6B21 # <CJK>
+0xA6B9 0x6B64 # <CJK>
+0xA6BA 0x6B7B # <CJK>
+0xA6BB 0x6C16 # <CJK>
+0xA6BC 0x6C5D # <CJK>
+0xA6BD 0x6C57 # <CJK>
+0xA6BE 0x6C59 # <CJK>
+0xA6BF 0x6C5F # <CJK>
+0xA6C0 0x6C60 # <CJK>
+0xA6C1 0x6C50 # <CJK>
+0xA6C2 0x6C55 # <CJK>
+0xA6C3 0x6C61 # <CJK>
+0xA6C4 0x6C5B # <CJK>
+0xA6C5 0x6C4D # <CJK>
+0xA6C6 0x6C4E # <CJK>
+0xA6C7 0x7070 # <CJK>
+0xA6C8 0x725F # <CJK>
+0xA6C9 0x725D # <CJK>
+0xA6CA 0x767E # <CJK>
+0xA6CB 0x7AF9 # <CJK>
+0xA6CC 0x7C73 # <CJK>
+0xA6CD 0x7CF8 # <CJK>
+0xA6CE 0x7F36 # <CJK>
+0xA6CF 0x7F8A # <CJK>
+0xA6D0 0x7FBD # <CJK>
+0xA6D1 0x8001 # <CJK>
+0xA6D2 0x8003 # <CJK>
+0xA6D3 0x800C # <CJK>
+0xA6D4 0x8012 # <CJK>
+0xA6D5 0x8033 # <CJK>
+0xA6D6 0x807F # <CJK>
+0xA6D7 0x8089 # <CJK>
+0xA6D8 0x808B # <CJK>
+0xA6D9 0x808C # <CJK>
+0xA6DA 0x81E3 # <CJK>
+0xA6DB 0x81EA # <CJK>
+0xA6DC 0x81F3 # <CJK>
+0xA6DD 0x81FC # <CJK>
+0xA6DE 0x820C # <CJK>
+0xA6DF 0x821B # <CJK>
+0xA6E0 0x821F # <CJK>
+0xA6E1 0x826E # <CJK>
+0xA6E2 0x8272 # <CJK>
+0xA6E3 0x827E # <CJK>
+0xA6E4 0x866B # <CJK>
+0xA6E5 0x8840 # <CJK>
+0xA6E6 0x884C # <CJK>
+0xA6E7 0x8863 # <CJK>
+0xA6E8 0x897F # <CJK>
+0xA6E9 0x9621 # <CJK>
+0xA6EA 0x4E32 # <CJK>
+0xA6EB 0x4EA8 # <CJK>
+0xA6EC 0x4F4D # <CJK>
+0xA6ED 0x4F4F # <CJK>
+0xA6EE 0x4F47 # <CJK>
+0xA6EF 0x4F57 # <CJK>
+0xA6F0 0x4F5E # <CJK>
+0xA6F1 0x4F34 # <CJK>
+0xA6F2 0x4F5B # <CJK>
+0xA6F3 0x4F55 # <CJK>
+0xA6F4 0x4F30 # <CJK>
+0xA6F5 0x4F50 # <CJK>
+0xA6F6 0x4F51 # <CJK>
+0xA6F7 0x4F3D # <CJK>
+0xA6F8 0x4F3A # <CJK>
+0xA6F9 0x4F38 # <CJK>
+0xA6FA 0x4F43 # <CJK>
+0xA6FB 0x4F54 # <CJK>
+0xA6FC 0x4F3C # <CJK>
+0xA6FD 0x4F46 # <CJK>
+0xA6FE 0x4F63 # <CJK>
+0xA740 0x4F5C # <CJK>
+0xA741 0x4F60 # <CJK>
+0xA742 0x4F2F # <CJK>
+0xA743 0x4F4E # <CJK>
+0xA744 0x4F36 # <CJK>
+0xA745 0x4F59 # <CJK>
+0xA746 0x4F5D # <CJK>
+0xA747 0x4F48 # <CJK>
+0xA748 0x4F5A # <CJK>
+0xA749 0x514C # <CJK>
+0xA74A 0x514B # <CJK>
+0xA74B 0x514D # <CJK>
+0xA74C 0x5175 # <CJK>
+0xA74D 0x51B6 # <CJK>
+0xA74E 0x51B7 # <CJK>
+0xA74F 0x5225 # <CJK>
+0xA750 0x5224 # <CJK>
+0xA751 0x5229 # <CJK>
+0xA752 0x522A # <CJK>
+0xA753 0x5228 # <CJK>
+0xA754 0x52AB # <CJK>
+0xA755 0x52A9 # <CJK>
+0xA756 0x52AA # <CJK>
+0xA757 0x52AC # <CJK>
+0xA758 0x5323 # <CJK>
+0xA759 0x5373 # <CJK>
+0xA75A 0x5375 # <CJK>
+0xA75B 0x541D # <CJK>
+0xA75C 0x542D # <CJK>
+0xA75D 0x541E # <CJK>
+0xA75E 0x543E # <CJK>
+0xA75F 0x5426 # <CJK>
+0xA760 0x544E # <CJK>
+0xA761 0x5427 # <CJK>
+0xA762 0x5446 # <CJK>
+0xA763 0x5443 # <CJK>
+0xA764 0x5433 # <CJK>
+0xA765 0x5448 # <CJK>
+0xA766 0x5442 # <CJK>
+0xA767 0x541B # <CJK>
+0xA768 0x5429 # <CJK>
+0xA769 0x544A # <CJK>
+0xA76A 0x5439 # <CJK>
+0xA76B 0x543B # <CJK>
+0xA76C 0x5438 # <CJK>
+0xA76D 0x542E # <CJK>
+0xA76E 0x5435 # <CJK>
+0xA76F 0x5436 # <CJK>
+0xA770 0x5420 # <CJK>
+0xA771 0x543C # <CJK>
+0xA772 0x5440 # <CJK>
+0xA773 0x5431 # <CJK>
+0xA774 0x542B # <CJK>
+0xA775 0x541F # <CJK>
+0xA776 0x542C # <CJK>
+0xA777 0x56EA # <CJK>
+0xA778 0x56F0 # <CJK>
+0xA779 0x56E4 # <CJK>
+0xA77A 0x56EB # <CJK>
+0xA77B 0x574A # <CJK>
+0xA77C 0x5751 # <CJK>
+0xA77D 0x5740 # <CJK>
+0xA77E 0x574D # <CJK>
+0xA7A1 0x5747 # <CJK>
+0xA7A2 0x574E # <CJK>
+0xA7A3 0x573E # <CJK>
+0xA7A4 0x5750 # <CJK>
+0xA7A5 0x574F # <CJK>
+0xA7A6 0x573B # <CJK>
+0xA7A7 0x58EF # <CJK>
+0xA7A8 0x593E # <CJK>
+0xA7A9 0x599D # <CJK>
+0xA7AA 0x5992 # <CJK>
+0xA7AB 0x59A8 # <CJK>
+0xA7AC 0x599E # <CJK>
+0xA7AD 0x59A3 # <CJK>
+0xA7AE 0x5999 # <CJK>
+0xA7AF 0x5996 # <CJK>
+0xA7B0 0x598D # <CJK>
+0xA7B1 0x59A4 # <CJK>
+0xA7B2 0x5993 # <CJK>
+0xA7B3 0x598A # <CJK>
+0xA7B4 0x59A5 # <CJK>
+0xA7B5 0x5B5D # <CJK>
+0xA7B6 0x5B5C # <CJK>
+0xA7B7 0x5B5A # <CJK>
+0xA7B8 0x5B5B # <CJK>
+0xA7B9 0x5B8C # <CJK>
+0xA7BA 0x5B8B # <CJK>
+0xA7BB 0x5B8F # <CJK>
+0xA7BC 0x5C2C # <CJK>
+0xA7BD 0x5C40 # <CJK>
+0xA7BE 0x5C41 # <CJK>
+0xA7BF 0x5C3F # <CJK>
+0xA7C0 0x5C3E # <CJK>
+0xA7C1 0x5C90 # <CJK>
+0xA7C2 0x5C91 # <CJK>
+0xA7C3 0x5C94 # <CJK>
+0xA7C4 0x5C8C # <CJK>
+0xA7C5 0x5DEB # <CJK>
+0xA7C6 0x5E0C # <CJK>
+0xA7C7 0x5E8F # <CJK>
+0xA7C8 0x5E87 # <CJK>
+0xA7C9 0x5E8A # <CJK>
+0xA7CA 0x5EF7 # <CJK>
+0xA7CB 0x5F04 # <CJK>
+0xA7CC 0x5F1F # <CJK>
+0xA7CD 0x5F64 # <CJK>
+0xA7CE 0x5F62 # <CJK>
+0xA7CF 0x5F77 # <CJK>
+0xA7D0 0x5F79 # <CJK>
+0xA7D1 0x5FD8 # <CJK>
+0xA7D2 0x5FCC # <CJK>
+0xA7D3 0x5FD7 # <CJK>
+0xA7D4 0x5FCD # <CJK>
+0xA7D5 0x5FF1 # <CJK>
+0xA7D6 0x5FEB # <CJK>
+0xA7D7 0x5FF8 # <CJK>
+0xA7D8 0x5FEA # <CJK>
+0xA7D9 0x6212 # <CJK>
+0xA7DA 0x6211 # <CJK>
+0xA7DB 0x6284 # <CJK>
+0xA7DC 0x6297 # <CJK>
+0xA7DD 0x6296 # <CJK>
+0xA7DE 0x6280 # <CJK>
+0xA7DF 0x6276 # <CJK>
+0xA7E0 0x6289 # <CJK>
+0xA7E1 0x626D # <CJK>
+0xA7E2 0x628A # <CJK>
+0xA7E3 0x627C # <CJK>
+0xA7E4 0x627E # <CJK>
+0xA7E5 0x6279 # <CJK>
+0xA7E6 0x6273 # <CJK>
+0xA7E7 0x6292 # <CJK>
+0xA7E8 0x626F # <CJK>
+0xA7E9 0x6298 # <CJK>
+0xA7EA 0x626E # <CJK>
+0xA7EB 0x6295 # <CJK>
+0xA7EC 0x6293 # <CJK>
+0xA7ED 0x6291 # <CJK>
+0xA7EE 0x6286 # <CJK>
+0xA7EF 0x6539 # <CJK>
+0xA7F0 0x653B # <CJK>
+0xA7F1 0x6538 # <CJK>
+0xA7F2 0x65F1 # <CJK>
+0xA7F3 0x66F4 # <CJK>
+0xA7F4 0x675F # <CJK>
+0xA7F5 0x674E # <CJK>
+0xA7F6 0x674F # <CJK>
+0xA7F7 0x6750 # <CJK>
+0xA7F8 0x6751 # <CJK>
+0xA7F9 0x675C # <CJK>
+0xA7FA 0x6756 # <CJK>
+0xA7FB 0x675E # <CJK>
+0xA7FC 0x6749 # <CJK>
+0xA7FD 0x6746 # <CJK>
+0xA7FE 0x6760 # <CJK>
+0xA840 0x6753 # <CJK>
+0xA841 0x6757 # <CJK>
+0xA842 0x6B65 # <CJK>
+0xA843 0x6BCF # <CJK>
+0xA844 0x6C42 # <CJK>
+0xA845 0x6C5E # <CJK>
+0xA846 0x6C99 # <CJK>
+0xA847 0x6C81 # <CJK>
+0xA848 0x6C88 # <CJK>
+0xA849 0x6C89 # <CJK>
+0xA84A 0x6C85 # <CJK>
+0xA84B 0x6C9B # <CJK>
+0xA84C 0x6C6A # <CJK>
+0xA84D 0x6C7A # <CJK>
+0xA84E 0x6C90 # <CJK>
+0xA84F 0x6C70 # <CJK>
+0xA850 0x6C8C # <CJK>
+0xA851 0x6C68 # <CJK>
+0xA852 0x6C96 # <CJK>
+0xA853 0x6C92 # <CJK>
+0xA854 0x6C7D # <CJK>
+0xA855 0x6C83 # <CJK>
+0xA856 0x6C72 # <CJK>
+0xA857 0x6C7E # <CJK>
+0xA858 0x6C74 # <CJK>
+0xA859 0x6C86 # <CJK>
+0xA85A 0x6C76 # <CJK>
+0xA85B 0x6C8D # <CJK>
+0xA85C 0x6C94 # <CJK>
+0xA85D 0x6C98 # <CJK>
+0xA85E 0x6C82 # <CJK>
+0xA85F 0x7076 # <CJK>
+0xA860 0x707C # <CJK>
+0xA861 0x707D # <CJK>
+0xA862 0x7078 # <CJK>
+0xA863 0x7262 # <CJK>
+0xA864 0x7261 # <CJK>
+0xA865 0x7260 # <CJK>
+0xA866 0x72C4 # <CJK>
+0xA867 0x72C2 # <CJK>
+0xA868 0x7396 # <CJK>
+0xA869 0x752C # <CJK>
+0xA86A 0x752B # <CJK>
+0xA86B 0x7537 # <CJK>
+0xA86C 0x7538 # <CJK>
+0xA86D 0x7682 # <CJK>
+0xA86E 0x76EF # <CJK>
+0xA86F 0x77E3 # <CJK>
+0xA870 0x79C1 # <CJK>
+0xA871 0x79C0 # <CJK>
+0xA872 0x79BF # <CJK>
+0xA873 0x7A76 # <CJK>
+0xA874 0x7CFB # <CJK>
+0xA875 0x7F55 # <CJK>
+0xA876 0x8096 # <CJK>
+0xA877 0x8093 # <CJK>
+0xA878 0x809D # <CJK>
+0xA879 0x8098 # <CJK>
+0xA87A 0x809B # <CJK>
+0xA87B 0x809A # <CJK>
+0xA87C 0x80B2 # <CJK>
+0xA87D 0x826F # <CJK>
+0xA87E 0x8292 # <CJK>
+0xA8A1 0x828B # <CJK>
+0xA8A2 0x828D # <CJK>
+0xA8A3 0x898B # <CJK>
+0xA8A4 0x89D2 # <CJK>
+0xA8A5 0x8A00 # <CJK>
+0xA8A6 0x8C37 # <CJK>
+0xA8A7 0x8C46 # <CJK>
+0xA8A8 0x8C55 # <CJK>
+0xA8A9 0x8C9D # <CJK>
+0xA8AA 0x8D64 # <CJK>
+0xA8AB 0x8D70 # <CJK>
+0xA8AC 0x8DB3 # <CJK>
+0xA8AD 0x8EAB # <CJK>
+0xA8AE 0x8ECA # <CJK>
+0xA8AF 0x8F9B # <CJK>
+0xA8B0 0x8FB0 # <CJK>
+0xA8B1 0x8FC2 # <CJK>
+0xA8B2 0x8FC6 # <CJK>
+0xA8B3 0x8FC5 # <CJK>
+0xA8B4 0x8FC4 # <CJK>
+0xA8B5 0x5DE1 # <CJK>
+0xA8B6 0x9091 # <CJK>
+0xA8B7 0x90A2 # <CJK>
+0xA8B8 0x90AA # <CJK>
+0xA8B9 0x90A6 # <CJK>
+0xA8BA 0x90A3 # <CJK>
+0xA8BB 0x9149 # <CJK>
+0xA8BC 0x91C6 # <CJK>
+0xA8BD 0x91CC # <CJK>
+0xA8BE 0x9632 # <CJK>
+0xA8BF 0x962E # <CJK>
+0xA8C0 0x9631 # <CJK>
+0xA8C1 0x962A # <CJK>
+0xA8C2 0x962C # <CJK>
+0xA8C3 0x4E26 # <CJK>
+0xA8C4 0x4E56 # <CJK>
+0xA8C5 0x4E73 # <CJK>
+0xA8C6 0x4E8B # <CJK>
+0xA8C7 0x4E9B # <CJK>
+0xA8C8 0x4E9E # <CJK>
+0xA8C9 0x4EAB # <CJK>
+0xA8CA 0x4EAC # <CJK>
+0xA8CB 0x4F6F # <CJK>
+0xA8CC 0x4F9D # <CJK>
+0xA8CD 0x4F8D # <CJK>
+0xA8CE 0x4F73 # <CJK>
+0xA8CF 0x4F7F # <CJK>
+0xA8D0 0x4F6C # <CJK>
+0xA8D1 0x4F9B # <CJK>
+0xA8D2 0x4F8B # <CJK>
+0xA8D3 0x4F86 # <CJK>
+0xA8D4 0x4F83 # <CJK>
+0xA8D5 0x4F70 # <CJK>
+0xA8D6 0x4F75 # <CJK>
+0xA8D7 0x4F88 # <CJK>
+0xA8D8 0x4F69 # <CJK>
+0xA8D9 0x4F7B # <CJK>
+0xA8DA 0x4F96 # <CJK>
+0xA8DB 0x4F7E # <CJK>
+0xA8DC 0x4F8F # <CJK>
+0xA8DD 0x4F91 # <CJK>
+0xA8DE 0x4F7A # <CJK>
+0xA8DF 0x5154 # <CJK>
+0xA8E0 0x5152 # <CJK>
+0xA8E1 0x5155 # <CJK>
+0xA8E2 0x5169 # <CJK>
+0xA8E3 0x5177 # <CJK>
+0xA8E4 0x5176 # <CJK>
+0xA8E5 0x5178 # <CJK>
+0xA8E6 0x51BD # <CJK>
+0xA8E7 0x51FD # <CJK>
+0xA8E8 0x523B # <CJK>
+0xA8E9 0x5238 # <CJK>
+0xA8EA 0x5237 # <CJK>
+0xA8EB 0x523A # <CJK>
+0xA8EC 0x5230 # <CJK>
+0xA8ED 0x522E # <CJK>
+0xA8EE 0x5236 # <CJK>
+0xA8EF 0x5241 # <CJK>
+0xA8F0 0x52BE # <CJK>
+0xA8F1 0x52BB # <CJK>
+0xA8F2 0x5352 # <CJK>
+0xA8F3 0x5354 # <CJK>
+0xA8F4 0x5353 # <CJK>
+0xA8F5 0x5351 # <CJK>
+0xA8F6 0x5366 # <CJK>
+0xA8F7 0x5377 # <CJK>
+0xA8F8 0x5378 # <CJK>
+0xA8F9 0x5379 # <CJK>
+0xA8FA 0x53D6 # <CJK>
+0xA8FB 0x53D4 # <CJK>
+0xA8FC 0x53D7 # <CJK>
+0xA8FD 0x5473 # <CJK>
+0xA8FE 0x5475 # <CJK>
+0xA940 0x5496 # <CJK>
+0xA941 0x5478 # <CJK>
+0xA942 0x5495 # <CJK>
+0xA943 0x5480 # <CJK>
+0xA944 0x547B # <CJK>
+0xA945 0x5477 # <CJK>
+0xA946 0x5484 # <CJK>
+0xA947 0x5492 # <CJK>
+0xA948 0x5486 # <CJK>
+0xA949 0x547C # <CJK>
+0xA94A 0x5490 # <CJK>
+0xA94B 0x5471 # <CJK>
+0xA94C 0x5476 # <CJK>
+0xA94D 0x548C # <CJK>
+0xA94E 0x549A # <CJK>
+0xA94F 0x5462 # <CJK>
+0xA950 0x5468 # <CJK>
+0xA951 0x548B # <CJK>
+0xA952 0x547D # <CJK>
+0xA953 0x548E # <CJK>
+0xA954 0x56FA # <CJK>
+0xA955 0x5783 # <CJK>
+0xA956 0x5777 # <CJK>
+0xA957 0x576A # <CJK>
+0xA958 0x5769 # <CJK>
+0xA959 0x5761 # <CJK>
+0xA95A 0x5766 # <CJK>
+0xA95B 0x5764 # <CJK>
+0xA95C 0x577C # <CJK>
+0xA95D 0x591C # <CJK>
+0xA95E 0x5949 # <CJK>
+0xA95F 0x5947 # <CJK>
+0xA960 0x5948 # <CJK>
+0xA961 0x5944 # <CJK>
+0xA962 0x5954 # <CJK>
+0xA963 0x59BE # <CJK>
+0xA964 0x59BB # <CJK>
+0xA965 0x59D4 # <CJK>
+0xA966 0x59B9 # <CJK>
+0xA967 0x59AE # <CJK>
+0xA968 0x59D1 # <CJK>
+0xA969 0x59C6 # <CJK>
+0xA96A 0x59D0 # <CJK>
+0xA96B 0x59CD # <CJK>
+0xA96C 0x59CB # <CJK>
+0xA96D 0x59D3 # <CJK>
+0xA96E 0x59CA # <CJK>
+0xA96F 0x59AF # <CJK>
+0xA970 0x59B3 # <CJK>
+0xA971 0x59D2 # <CJK>
+0xA972 0x59C5 # <CJK>
+0xA973 0x5B5F # <CJK>
+0xA974 0x5B64 # <CJK>
+0xA975 0x5B63 # <CJK>
+0xA976 0x5B97 # <CJK>
+0xA977 0x5B9A # <CJK>
+0xA978 0x5B98 # <CJK>
+0xA979 0x5B9C # <CJK>
+0xA97A 0x5B99 # <CJK>
+0xA97B 0x5B9B # <CJK>
+0xA97C 0x5C1A # <CJK>
+0xA97D 0x5C48 # <CJK>
+0xA97E 0x5C45 # <CJK>
+0xA9A1 0x5C46 # <CJK>
+0xA9A2 0x5CB7 # <CJK>
+0xA9A3 0x5CA1 # <CJK>
+0xA9A4 0x5CB8 # <CJK>
+0xA9A5 0x5CA9 # <CJK>
+0xA9A6 0x5CAB # <CJK>
+0xA9A7 0x5CB1 # <CJK>
+0xA9A8 0x5CB3 # <CJK>
+0xA9A9 0x5E18 # <CJK>
+0xA9AA 0x5E1A # <CJK>
+0xA9AB 0x5E16 # <CJK>
+0xA9AC 0x5E15 # <CJK>
+0xA9AD 0x5E1B # <CJK>
+0xA9AE 0x5E11 # <CJK>
+0xA9AF 0x5E78 # <CJK>
+0xA9B0 0x5E9A # <CJK>
+0xA9B1 0x5E97 # <CJK>
+0xA9B2 0x5E9C # <CJK>
+0xA9B3 0x5E95 # <CJK>
+0xA9B4 0x5E96 # <CJK>
+0xA9B5 0x5EF6 # <CJK>
+0xA9B6 0x5F26 # <CJK>
+0xA9B7 0x5F27 # <CJK>
+0xA9B8 0x5F29 # <CJK>
+0xA9B9 0x5F80 # <CJK>
+0xA9BA 0x5F81 # <CJK>
+0xA9BB 0x5F7F # <CJK>
+0xA9BC 0x5F7C # <CJK>
+0xA9BD 0x5FDD # <CJK>
+0xA9BE 0x5FE0 # <CJK>
+0xA9BF 0x5FFD # <CJK>
+0xA9C0 0x5FF5 # <CJK>
+0xA9C1 0x5FFF # <CJK>
+0xA9C2 0x600F # <CJK>
+0xA9C3 0x6014 # <CJK>
+0xA9C4 0x602F # <CJK>
+0xA9C5 0x6035 # <CJK>
+0xA9C6 0x6016 # <CJK>
+0xA9C7 0x602A # <CJK>
+0xA9C8 0x6015 # <CJK>
+0xA9C9 0x6021 # <CJK>
+0xA9CA 0x6027 # <CJK>
+0xA9CB 0x6029 # <CJK>
+0xA9CC 0x602B # <CJK>
+0xA9CD 0x601B # <CJK>
+0xA9CE 0x6216 # <CJK>
+0xA9CF 0x6215 # <CJK>
+0xA9D0 0x623F # <CJK>
+0xA9D1 0x623E # <CJK>
+0xA9D2 0x6240 # <CJK>
+0xA9D3 0x627F # <CJK>
+0xA9D4 0x62C9 # <CJK>
+0xA9D5 0x62CC # <CJK>
+0xA9D6 0x62C4 # <CJK>
+0xA9D7 0x62BF # <CJK>
+0xA9D8 0x62C2 # <CJK>
+0xA9D9 0x62B9 # <CJK>
+0xA9DA 0x62D2 # <CJK>
+0xA9DB 0x62DB # <CJK>
+0xA9DC 0x62AB # <CJK>
+0xA9DD 0x62D3 # <CJK>
+0xA9DE 0x62D4 # <CJK>
+0xA9DF 0x62CB # <CJK>
+0xA9E0 0x62C8 # <CJK>
+0xA9E1 0x62A8 # <CJK>
+0xA9E2 0x62BD # <CJK>
+0xA9E3 0x62BC # <CJK>
+0xA9E4 0x62D0 # <CJK>
+0xA9E5 0x62D9 # <CJK>
+0xA9E6 0x62C7 # <CJK>
+0xA9E7 0x62CD # <CJK>
+0xA9E8 0x62B5 # <CJK>
+0xA9E9 0x62DA # <CJK>
+0xA9EA 0x62B1 # <CJK>
+0xA9EB 0x62D8 # <CJK>
+0xA9EC 0x62D6 # <CJK>
+0xA9ED 0x62D7 # <CJK>
+0xA9EE 0x62C6 # <CJK>
+0xA9EF 0x62AC # <CJK>
+0xA9F0 0x62CE # <CJK>
+0xA9F1 0x653E # <CJK>
+0xA9F2 0x65A7 # <CJK>
+0xA9F3 0x65BC # <CJK>
+0xA9F4 0x65FA # <CJK>
+0xA9F5 0x6614 # <CJK>
+0xA9F6 0x6613 # <CJK>
+0xA9F7 0x660C # <CJK>
+0xA9F8 0x6606 # <CJK>
+0xA9F9 0x6602 # <CJK>
+0xA9FA 0x660E # <CJK>
+0xA9FB 0x6600 # <CJK>
+0xA9FC 0x660F # <CJK>
+0xA9FD 0x6615 # <CJK>
+0xA9FE 0x660A # <CJK>
+0xAA40 0x6607 # <CJK>
+0xAA41 0x670D # <CJK>
+0xAA42 0x670B # <CJK>
+0xAA43 0x676D # <CJK>
+0xAA44 0x678B # <CJK>
+0xAA45 0x6795 # <CJK>
+0xAA46 0x6771 # <CJK>
+0xAA47 0x679C # <CJK>
+0xAA48 0x6773 # <CJK>
+0xAA49 0x6777 # <CJK>
+0xAA4A 0x6787 # <CJK>
+0xAA4B 0x679D # <CJK>
+0xAA4C 0x6797 # <CJK>
+0xAA4D 0x676F # <CJK>
+0xAA4E 0x6770 # <CJK>
+0xAA4F 0x677F # <CJK>
+0xAA50 0x6789 # <CJK>
+0xAA51 0x677E # <CJK>
+0xAA52 0x6790 # <CJK>
+0xAA53 0x6775 # <CJK>
+0xAA54 0x679A # <CJK>
+0xAA55 0x6793 # <CJK>
+0xAA56 0x677C # <CJK>
+0xAA57 0x676A # <CJK>
+0xAA58 0x6772 # <CJK>
+0xAA59 0x6B23 # <CJK>
+0xAA5A 0x6B66 # <CJK>
+0xAA5B 0x6B67 # <CJK>
+0xAA5C 0x6B7F # <CJK>
+0xAA5D 0x6C13 # <CJK>
+0xAA5E 0x6C1B # <CJK>
+0xAA5F 0x6CE3 # <CJK>
+0xAA60 0x6CE8 # <CJK>
+0xAA61 0x6CF3 # <CJK>
+0xAA62 0x6CB1 # <CJK>
+0xAA63 0x6CCC # <CJK>
+0xAA64 0x6CE5 # <CJK>
+0xAA65 0x6CB3 # <CJK>
+0xAA66 0x6CBD # <CJK>
+0xAA67 0x6CBE # <CJK>
+0xAA68 0x6CBC # <CJK>
+0xAA69 0x6CE2 # <CJK>
+0xAA6A 0x6CAB # <CJK>
+0xAA6B 0x6CD5 # <CJK>
+0xAA6C 0x6CD3 # <CJK>
+0xAA6D 0x6CB8 # <CJK>
+0xAA6E 0x6CC4 # <CJK>
+0xAA6F 0x6CB9 # <CJK>
+0xAA70 0x6CC1 # <CJK>
+0xAA71 0x6CAE # <CJK>
+0xAA72 0x6CD7 # <CJK>
+0xAA73 0x6CC5 # <CJK>
+0xAA74 0x6CF1 # <CJK>
+0xAA75 0x6CBF # <CJK>
+0xAA76 0x6CBB # <CJK>
+0xAA77 0x6CE1 # <CJK>
+0xAA78 0x6CDB # <CJK>
+0xAA79 0x6CCA # <CJK>
+0xAA7A 0x6CAC # <CJK>
+0xAA7B 0x6CEF # <CJK>
+0xAA7C 0x6CDC # <CJK>
+0xAA7D 0x6CD6 # <CJK>
+0xAA7E 0x6CE0 # <CJK>
+0xAAA1 0x7095 # <CJK>
+0xAAA2 0x708E # <CJK>
+0xAAA3 0x7092 # <CJK>
+0xAAA4 0x708A # <CJK>
+0xAAA5 0x7099 # <CJK>
+0xAAA6 0x722C # <CJK>
+0xAAA7 0x722D # <CJK>
+0xAAA8 0x7238 # <CJK>
+0xAAA9 0x7248 # <CJK>
+0xAAAA 0x7267 # <CJK>
+0xAAAB 0x7269 # <CJK>
+0xAAAC 0x72C0 # <CJK>
+0xAAAD 0x72CE # <CJK>
+0xAAAE 0x72D9 # <CJK>
+0xAAAF 0x72D7 # <CJK>
+0xAAB0 0x72D0 # <CJK>
+0xAAB1 0x73A9 # <CJK>
+0xAAB2 0x73A8 # <CJK>
+0xAAB3 0x739F # <CJK>
+0xAAB4 0x73AB # <CJK>
+0xAAB5 0x73A5 # <CJK>
+0xAAB6 0x753D # <CJK>
+0xAAB7 0x759D # <CJK>
+0xAAB8 0x7599 # <CJK>
+0xAAB9 0x759A # <CJK>
+0xAABA 0x7684 # <CJK>
+0xAABB 0x76C2 # <CJK>
+0xAABC 0x76F2 # <CJK>
+0xAABD 0x76F4 # <CJK>
+0xAABE 0x77E5 # <CJK>
+0xAABF 0x77FD # <CJK>
+0xAAC0 0x793E # <CJK>
+0xAAC1 0x7940 # <CJK>
+0xAAC2 0x7941 # <CJK>
+0xAAC3 0x79C9 # <CJK>
+0xAAC4 0x79C8 # <CJK>
+0xAAC5 0x7A7A # <CJK>
+0xAAC6 0x7A79 # <CJK>
+0xAAC7 0x7AFA # <CJK>
+0xAAC8 0x7CFE # <CJK>
+0xAAC9 0x7F54 # <CJK>
+0xAACA 0x7F8C # <CJK>
+0xAACB 0x7F8B # <CJK>
+0xAACC 0x8005 # <CJK>
+0xAACD 0x80BA # <CJK>
+0xAACE 0x80A5 # <CJK>
+0xAACF 0x80A2 # <CJK>
+0xAAD0 0x80B1 # <CJK>
+0xAAD1 0x80A1 # <CJK>
+0xAAD2 0x80AB # <CJK>
+0xAAD3 0x80A9 # <CJK>
+0xAAD4 0x80B4 # <CJK>
+0xAAD5 0x80AA # <CJK>
+0xAAD6 0x80AF # <CJK>
+0xAAD7 0x81E5 # <CJK>
+0xAAD8 0x81FE # <CJK>
+0xAAD9 0x820D # <CJK>
+0xAADA 0x82B3 # <CJK>
+0xAADB 0x829D # <CJK>
+0xAADC 0x8299 # <CJK>
+0xAADD 0x82AD # <CJK>
+0xAADE 0x82BD # <CJK>
+0xAADF 0x829F # <CJK>
+0xAAE0 0x82B9 # <CJK>
+0xAAE1 0x82B1 # <CJK>
+0xAAE2 0x82AC # <CJK>
+0xAAE3 0x82A5 # <CJK>
+0xAAE4 0x82AF # <CJK>
+0xAAE5 0x82B8 # <CJK>
+0xAAE6 0x82A3 # <CJK>
+0xAAE7 0x82B0 # <CJK>
+0xAAE8 0x82BE # <CJK>
+0xAAE9 0x82B7 # <CJK>
+0xAAEA 0x864E # <CJK>
+0xAAEB 0x8671 # <CJK>
+0xAAEC 0x521D # <CJK>
+0xAAED 0x8868 # <CJK>
+0xAAEE 0x8ECB # <CJK>
+0xAAEF 0x8FCE # <CJK>
+0xAAF0 0x8FD4 # <CJK>
+0xAAF1 0x8FD1 # <CJK>
+0xAAF2 0x90B5 # <CJK>
+0xAAF3 0x90B8 # <CJK>
+0xAAF4 0x90B1 # <CJK>
+0xAAF5 0x90B6 # <CJK>
+0xAAF6 0x91C7 # <CJK>
+0xAAF7 0x91D1 # <CJK>
+0xAAF8 0x9577 # <CJK>
+0xAAF9 0x9580 # <CJK>
+0xAAFA 0x961C # <CJK>
+0xAAFB 0x9640 # <CJK>
+0xAAFC 0x963F # <CJK>
+0xAAFD 0x963B # <CJK>
+0xAAFE 0x9644 # <CJK>
+0xAB40 0x9642 # <CJK>
+0xAB41 0x96B9 # <CJK>
+0xAB42 0x96E8 # <CJK>
+0xAB43 0x9752 # <CJK>
+0xAB44 0x975E # <CJK>
+0xAB45 0x4E9F # <CJK>
+0xAB46 0x4EAD # <CJK>
+0xAB47 0x4EAE # <CJK>
+0xAB48 0x4FE1 # <CJK>
+0xAB49 0x4FB5 # <CJK>
+0xAB4A 0x4FAF # <CJK>
+0xAB4B 0x4FBF # <CJK>
+0xAB4C 0x4FE0 # <CJK>
+0xAB4D 0x4FD1 # <CJK>
+0xAB4E 0x4FCF # <CJK>
+0xAB4F 0x4FDD # <CJK>
+0xAB50 0x4FC3 # <CJK>
+0xAB51 0x4FB6 # <CJK>
+0xAB52 0x4FD8 # <CJK>
+0xAB53 0x4FDF # <CJK>
+0xAB54 0x4FCA # <CJK>
+0xAB55 0x4FD7 # <CJK>
+0xAB56 0x4FAE # <CJK>
+0xAB57 0x4FD0 # <CJK>
+0xAB58 0x4FC4 # <CJK>
+0xAB59 0x4FC2 # <CJK>
+0xAB5A 0x4FDA # <CJK>
+0xAB5B 0x4FCE # <CJK>
+0xAB5C 0x4FDE # <CJK>
+0xAB5D 0x4FB7 # <CJK>
+0xAB5E 0x5157 # <CJK>
+0xAB5F 0x5192 # <CJK>
+0xAB60 0x5191 # <CJK>
+0xAB61 0x51A0 # <CJK>
+0xAB62 0x524E # <CJK>
+0xAB63 0x5243 # <CJK>
+0xAB64 0x524A # <CJK>
+0xAB65 0x524D # <CJK>
+0xAB66 0x524C # <CJK>
+0xAB67 0x524B # <CJK>
+0xAB68 0x5247 # <CJK>
+0xAB69 0x52C7 # <CJK>
+0xAB6A 0x52C9 # <CJK>
+0xAB6B 0x52C3 # <CJK>
+0xAB6C 0x52C1 # <CJK>
+0xAB6D 0x530D # <CJK>
+0xAB6E 0x5357 # <CJK>
+0xAB6F 0x537B # <CJK>
+0xAB70 0x539A # <CJK>
+0xAB71 0x53DB # <CJK>
+0xAB72 0x54AC # <CJK>
+0xAB73 0x54C0 # <CJK>
+0xAB74 0x54A8 # <CJK>
+0xAB75 0x54CE # <CJK>
+0xAB76 0x54C9 # <CJK>
+0xAB77 0x54B8 # <CJK>
+0xAB78 0x54A6 # <CJK>
+0xAB79 0x54B3 # <CJK>
+0xAB7A 0x54C7 # <CJK>
+0xAB7B 0x54C2 # <CJK>
+0xAB7C 0x54BD # <CJK>
+0xAB7D 0x54AA # <CJK>
+0xAB7E 0x54C1 # <CJK>
+0xABA1 0x54C4 # <CJK>
+0xABA2 0x54C8 # <CJK>
+0xABA3 0x54AF # <CJK>
+0xABA4 0x54AB # <CJK>
+0xABA5 0x54B1 # <CJK>
+0xABA6 0x54BB # <CJK>
+0xABA7 0x54A9 # <CJK>
+0xABA8 0x54A7 # <CJK>
+0xABA9 0x54BF # <CJK>
+0xABAA 0x56FF # <CJK>
+0xABAB 0x5782 # <CJK>
+0xABAC 0x578B # <CJK>
+0xABAD 0x57A0 # <CJK>
+0xABAE 0x57A3 # <CJK>
+0xABAF 0x57A2 # <CJK>
+0xABB0 0x57CE # <CJK>
+0xABB1 0x57AE # <CJK>
+0xABB2 0x5793 # <CJK>
+0xABB3 0x5955 # <CJK>
+0xABB4 0x5951 # <CJK>
+0xABB5 0x594F # <CJK>
+0xABB6 0x594E # <CJK>
+0xABB7 0x5950 # <CJK>
+0xABB8 0x59DC # <CJK>
+0xABB9 0x59D8 # <CJK>
+0xABBA 0x59FF # <CJK>
+0xABBB 0x59E3 # <CJK>
+0xABBC 0x59E8 # <CJK>
+0xABBD 0x5A03 # <CJK>
+0xABBE 0x59E5 # <CJK>
+0xABBF 0x59EA # <CJK>
+0xABC0 0x59DA # <CJK>
+0xABC1 0x59E6 # <CJK>
+0xABC2 0x5A01 # <CJK>
+0xABC3 0x59FB # <CJK>
+0xABC4 0x5B69 # <CJK>
+0xABC5 0x5BA3 # <CJK>
+0xABC6 0x5BA6 # <CJK>
+0xABC7 0x5BA4 # <CJK>
+0xABC8 0x5BA2 # <CJK>
+0xABC9 0x5BA5 # <CJK>
+0xABCA 0x5C01 # <CJK>
+0xABCB 0x5C4E # <CJK>
+0xABCC 0x5C4F # <CJK>
+0xABCD 0x5C4D # <CJK>
+0xABCE 0x5C4B # <CJK>
+0xABCF 0x5CD9 # <CJK>
+0xABD0 0x5CD2 # <CJK>
+0xABD1 0x5DF7 # <CJK>
+0xABD2 0x5E1D # <CJK>
+0xABD3 0x5E25 # <CJK>
+0xABD4 0x5E1F # <CJK>
+0xABD5 0x5E7D # <CJK>
+0xABD6 0x5EA0 # <CJK>
+0xABD7 0x5EA6 # <CJK>
+0xABD8 0x5EFA # <CJK>
+0xABD9 0x5F08 # <CJK>
+0xABDA 0x5F2D # <CJK>
+0xABDB 0x5F65 # <CJK>
+0xABDC 0x5F88 # <CJK>
+0xABDD 0x5F85 # <CJK>
+0xABDE 0x5F8A # <CJK>
+0xABDF 0x5F8B # <CJK>
+0xABE0 0x5F87 # <CJK>
+0xABE1 0x5F8C # <CJK>
+0xABE2 0x5F89 # <CJK>
+0xABE3 0x6012 # <CJK>
+0xABE4 0x601D # <CJK>
+0xABE5 0x6020 # <CJK>
+0xABE6 0x6025 # <CJK>
+0xABE7 0x600E # <CJK>
+0xABE8 0x6028 # <CJK>
+0xABE9 0x604D # <CJK>
+0xABEA 0x6070 # <CJK>
+0xABEB 0x6068 # <CJK>
+0xABEC 0x6062 # <CJK>
+0xABED 0x6046 # <CJK>
+0xABEE 0x6043 # <CJK>
+0xABEF 0x606C # <CJK>
+0xABF0 0x606B # <CJK>
+0xABF1 0x606A # <CJK>
+0xABF2 0x6064 # <CJK>
+0xABF3 0x6241 # <CJK>
+0xABF4 0x62DC # <CJK>
+0xABF5 0x6316 # <CJK>
+0xABF6 0x6309 # <CJK>
+0xABF7 0x62FC # <CJK>
+0xABF8 0x62ED # <CJK>
+0xABF9 0x6301 # <CJK>
+0xABFA 0x62EE # <CJK>
+0xABFB 0x62FD # <CJK>
+0xABFC 0x6307 # <CJK>
+0xABFD 0x62F1 # <CJK>
+0xABFE 0x62F7 # <CJK>
+0xAC40 0x62EF # <CJK>
+0xAC41 0x62EC # <CJK>
+0xAC42 0x62FE # <CJK>
+0xAC43 0x62F4 # <CJK>
+0xAC44 0x6311 # <CJK>
+0xAC45 0x6302 # <CJK>
+0xAC46 0x653F # <CJK>
+0xAC47 0x6545 # <CJK>
+0xAC48 0x65AB # <CJK>
+0xAC49 0x65BD # <CJK>
+0xAC4A 0x65E2 # <CJK>
+0xAC4B 0x6625 # <CJK>
+0xAC4C 0x662D # <CJK>
+0xAC4D 0x6620 # <CJK>
+0xAC4E 0x6627 # <CJK>
+0xAC4F 0x662F # <CJK>
+0xAC50 0x661F # <CJK>
+0xAC51 0x6628 # <CJK>
+0xAC52 0x6631 # <CJK>
+0xAC53 0x6624 # <CJK>
+0xAC54 0x66F7 # <CJK>
+0xAC55 0x67FF # <CJK>
+0xAC56 0x67D3 # <CJK>
+0xAC57 0x67F1 # <CJK>
+0xAC58 0x67D4 # <CJK>
+0xAC59 0x67D0 # <CJK>
+0xAC5A 0x67EC # <CJK>
+0xAC5B 0x67B6 # <CJK>
+0xAC5C 0x67AF # <CJK>
+0xAC5D 0x67F5 # <CJK>
+0xAC5E 0x67E9 # <CJK>
+0xAC5F 0x67EF # <CJK>
+0xAC60 0x67C4 # <CJK>
+0xAC61 0x67D1 # <CJK>
+0xAC62 0x67B4 # <CJK>
+0xAC63 0x67DA # <CJK>
+0xAC64 0x67E5 # <CJK>
+0xAC65 0x67B8 # <CJK>
+0xAC66 0x67CF # <CJK>
+0xAC67 0x67DE # <CJK>
+0xAC68 0x67F3 # <CJK>
+0xAC69 0x67B0 # <CJK>
+0xAC6A 0x67D9 # <CJK>
+0xAC6B 0x67E2 # <CJK>
+0xAC6C 0x67DD # <CJK>
+0xAC6D 0x67D2 # <CJK>
+0xAC6E 0x6B6A # <CJK>
+0xAC6F 0x6B83 # <CJK>
+0xAC70 0x6B86 # <CJK>
+0xAC71 0x6BB5 # <CJK>
+0xAC72 0x6BD2 # <CJK>
+0xAC73 0x6BD7 # <CJK>
+0xAC74 0x6C1F # <CJK>
+0xAC75 0x6CC9 # <CJK>
+0xAC76 0x6D0B # <CJK>
+0xAC77 0x6D32 # <CJK>
+0xAC78 0x6D2A # <CJK>
+0xAC79 0x6D41 # <CJK>
+0xAC7A 0x6D25 # <CJK>
+0xAC7B 0x6D0C # <CJK>
+0xAC7C 0x6D31 # <CJK>
+0xAC7D 0x6D1E # <CJK>
+0xAC7E 0x6D17 # <CJK>
+0xACA1 0x6D3B # <CJK>
+0xACA2 0x6D3D # <CJK>
+0xACA3 0x6D3E # <CJK>
+0xACA4 0x6D36 # <CJK>
+0xACA5 0x6D1B # <CJK>
+0xACA6 0x6CF5 # <CJK>
+0xACA7 0x6D39 # <CJK>
+0xACA8 0x6D27 # <CJK>
+0xACA9 0x6D38 # <CJK>
+0xACAA 0x6D29 # <CJK>
+0xACAB 0x6D2E # <CJK>
+0xACAC 0x6D35 # <CJK>
+0xACAD 0x6D0E # <CJK>
+0xACAE 0x6D2B # <CJK>
+0xACAF 0x70AB # <CJK>
+0xACB0 0x70BA # <CJK>
+0xACB1 0x70B3 # <CJK>
+0xACB2 0x70AC # <CJK>
+0xACB3 0x70AF # <CJK>
+0xACB4 0x70AD # <CJK>
+0xACB5 0x70B8 # <CJK>
+0xACB6 0x70AE # <CJK>
+0xACB7 0x70A4 # <CJK>
+0xACB8 0x7230 # <CJK>
+0xACB9 0x7272 # <CJK>
+0xACBA 0x726F # <CJK>
+0xACBB 0x7274 # <CJK>
+0xACBC 0x72E9 # <CJK>
+0xACBD 0x72E0 # <CJK>
+0xACBE 0x72E1 # <CJK>
+0xACBF 0x73B7 # <CJK>
+0xACC0 0x73CA # <CJK>
+0xACC1 0x73BB # <CJK>
+0xACC2 0x73B2 # <CJK>
+0xACC3 0x73CD # <CJK>
+0xACC4 0x73C0 # <CJK>
+0xACC5 0x73B3 # <CJK>
+0xACC6 0x751A # <CJK>
+0xACC7 0x752D # <CJK>
+0xACC8 0x754F # <CJK>
+0xACC9 0x754C # <CJK>
+0xACCA 0x754E # <CJK>
+0xACCB 0x754B # <CJK>
+0xACCC 0x75AB # <CJK>
+0xACCD 0x75A4 # <CJK>
+0xACCE 0x75A5 # <CJK>
+0xACCF 0x75A2 # <CJK>
+0xACD0 0x75A3 # <CJK>
+0xACD1 0x7678 # <CJK>
+0xACD2 0x7686 # <CJK>
+0xACD3 0x7687 # <CJK>
+0xACD4 0x7688 # <CJK>
+0xACD5 0x76C8 # <CJK>
+0xACD6 0x76C6 # <CJK>
+0xACD7 0x76C3 # <CJK>
+0xACD8 0x76C5 # <CJK>
+0xACD9 0x7701 # <CJK>
+0xACDA 0x76F9 # <CJK>
+0xACDB 0x76F8 # <CJK>
+0xACDC 0x7709 # <CJK>
+0xACDD 0x770B # <CJK>
+0xACDE 0x76FE # <CJK>
+0xACDF 0x76FC # <CJK>
+0xACE0 0x7707 # <CJK>
+0xACE1 0x77DC # <CJK>
+0xACE2 0x7802 # <CJK>
+0xACE3 0x7814 # <CJK>
+0xACE4 0x780C # <CJK>
+0xACE5 0x780D # <CJK>
+0xACE6 0x7946 # <CJK>
+0xACE7 0x7949 # <CJK>
+0xACE8 0x7948 # <CJK>
+0xACE9 0x7947 # <CJK>
+0xACEA 0x79B9 # <CJK>
+0xACEB 0x79BA # <CJK>
+0xACEC 0x79D1 # <CJK>
+0xACED 0x79D2 # <CJK>
+0xACEE 0x79CB # <CJK>
+0xACEF 0x7A7F # <CJK>
+0xACF0 0x7A81 # <CJK>
+0xACF1 0x7AFF # <CJK>
+0xACF2 0x7AFD # <CJK>
+0xACF3 0x7C7D # <CJK>
+0xACF4 0x7D02 # <CJK>
+0xACF5 0x7D05 # <CJK>
+0xACF6 0x7D00 # <CJK>
+0xACF7 0x7D09 # <CJK>
+0xACF8 0x7D07 # <CJK>
+0xACF9 0x7D04 # <CJK>
+0xACFA 0x7D06 # <CJK>
+0xACFB 0x7F38 # <CJK>
+0xACFC 0x7F8E # <CJK>
+0xACFD 0x7FBF # <CJK>
+0xACFE 0x8004 # <CJK>
+0xAD40 0x8010 # <CJK>
+0xAD41 0x800D # <CJK>
+0xAD42 0x8011 # <CJK>
+0xAD43 0x8036 # <CJK>
+0xAD44 0x80D6 # <CJK>
+0xAD45 0x80E5 # <CJK>
+0xAD46 0x80DA # <CJK>
+0xAD47 0x80C3 # <CJK>
+0xAD48 0x80C4 # <CJK>
+0xAD49 0x80CC # <CJK>
+0xAD4A 0x80E1 # <CJK>
+0xAD4B 0x80DB # <CJK>
+0xAD4C 0x80CE # <CJK>
+0xAD4D 0x80DE # <CJK>
+0xAD4E 0x80E4 # <CJK>
+0xAD4F 0x80DD # <CJK>
+0xAD50 0x81F4 # <CJK>
+0xAD51 0x8222 # <CJK>
+0xAD52 0x82E7 # <CJK>
+0xAD53 0x8303 # <CJK>
+0xAD54 0x8305 # <CJK>
+0xAD55 0x82E3 # <CJK>
+0xAD56 0x82DB # <CJK>
+0xAD57 0x82E6 # <CJK>
+0xAD58 0x8304 # <CJK>
+0xAD59 0x82E5 # <CJK>
+0xAD5A 0x8302 # <CJK>
+0xAD5B 0x8309 # <CJK>
+0xAD5C 0x82D2 # <CJK>
+0xAD5D 0x82D7 # <CJK>
+0xAD5E 0x82F1 # <CJK>
+0xAD5F 0x8301 # <CJK>
+0xAD60 0x82DC # <CJK>
+0xAD61 0x82D4 # <CJK>
+0xAD62 0x82D1 # <CJK>
+0xAD63 0x82DE # <CJK>
+0xAD64 0x82D3 # <CJK>
+0xAD65 0x82DF # <CJK>
+0xAD66 0x82EF # <CJK>
+0xAD67 0x8306 # <CJK>
+0xAD68 0x8650 # <CJK>
+0xAD69 0x8679 # <CJK>
+0xAD6A 0x867B # <CJK>
+0xAD6B 0x867A # <CJK>
+0xAD6C 0x884D # <CJK>
+0xAD6D 0x886B # <CJK>
+0xAD6E 0x8981 # <CJK>
+0xAD6F 0x89D4 # <CJK>
+0xAD70 0x8A08 # <CJK>
+0xAD71 0x8A02 # <CJK>
+0xAD72 0x8A03 # <CJK>
+0xAD73 0x8C9E # <CJK>
+0xAD74 0x8CA0 # <CJK>
+0xAD75 0x8D74 # <CJK>
+0xAD76 0x8D73 # <CJK>
+0xAD77 0x8DB4 # <CJK>
+0xAD78 0x8ECD # <CJK>
+0xAD79 0x8ECC # <CJK>
+0xAD7A 0x8FF0 # <CJK>
+0xAD7B 0x8FE6 # <CJK>
+0xAD7C 0x8FE2 # <CJK>
+0xAD7D 0x8FEA # <CJK>
+0xAD7E 0x8FE5 # <CJK>
+0xADA1 0x8FED # <CJK>
+0xADA2 0x8FEB # <CJK>
+0xADA3 0x8FE4 # <CJK>
+0xADA4 0x8FE8 # <CJK>
+0xADA5 0x90CA # <CJK>
+0xADA6 0x90CE # <CJK>
+0xADA7 0x90C1 # <CJK>
+0xADA8 0x90C3 # <CJK>
+0xADA9 0x914B # <CJK>
+0xADAA 0x914A # <CJK>
+0xADAB 0x91CD # <CJK>
+0xADAC 0x9582 # <CJK>
+0xADAD 0x9650 # <CJK>
+0xADAE 0x964B # <CJK>
+0xADAF 0x964C # <CJK>
+0xADB0 0x964D # <CJK>
+0xADB1 0x9762 # <CJK>
+0xADB2 0x9769 # <CJK>
+0xADB3 0x97CB # <CJK>
+0xADB4 0x97ED # <CJK>
+0xADB5 0x97F3 # <CJK>
+0xADB6 0x9801 # <CJK>
+0xADB7 0x98A8 # <CJK>
+0xADB8 0x98DB # <CJK>
+0xADB9 0x98DF # <CJK>
+0xADBA 0x9996 # <CJK>
+0xADBB 0x9999 # <CJK>
+0xADBC 0x4E58 # <CJK>
+0xADBD 0x4EB3 # <CJK>
+0xADBE 0x500C # <CJK>
+0xADBF 0x500D # <CJK>
+0xADC0 0x5023 # <CJK>
+0xADC1 0x4FEF # <CJK>
+0xADC2 0x5026 # <CJK>
+0xADC3 0x5025 # <CJK>
+0xADC4 0x4FF8 # <CJK>
+0xADC5 0x5029 # <CJK>
+0xADC6 0x5016 # <CJK>
+0xADC7 0x5006 # <CJK>
+0xADC8 0x503C # <CJK>
+0xADC9 0x501F # <CJK>
+0xADCA 0x501A # <CJK>
+0xADCB 0x5012 # <CJK>
+0xADCC 0x5011 # <CJK>
+0xADCD 0x4FFA # <CJK>
+0xADCE 0x5000 # <CJK>
+0xADCF 0x5014 # <CJK>
+0xADD0 0x5028 # <CJK>
+0xADD1 0x4FF1 # <CJK>
+0xADD2 0x5021 # <CJK>
+0xADD3 0x500B # <CJK>
+0xADD4 0x5019 # <CJK>
+0xADD5 0x5018 # <CJK>
+0xADD6 0x4FF3 # <CJK>
+0xADD7 0x4FEE # <CJK>
+0xADD8 0x502D # <CJK>
+0xADD9 0x502A # <CJK>
+0xADDA 0x4FFE # <CJK>
+0xADDB 0x502B # <CJK>
+0xADDC 0x5009 # <CJK>
+0xADDD 0x517C # <CJK>
+0xADDE 0x51A4 # <CJK>
+0xADDF 0x51A5 # <CJK>
+0xADE0 0x51A2 # <CJK>
+0xADE1 0x51CD # <CJK>
+0xADE2 0x51CC # <CJK>
+0xADE3 0x51C6 # <CJK>
+0xADE4 0x51CB # <CJK>
+0xADE5 0x5256 # <CJK>
+0xADE6 0x525C # <CJK>
+0xADE7 0x5254 # <CJK>
+0xADE8 0x525B # <CJK>
+0xADE9 0x525D # <CJK>
+0xADEA 0x532A # <CJK>
+0xADEB 0x537F # <CJK>
+0xADEC 0x539F # <CJK>
+0xADED 0x539D # <CJK>
+0xADEE 0x53DF # <CJK>
+0xADEF 0x54E8 # <CJK>
+0xADF0 0x5510 # <CJK>
+0xADF1 0x5501 # <CJK>
+0xADF2 0x5537 # <CJK>
+0xADF3 0x54FC # <CJK>
+0xADF4 0x54E5 # <CJK>
+0xADF5 0x54F2 # <CJK>
+0xADF6 0x5506 # <CJK>
+0xADF7 0x54FA # <CJK>
+0xADF8 0x5514 # <CJK>
+0xADF9 0x54E9 # <CJK>
+0xADFA 0x54ED # <CJK>
+0xADFB 0x54E1 # <CJK>
+0xADFC 0x5509 # <CJK>
+0xADFD 0x54EE # <CJK>
+0xADFE 0x54EA # <CJK>
+0xAE40 0x54E6 # <CJK>
+0xAE41 0x5527 # <CJK>
+0xAE42 0x5507 # <CJK>
+0xAE43 0x54FD # <CJK>
+0xAE44 0x550F # <CJK>
+0xAE45 0x5703 # <CJK>
+0xAE46 0x5704 # <CJK>
+0xAE47 0x57C2 # <CJK>
+0xAE48 0x57D4 # <CJK>
+0xAE49 0x57CB # <CJK>
+0xAE4A 0x57C3 # <CJK>
+0xAE4B 0x5809 # <CJK>
+0xAE4C 0x590F # <CJK>
+0xAE4D 0x5957 # <CJK>
+0xAE4E 0x5958 # <CJK>
+0xAE4F 0x595A # <CJK>
+0xAE50 0x5A11 # <CJK>
+0xAE51 0x5A18 # <CJK>
+0xAE52 0x5A1C # <CJK>
+0xAE53 0x5A1F # <CJK>
+0xAE54 0x5A1B # <CJK>
+0xAE55 0x5A13 # <CJK>
+0xAE56 0x59EC # <CJK>
+0xAE57 0x5A20 # <CJK>
+0xAE58 0x5A23 # <CJK>
+0xAE59 0x5A29 # <CJK>
+0xAE5A 0x5A25 # <CJK>
+0xAE5B 0x5A0C # <CJK>
+0xAE5C 0x5A09 # <CJK>
+0xAE5D 0x5B6B # <CJK>
+0xAE5E 0x5C58 # <CJK>
+0xAE5F 0x5BB0 # <CJK>
+0xAE60 0x5BB3 # <CJK>
+0xAE61 0x5BB6 # <CJK>
+0xAE62 0x5BB4 # <CJK>
+0xAE63 0x5BAE # <CJK>
+0xAE64 0x5BB5 # <CJK>
+0xAE65 0x5BB9 # <CJK>
+0xAE66 0x5BB8 # <CJK>
+0xAE67 0x5C04 # <CJK>
+0xAE68 0x5C51 # <CJK>
+0xAE69 0x5C55 # <CJK>
+0xAE6A 0x5C50 # <CJK>
+0xAE6B 0x5CED # <CJK>
+0xAE6C 0x5CFD # <CJK>
+0xAE6D 0x5CFB # <CJK>
+0xAE6E 0x5CEA # <CJK>
+0xAE6F 0x5CE8 # <CJK>
+0xAE70 0x5CF0 # <CJK>
+0xAE71 0x5CF6 # <CJK>
+0xAE72 0x5D01 # <CJK>
+0xAE73 0x5CF4 # <CJK>
+0xAE74 0x5DEE # <CJK>
+0xAE75 0x5E2D # <CJK>
+0xAE76 0x5E2B # <CJK>
+0xAE77 0x5EAB # <CJK>
+0xAE78 0x5EAD # <CJK>
+0xAE79 0x5EA7 # <CJK>
+0xAE7A 0x5F31 # <CJK>
+0xAE7B 0x5F92 # <CJK>
+0xAE7C 0x5F91 # <CJK>
+0xAE7D 0x5F90 # <CJK>
+0xAE7E 0x6059 # <CJK>
+0xAEA1 0x6063 # <CJK>
+0xAEA2 0x6065 # <CJK>
+0xAEA3 0x6050 # <CJK>
+0xAEA4 0x6055 # <CJK>
+0xAEA5 0x606D # <CJK>
+0xAEA6 0x6069 # <CJK>
+0xAEA7 0x606F # <CJK>
+0xAEA8 0x6084 # <CJK>
+0xAEA9 0x609F # <CJK>
+0xAEAA 0x609A # <CJK>
+0xAEAB 0x608D # <CJK>
+0xAEAC 0x6094 # <CJK>
+0xAEAD 0x608C # <CJK>
+0xAEAE 0x6085 # <CJK>
+0xAEAF 0x6096 # <CJK>
+0xAEB0 0x6247 # <CJK>
+0xAEB1 0x62F3 # <CJK>
+0xAEB2 0x6308 # <CJK>
+0xAEB3 0x62FF # <CJK>
+0xAEB4 0x634E # <CJK>
+0xAEB5 0x633E # <CJK>
+0xAEB6 0x632F # <CJK>
+0xAEB7 0x6355 # <CJK>
+0xAEB8 0x6342 # <CJK>
+0xAEB9 0x6346 # <CJK>
+0xAEBA 0x634F # <CJK>
+0xAEBB 0x6349 # <CJK>
+0xAEBC 0x633A # <CJK>
+0xAEBD 0x6350 # <CJK>
+0xAEBE 0x633D # <CJK>
+0xAEBF 0x632A # <CJK>
+0xAEC0 0x632B # <CJK>
+0xAEC1 0x6328 # <CJK>
+0xAEC2 0x634D # <CJK>
+0xAEC3 0x634C # <CJK>
+0xAEC4 0x6548 # <CJK>
+0xAEC5 0x6549 # <CJK>
+0xAEC6 0x6599 # <CJK>
+0xAEC7 0x65C1 # <CJK>
+0xAEC8 0x65C5 # <CJK>
+0xAEC9 0x6642 # <CJK>
+0xAECA 0x6649 # <CJK>
+0xAECB 0x664F # <CJK>
+0xAECC 0x6643 # <CJK>
+0xAECD 0x6652 # <CJK>
+0xAECE 0x664C # <CJK>
+0xAECF 0x6645 # <CJK>
+0xAED0 0x6641 # <CJK>
+0xAED1 0x66F8 # <CJK>
+0xAED2 0x6714 # <CJK>
+0xAED3 0x6715 # <CJK>
+0xAED4 0x6717 # <CJK>
+0xAED5 0x6821 # <CJK>
+0xAED6 0x6838 # <CJK>
+0xAED7 0x6848 # <CJK>
+0xAED8 0x6846 # <CJK>
+0xAED9 0x6853 # <CJK>
+0xAEDA 0x6839 # <CJK>
+0xAEDB 0x6842 # <CJK>
+0xAEDC 0x6854 # <CJK>
+0xAEDD 0x6829 # <CJK>
+0xAEDE 0x68B3 # <CJK>
+0xAEDF 0x6817 # <CJK>
+0xAEE0 0x684C # <CJK>
+0xAEE1 0x6851 # <CJK>
+0xAEE2 0x683D # <CJK>
+0xAEE3 0x67F4 # <CJK>
+0xAEE4 0x6850 # <CJK>
+0xAEE5 0x6840 # <CJK>
+0xAEE6 0x683C # <CJK>
+0xAEE7 0x6843 # <CJK>
+0xAEE8 0x682A # <CJK>
+0xAEE9 0x6845 # <CJK>
+0xAEEA 0x6813 # <CJK>
+0xAEEB 0x6818 # <CJK>
+0xAEEC 0x6841 # <CJK>
+0xAEED 0x6B8A # <CJK>
+0xAEEE 0x6B89 # <CJK>
+0xAEEF 0x6BB7 # <CJK>
+0xAEF0 0x6C23 # <CJK>
+0xAEF1 0x6C27 # <CJK>
+0xAEF2 0x6C28 # <CJK>
+0xAEF3 0x6C26 # <CJK>
+0xAEF4 0x6C24 # <CJK>
+0xAEF5 0x6CF0 # <CJK>
+0xAEF6 0x6D6A # <CJK>
+0xAEF7 0x6D95 # <CJK>
+0xAEF8 0x6D88 # <CJK>
+0xAEF9 0x6D87 # <CJK>
+0xAEFA 0x6D66 # <CJK>
+0xAEFB 0x6D78 # <CJK>
+0xAEFC 0x6D77 # <CJK>
+0xAEFD 0x6D59 # <CJK>
+0xAEFE 0x6D93 # <CJK>
+0xAF40 0x6D6C # <CJK>
+0xAF41 0x6D89 # <CJK>
+0xAF42 0x6D6E # <CJK>
+0xAF43 0x6D5A # <CJK>
+0xAF44 0x6D74 # <CJK>
+0xAF45 0x6D69 # <CJK>
+0xAF46 0x6D8C # <CJK>
+0xAF47 0x6D8A # <CJK>
+0xAF48 0x6D79 # <CJK>
+0xAF49 0x6D85 # <CJK>
+0xAF4A 0x6D65 # <CJK>
+0xAF4B 0x6D94 # <CJK>
+0xAF4C 0x70CA # <CJK>
+0xAF4D 0x70D8 # <CJK>
+0xAF4E 0x70E4 # <CJK>
+0xAF4F 0x70D9 # <CJK>
+0xAF50 0x70C8 # <CJK>
+0xAF51 0x70CF # <CJK>
+0xAF52 0x7239 # <CJK>
+0xAF53 0x7279 # <CJK>
+0xAF54 0x72FC # <CJK>
+0xAF55 0x72F9 # <CJK>
+0xAF56 0x72FD # <CJK>
+0xAF57 0x72F8 # <CJK>
+0xAF58 0x72F7 # <CJK>
+0xAF59 0x7386 # <CJK>
+0xAF5A 0x73ED # <CJK>
+0xAF5B 0x7409 # <CJK>
+0xAF5C 0x73EE # <CJK>
+0xAF5D 0x73E0 # <CJK>
+0xAF5E 0x73EA # <CJK>
+0xAF5F 0x73DE # <CJK>
+0xAF60 0x7554 # <CJK>
+0xAF61 0x755D # <CJK>
+0xAF62 0x755C # <CJK>
+0xAF63 0x755A # <CJK>
+0xAF64 0x7559 # <CJK>
+0xAF65 0x75BE # <CJK>
+0xAF66 0x75C5 # <CJK>
+0xAF67 0x75C7 # <CJK>
+0xAF68 0x75B2 # <CJK>
+0xAF69 0x75B3 # <CJK>
+0xAF6A 0x75BD # <CJK>
+0xAF6B 0x75BC # <CJK>
+0xAF6C 0x75B9 # <CJK>
+0xAF6D 0x75C2 # <CJK>
+0xAF6E 0x75B8 # <CJK>
+0xAF6F 0x768B # <CJK>
+0xAF70 0x76B0 # <CJK>
+0xAF71 0x76CA # <CJK>
+0xAF72 0x76CD # <CJK>
+0xAF73 0x76CE # <CJK>
+0xAF74 0x7729 # <CJK>
+0xAF75 0x771F # <CJK>
+0xAF76 0x7720 # <CJK>
+0xAF77 0x7728 # <CJK>
+0xAF78 0x77E9 # <CJK>
+0xAF79 0x7830 # <CJK>
+0xAF7A 0x7827 # <CJK>
+0xAF7B 0x7838 # <CJK>
+0xAF7C 0x781D # <CJK>
+0xAF7D 0x7834 # <CJK>
+0xAF7E 0x7837 # <CJK>
+0xAFA1 0x7825 # <CJK>
+0xAFA2 0x782D # <CJK>
+0xAFA3 0x7820 # <CJK>
+0xAFA4 0x781F # <CJK>
+0xAFA5 0x7832 # <CJK>
+0xAFA6 0x7955 # <CJK>
+0xAFA7 0x7950 # <CJK>
+0xAFA8 0x7960 # <CJK>
+0xAFA9 0x795F # <CJK>
+0xAFAA 0x7956 # <CJK>
+0xAFAB 0x795E # <CJK>
+0xAFAC 0x795D # <CJK>
+0xAFAD 0x7957 # <CJK>
+0xAFAE 0x795A # <CJK>
+0xAFAF 0x79E4 # <CJK>
+0xAFB0 0x79E3 # <CJK>
+0xAFB1 0x79E7 # <CJK>
+0xAFB2 0x79DF # <CJK>
+0xAFB3 0x79E6 # <CJK>
+0xAFB4 0x79E9 # <CJK>
+0xAFB5 0x79D8 # <CJK>
+0xAFB6 0x7A84 # <CJK>
+0xAFB7 0x7A88 # <CJK>
+0xAFB8 0x7AD9 # <CJK>
+0xAFB9 0x7B06 # <CJK>
+0xAFBA 0x7B11 # <CJK>
+0xAFBB 0x7C89 # <CJK>
+0xAFBC 0x7D21 # <CJK>
+0xAFBD 0x7D17 # <CJK>
+0xAFBE 0x7D0B # <CJK>
+0xAFBF 0x7D0A # <CJK>
+0xAFC0 0x7D20 # <CJK>
+0xAFC1 0x7D22 # <CJK>
+0xAFC2 0x7D14 # <CJK>
+0xAFC3 0x7D10 # <CJK>
+0xAFC4 0x7D15 # <CJK>
+0xAFC5 0x7D1A # <CJK>
+0xAFC6 0x7D1C # <CJK>
+0xAFC7 0x7D0D # <CJK>
+0xAFC8 0x7D19 # <CJK>
+0xAFC9 0x7D1B # <CJK>
+0xAFCA 0x7F3A # <CJK>
+0xAFCB 0x7F5F # <CJK>
+0xAFCC 0x7F94 # <CJK>
+0xAFCD 0x7FC5 # <CJK>
+0xAFCE 0x7FC1 # <CJK>
+0xAFCF 0x8006 # <CJK>
+0xAFD0 0x8018 # <CJK>
+0xAFD1 0x8015 # <CJK>
+0xAFD2 0x8019 # <CJK>
+0xAFD3 0x8017 # <CJK>
+0xAFD4 0x803D # <CJK>
+0xAFD5 0x803F # <CJK>
+0xAFD6 0x80F1 # <CJK>
+0xAFD7 0x8102 # <CJK>
+0xAFD8 0x80F0 # <CJK>
+0xAFD9 0x8105 # <CJK>
+0xAFDA 0x80ED # <CJK>
+0xAFDB 0x80F4 # <CJK>
+0xAFDC 0x8106 # <CJK>
+0xAFDD 0x80F8 # <CJK>
+0xAFDE 0x80F3 # <CJK>
+0xAFDF 0x8108 # <CJK>
+0xAFE0 0x80FD # <CJK>
+0xAFE1 0x810A # <CJK>
+0xAFE2 0x80FC # <CJK>
+0xAFE3 0x80EF # <CJK>
+0xAFE4 0x81ED # <CJK>
+0xAFE5 0x81EC # <CJK>
+0xAFE6 0x8200 # <CJK>
+0xAFE7 0x8210 # <CJK>
+0xAFE8 0x822A # <CJK>
+0xAFE9 0x822B # <CJK>
+0xAFEA 0x8228 # <CJK>
+0xAFEB 0x822C # <CJK>
+0xAFEC 0x82BB # <CJK>
+0xAFED 0x832B # <CJK>
+0xAFEE 0x8352 # <CJK>
+0xAFEF 0x8354 # <CJK>
+0xAFF0 0x834A # <CJK>
+0xAFF1 0x8338 # <CJK>
+0xAFF2 0x8350 # <CJK>
+0xAFF3 0x8349 # <CJK>
+0xAFF4 0x8335 # <CJK>
+0xAFF5 0x8334 # <CJK>
+0xAFF6 0x834F # <CJK>
+0xAFF7 0x8332 # <CJK>
+0xAFF8 0x8339 # <CJK>
+0xAFF9 0x8336 # <CJK>
+0xAFFA 0x8317 # <CJK>
+0xAFFB 0x8340 # <CJK>
+0xAFFC 0x8331 # <CJK>
+0xAFFD 0x8328 # <CJK>
+0xAFFE 0x8343 # <CJK>
+0xB040 0x8654 # <CJK>
+0xB041 0x868A # <CJK>
+0xB042 0x86AA # <CJK>
+0xB043 0x8693 # <CJK>
+0xB044 0x86A4 # <CJK>
+0xB045 0x86A9 # <CJK>
+0xB046 0x868C # <CJK>
+0xB047 0x86A3 # <CJK>
+0xB048 0x869C # <CJK>
+0xB049 0x8870 # <CJK>
+0xB04A 0x8877 # <CJK>
+0xB04B 0x8881 # <CJK>
+0xB04C 0x8882 # <CJK>
+0xB04D 0x887D # <CJK>
+0xB04E 0x8879 # <CJK>
+0xB04F 0x8A18 # <CJK>
+0xB050 0x8A10 # <CJK>
+0xB051 0x8A0E # <CJK>
+0xB052 0x8A0C # <CJK>
+0xB053 0x8A15 # <CJK>
+0xB054 0x8A0A # <CJK>
+0xB055 0x8A17 # <CJK>
+0xB056 0x8A13 # <CJK>
+0xB057 0x8A16 # <CJK>
+0xB058 0x8A0F # <CJK>
+0xB059 0x8A11 # <CJK>
+0xB05A 0x8C48 # <CJK>
+0xB05B 0x8C7A # <CJK>
+0xB05C 0x8C79 # <CJK>
+0xB05D 0x8CA1 # <CJK>
+0xB05E 0x8CA2 # <CJK>
+0xB05F 0x8D77 # <CJK>
+0xB060 0x8EAC # <CJK>
+0xB061 0x8ED2 # <CJK>
+0xB062 0x8ED4 # <CJK>
+0xB063 0x8ECF # <CJK>
+0xB064 0x8FB1 # <CJK>
+0xB065 0x9001 # <CJK>
+0xB066 0x9006 # <CJK>
+0xB067 0x8FF7 # <CJK>
+0xB068 0x9000 # <CJK>
+0xB069 0x8FFA # <CJK>
+0xB06A 0x8FF4 # <CJK>
+0xB06B 0x9003 # <CJK>
+0xB06C 0x8FFD # <CJK>
+0xB06D 0x9005 # <CJK>
+0xB06E 0x8FF8 # <CJK>
+0xB06F 0x9095 # <CJK>
+0xB070 0x90E1 # <CJK>
+0xB071 0x90DD # <CJK>
+0xB072 0x90E2 # <CJK>
+0xB073 0x9152 # <CJK>
+0xB074 0x914D # <CJK>
+0xB075 0x914C # <CJK>
+0xB076 0x91D8 # <CJK>
+0xB077 0x91DD # <CJK>
+0xB078 0x91D7 # <CJK>
+0xB079 0x91DC # <CJK>
+0xB07A 0x91D9 # <CJK>
+0xB07B 0x9583 # <CJK>
+0xB07C 0x9662 # <CJK>
+0xB07D 0x9663 # <CJK>
+0xB07E 0x9661 # <CJK>
+0xB0A1 0x965B # <CJK>
+0xB0A2 0x965D # <CJK>
+0xB0A3 0x9664 # <CJK>
+0xB0A4 0x9658 # <CJK>
+0xB0A5 0x965E # <CJK>
+0xB0A6 0x96BB # <CJK>
+0xB0A7 0x98E2 # <CJK>
+0xB0A8 0x99AC # <CJK>
+0xB0A9 0x9AA8 # <CJK>
+0xB0AA 0x9AD8 # <CJK>
+0xB0AB 0x9B25 # <CJK>
+0xB0AC 0x9B32 # <CJK>
+0xB0AD 0x9B3C # <CJK>
+0xB0AE 0x4E7E # <CJK>
+0xB0AF 0x507A # <CJK>
+0xB0B0 0x507D # <CJK>
+0xB0B1 0x505C # <CJK>
+0xB0B2 0x5047 # <CJK>
+0xB0B3 0x5043 # <CJK>
+0xB0B4 0x504C # <CJK>
+0xB0B5 0x505A # <CJK>
+0xB0B6 0x5049 # <CJK>
+0xB0B7 0x5065 # <CJK>
+0xB0B8 0x5076 # <CJK>
+0xB0B9 0x504E # <CJK>
+0xB0BA 0x5055 # <CJK>
+0xB0BB 0x5075 # <CJK>
+0xB0BC 0x5074 # <CJK>
+0xB0BD 0x5077 # <CJK>
+0xB0BE 0x504F # <CJK>
+0xB0BF 0x500F # <CJK>
+0xB0C0 0x506F # <CJK>
+0xB0C1 0x506D # <CJK>
+0xB0C2 0x515C # <CJK>
+0xB0C3 0x5195 # <CJK>
+0xB0C4 0x51F0 # <CJK>
+0xB0C5 0x526A # <CJK>
+0xB0C6 0x526F # <CJK>
+0xB0C7 0x52D2 # <CJK>
+0xB0C8 0x52D9 # <CJK>
+0xB0C9 0x52D8 # <CJK>
+0xB0CA 0x52D5 # <CJK>
+0xB0CB 0x5310 # <CJK>
+0xB0CC 0x530F # <CJK>
+0xB0CD 0x5319 # <CJK>
+0xB0CE 0x533F # <CJK>
+0xB0CF 0x5340 # <CJK>
+0xB0D0 0x533E # <CJK>
+0xB0D1 0x53C3 # <CJK>
+0xB0D2 0x66FC # <CJK>
+0xB0D3 0x5546 # <CJK>
+0xB0D4 0x556A # <CJK>
+0xB0D5 0x5566 # <CJK>
+0xB0D6 0x5544 # <CJK>
+0xB0D7 0x555E # <CJK>
+0xB0D8 0x5561 # <CJK>
+0xB0D9 0x5543 # <CJK>
+0xB0DA 0x554A # <CJK>
+0xB0DB 0x5531 # <CJK>
+0xB0DC 0x5556 # <CJK>
+0xB0DD 0x554F # <CJK>
+0xB0DE 0x5555 # <CJK>
+0xB0DF 0x552F # <CJK>
+0xB0E0 0x5564 # <CJK>
+0xB0E1 0x5538 # <CJK>
+0xB0E2 0x552E # <CJK>
+0xB0E3 0x555C # <CJK>
+0xB0E4 0x552C # <CJK>
+0xB0E5 0x5563 # <CJK>
+0xB0E6 0x5533 # <CJK>
+0xB0E7 0x5541 # <CJK>
+0xB0E8 0x5557 # <CJK>
+0xB0E9 0x5708 # <CJK>
+0xB0EA 0x570B # <CJK>
+0xB0EB 0x5709 # <CJK>
+0xB0EC 0x57DF # <CJK>
+0xB0ED 0x5805 # <CJK>
+0xB0EE 0x580A # <CJK>
+0xB0EF 0x5806 # <CJK>
+0xB0F0 0x57E0 # <CJK>
+0xB0F1 0x57E4 # <CJK>
+0xB0F2 0x57FA # <CJK>
+0xB0F3 0x5802 # <CJK>
+0xB0F4 0x5835 # <CJK>
+0xB0F5 0x57F7 # <CJK>
+0xB0F6 0x57F9 # <CJK>
+0xB0F7 0x5920 # <CJK>
+0xB0F8 0x5962 # <CJK>
+0xB0F9 0x5A36 # <CJK>
+0xB0FA 0x5A41 # <CJK>
+0xB0FB 0x5A49 # <CJK>
+0xB0FC 0x5A66 # <CJK>
+0xB0FD 0x5A6A # <CJK>
+0xB0FE 0x5A40 # <CJK>
+0xB140 0x5A3C # <CJK>
+0xB141 0x5A62 # <CJK>
+0xB142 0x5A5A # <CJK>
+0xB143 0x5A46 # <CJK>
+0xB144 0x5A4A # <CJK>
+0xB145 0x5B70 # <CJK>
+0xB146 0x5BC7 # <CJK>
+0xB147 0x5BC5 # <CJK>
+0xB148 0x5BC4 # <CJK>
+0xB149 0x5BC2 # <CJK>
+0xB14A 0x5BBF # <CJK>
+0xB14B 0x5BC6 # <CJK>
+0xB14C 0x5C09 # <CJK>
+0xB14D 0x5C08 # <CJK>
+0xB14E 0x5C07 # <CJK>
+0xB14F 0x5C60 # <CJK>
+0xB150 0x5C5C # <CJK>
+0xB151 0x5C5D # <CJK>
+0xB152 0x5D07 # <CJK>
+0xB153 0x5D06 # <CJK>
+0xB154 0x5D0E # <CJK>
+0xB155 0x5D1B # <CJK>
+0xB156 0x5D16 # <CJK>
+0xB157 0x5D22 # <CJK>
+0xB158 0x5D11 # <CJK>
+0xB159 0x5D29 # <CJK>
+0xB15A 0x5D14 # <CJK>
+0xB15B 0x5D19 # <CJK>
+0xB15C 0x5D24 # <CJK>
+0xB15D 0x5D27 # <CJK>
+0xB15E 0x5D17 # <CJK>
+0xB15F 0x5DE2 # <CJK>
+0xB160 0x5E38 # <CJK>
+0xB161 0x5E36 # <CJK>
+0xB162 0x5E33 # <CJK>
+0xB163 0x5E37 # <CJK>
+0xB164 0x5EB7 # <CJK>
+0xB165 0x5EB8 # <CJK>
+0xB166 0x5EB6 # <CJK>
+0xB167 0x5EB5 # <CJK>
+0xB168 0x5EBE # <CJK>
+0xB169 0x5F35 # <CJK>
+0xB16A 0x5F37 # <CJK>
+0xB16B 0x5F57 # <CJK>
+0xB16C 0x5F6C # <CJK>
+0xB16D 0x5F69 # <CJK>
+0xB16E 0x5F6B # <CJK>
+0xB16F 0x5F97 # <CJK>
+0xB170 0x5F99 # <CJK>
+0xB171 0x5F9E # <CJK>
+0xB172 0x5F98 # <CJK>
+0xB173 0x5FA1 # <CJK>
+0xB174 0x5FA0 # <CJK>
+0xB175 0x5F9C # <CJK>
+0xB176 0x607F # <CJK>
+0xB177 0x60A3 # <CJK>
+0xB178 0x6089 # <CJK>
+0xB179 0x60A0 # <CJK>
+0xB17A 0x60A8 # <CJK>
+0xB17B 0x60CB # <CJK>
+0xB17C 0x60B4 # <CJK>
+0xB17D 0x60E6 # <CJK>
+0xB17E 0x60BD # <CJK>
+0xB1A1 0x60C5 # <CJK>
+0xB1A2 0x60BB # <CJK>
+0xB1A3 0x60B5 # <CJK>
+0xB1A4 0x60DC # <CJK>
+0xB1A5 0x60BC # <CJK>
+0xB1A6 0x60D8 # <CJK>
+0xB1A7 0x60D5 # <CJK>
+0xB1A8 0x60C6 # <CJK>
+0xB1A9 0x60DF # <CJK>
+0xB1AA 0x60B8 # <CJK>
+0xB1AB 0x60DA # <CJK>
+0xB1AC 0x60C7 # <CJK>
+0xB1AD 0x621A # <CJK>
+0xB1AE 0x621B # <CJK>
+0xB1AF 0x6248 # <CJK>
+0xB1B0 0x63A0 # <CJK>
+0xB1B1 0x63A7 # <CJK>
+0xB1B2 0x6372 # <CJK>
+0xB1B3 0x6396 # <CJK>
+0xB1B4 0x63A2 # <CJK>
+0xB1B5 0x63A5 # <CJK>
+0xB1B6 0x6377 # <CJK>
+0xB1B7 0x6367 # <CJK>
+0xB1B8 0x6398 # <CJK>
+0xB1B9 0x63AA # <CJK>
+0xB1BA 0x6371 # <CJK>
+0xB1BB 0x63A9 # <CJK>
+0xB1BC 0x6389 # <CJK>
+0xB1BD 0x6383 # <CJK>
+0xB1BE 0x639B # <CJK>
+0xB1BF 0x636B # <CJK>
+0xB1C0 0x63A8 # <CJK>
+0xB1C1 0x6384 # <CJK>
+0xB1C2 0x6388 # <CJK>
+0xB1C3 0x6399 # <CJK>
+0xB1C4 0x63A1 # <CJK>
+0xB1C5 0x63AC # <CJK>
+0xB1C6 0x6392 # <CJK>
+0xB1C7 0x638F # <CJK>
+0xB1C8 0x6380 # <CJK>
+0xB1C9 0x637B # <CJK>
+0xB1CA 0x6369 # <CJK>
+0xB1CB 0x6368 # <CJK>
+0xB1CC 0x637A # <CJK>
+0xB1CD 0x655D # <CJK>
+0xB1CE 0x6556 # <CJK>
+0xB1CF 0x6551 # <CJK>
+0xB1D0 0x6559 # <CJK>
+0xB1D1 0x6557 # <CJK>
+0xB1D2 0x555F # <CJK>
+0xB1D3 0x654F # <CJK>
+0xB1D4 0x6558 # <CJK>
+0xB1D5 0x6555 # <CJK>
+0xB1D6 0x6554 # <CJK>
+0xB1D7 0x659C # <CJK>
+0xB1D8 0x659B # <CJK>
+0xB1D9 0x65AC # <CJK>
+0xB1DA 0x65CF # <CJK>
+0xB1DB 0x65CB # <CJK>
+0xB1DC 0x65CC # <CJK>
+0xB1DD 0x65CE # <CJK>
+0xB1DE 0x665D # <CJK>
+0xB1DF 0x665A # <CJK>
+0xB1E0 0x6664 # <CJK>
+0xB1E1 0x6668 # <CJK>
+0xB1E2 0x6666 # <CJK>
+0xB1E3 0x665E # <CJK>
+0xB1E4 0x66F9 # <CJK>
+0xB1E5 0x52D7 # <CJK>
+0xB1E6 0x671B # <CJK>
+0xB1E7 0x6881 # <CJK>
+0xB1E8 0x68AF # <CJK>
+0xB1E9 0x68A2 # <CJK>
+0xB1EA 0x6893 # <CJK>
+0xB1EB 0x68B5 # <CJK>
+0xB1EC 0x687F # <CJK>
+0xB1ED 0x6876 # <CJK>
+0xB1EE 0x68B1 # <CJK>
+0xB1EF 0x68A7 # <CJK>
+0xB1F0 0x6897 # <CJK>
+0xB1F1 0x68B0 # <CJK>
+0xB1F2 0x6883 # <CJK>
+0xB1F3 0x68C4 # <CJK>
+0xB1F4 0x68AD # <CJK>
+0xB1F5 0x6886 # <CJK>
+0xB1F6 0x6885 # <CJK>
+0xB1F7 0x6894 # <CJK>
+0xB1F8 0x689D # <CJK>
+0xB1F9 0x68A8 # <CJK>
+0xB1FA 0x689F # <CJK>
+0xB1FB 0x68A1 # <CJK>
+0xB1FC 0x6882 # <CJK>
+0xB1FD 0x6B32 # <CJK>
+0xB1FE 0x6BBA # <CJK>
+0xB240 0x6BEB # <CJK>
+0xB241 0x6BEC # <CJK>
+0xB242 0x6C2B # <CJK>
+0xB243 0x6D8E # <CJK>
+0xB244 0x6DBC # <CJK>
+0xB245 0x6DF3 # <CJK>
+0xB246 0x6DD9 # <CJK>
+0xB247 0x6DB2 # <CJK>
+0xB248 0x6DE1 # <CJK>
+0xB249 0x6DCC # <CJK>
+0xB24A 0x6DE4 # <CJK>
+0xB24B 0x6DFB # <CJK>
+0xB24C 0x6DFA # <CJK>
+0xB24D 0x6E05 # <CJK>
+0xB24E 0x6DC7 # <CJK>
+0xB24F 0x6DCB # <CJK>
+0xB250 0x6DAF # <CJK>
+0xB251 0x6DD1 # <CJK>
+0xB252 0x6DAE # <CJK>
+0xB253 0x6DDE # <CJK>
+0xB254 0x6DF9 # <CJK>
+0xB255 0x6DB8 # <CJK>
+0xB256 0x6DF7 # <CJK>
+0xB257 0x6DF5 # <CJK>
+0xB258 0x6DC5 # <CJK>
+0xB259 0x6DD2 # <CJK>
+0xB25A 0x6E1A # <CJK>
+0xB25B 0x6DB5 # <CJK>
+0xB25C 0x6DDA # <CJK>
+0xB25D 0x6DEB # <CJK>
+0xB25E 0x6DD8 # <CJK>
+0xB25F 0x6DEA # <CJK>
+0xB260 0x6DF1 # <CJK>
+0xB261 0x6DEE # <CJK>
+0xB262 0x6DE8 # <CJK>
+0xB263 0x6DC6 # <CJK>
+0xB264 0x6DC4 # <CJK>
+0xB265 0x6DAA # <CJK>
+0xB266 0x6DEC # <CJK>
+0xB267 0x6DBF # <CJK>
+0xB268 0x6DE6 # <CJK>
+0xB269 0x70F9 # <CJK>
+0xB26A 0x7109 # <CJK>
+0xB26B 0x710A # <CJK>
+0xB26C 0x70FD # <CJK>
+0xB26D 0x70EF # <CJK>
+0xB26E 0x723D # <CJK>
+0xB26F 0x727D # <CJK>
+0xB270 0x7281 # <CJK>
+0xB271 0x731C # <CJK>
+0xB272 0x731B # <CJK>
+0xB273 0x7316 # <CJK>
+0xB274 0x7313 # <CJK>
+0xB275 0x7319 # <CJK>
+0xB276 0x7387 # <CJK>
+0xB277 0x7405 # <CJK>
+0xB278 0x740A # <CJK>
+0xB279 0x7403 # <CJK>
+0xB27A 0x7406 # <CJK>
+0xB27B 0x73FE # <CJK>
+0xB27C 0x740D # <CJK>
+0xB27D 0x74E0 # <CJK>
+0xB27E 0x74F6 # <CJK>
+0xB2A1 0x74F7 # <CJK>
+0xB2A2 0x751C # <CJK>
+0xB2A3 0x7522 # <CJK>
+0xB2A4 0x7565 # <CJK>
+0xB2A5 0x7566 # <CJK>
+0xB2A6 0x7562 # <CJK>
+0xB2A7 0x7570 # <CJK>
+0xB2A8 0x758F # <CJK>
+0xB2A9 0x75D4 # <CJK>
+0xB2AA 0x75D5 # <CJK>
+0xB2AB 0x75B5 # <CJK>
+0xB2AC 0x75CA # <CJK>
+0xB2AD 0x75CD # <CJK>
+0xB2AE 0x768E # <CJK>
+0xB2AF 0x76D4 # <CJK>
+0xB2B0 0x76D2 # <CJK>
+0xB2B1 0x76DB # <CJK>
+0xB2B2 0x7737 # <CJK>
+0xB2B3 0x773E # <CJK>
+0xB2B4 0x773C # <CJK>
+0xB2B5 0x7736 # <CJK>
+0xB2B6 0x7738 # <CJK>
+0xB2B7 0x773A # <CJK>
+0xB2B8 0x786B # <CJK>
+0xB2B9 0x7843 # <CJK>
+0xB2BA 0x784E # <CJK>
+0xB2BB 0x7965 # <CJK>
+0xB2BC 0x7968 # <CJK>
+0xB2BD 0x796D # <CJK>
+0xB2BE 0x79FB # <CJK>
+0xB2BF 0x7A92 # <CJK>
+0xB2C0 0x7A95 # <CJK>
+0xB2C1 0x7B20 # <CJK>
+0xB2C2 0x7B28 # <CJK>
+0xB2C3 0x7B1B # <CJK>
+0xB2C4 0x7B2C # <CJK>
+0xB2C5 0x7B26 # <CJK>
+0xB2C6 0x7B19 # <CJK>
+0xB2C7 0x7B1E # <CJK>
+0xB2C8 0x7B2E # <CJK>
+0xB2C9 0x7C92 # <CJK>
+0xB2CA 0x7C97 # <CJK>
+0xB2CB 0x7C95 # <CJK>
+0xB2CC 0x7D46 # <CJK>
+0xB2CD 0x7D43 # <CJK>
+0xB2CE 0x7D71 # <CJK>
+0xB2CF 0x7D2E # <CJK>
+0xB2D0 0x7D39 # <CJK>
+0xB2D1 0x7D3C # <CJK>
+0xB2D2 0x7D40 # <CJK>
+0xB2D3 0x7D30 # <CJK>
+0xB2D4 0x7D33 # <CJK>
+0xB2D5 0x7D44 # <CJK>
+0xB2D6 0x7D2F # <CJK>
+0xB2D7 0x7D42 # <CJK>
+0xB2D8 0x7D32 # <CJK>
+0xB2D9 0x7D31 # <CJK>
+0xB2DA 0x7F3D # <CJK>
+0xB2DB 0x7F9E # <CJK>
+0xB2DC 0x7F9A # <CJK>
+0xB2DD 0x7FCC # <CJK>
+0xB2DE 0x7FCE # <CJK>
+0xB2DF 0x7FD2 # <CJK>
+0xB2E0 0x801C # <CJK>
+0xB2E1 0x804A # <CJK>
+0xB2E2 0x8046 # <CJK>
+0xB2E3 0x812F # <CJK>
+0xB2E4 0x8116 # <CJK>
+0xB2E5 0x8123 # <CJK>
+0xB2E6 0x812B # <CJK>
+0xB2E7 0x8129 # <CJK>
+0xB2E8 0x8130 # <CJK>
+0xB2E9 0x8124 # <CJK>
+0xB2EA 0x8202 # <CJK>
+0xB2EB 0x8235 # <CJK>
+0xB2EC 0x8237 # <CJK>
+0xB2ED 0x8236 # <CJK>
+0xB2EE 0x8239 # <CJK>
+0xB2EF 0x838E # <CJK>
+0xB2F0 0x839E # <CJK>
+0xB2F1 0x8398 # <CJK>
+0xB2F2 0x8378 # <CJK>
+0xB2F3 0x83A2 # <CJK>
+0xB2F4 0x8396 # <CJK>
+0xB2F5 0x83BD # <CJK>
+0xB2F6 0x83AB # <CJK>
+0xB2F7 0x8392 # <CJK>
+0xB2F8 0x838A # <CJK>
+0xB2F9 0x8393 # <CJK>
+0xB2FA 0x8389 # <CJK>
+0xB2FB 0x83A0 # <CJK>
+0xB2FC 0x8377 # <CJK>
+0xB2FD 0x837B # <CJK>
+0xB2FE 0x837C # <CJK>
+0xB340 0x8386 # <CJK>
+0xB341 0x83A7 # <CJK>
+0xB342 0x8655 # <CJK>
+0xB343 0x5F6A # <CJK>
+0xB344 0x86C7 # <CJK>
+0xB345 0x86C0 # <CJK>
+0xB346 0x86B6 # <CJK>
+0xB347 0x86C4 # <CJK>
+0xB348 0x86B5 # <CJK>
+0xB349 0x86C6 # <CJK>
+0xB34A 0x86CB # <CJK>
+0xB34B 0x86B1 # <CJK>
+0xB34C 0x86AF # <CJK>
+0xB34D 0x86C9 # <CJK>
+0xB34E 0x8853 # <CJK>
+0xB34F 0x889E # <CJK>
+0xB350 0x8888 # <CJK>
+0xB351 0x88AB # <CJK>
+0xB352 0x8892 # <CJK>
+0xB353 0x8896 # <CJK>
+0xB354 0x888D # <CJK>
+0xB355 0x888B # <CJK>
+0xB356 0x8993 # <CJK>
+0xB357 0x898F # <CJK>
+0xB358 0x8A2A # <CJK>
+0xB359 0x8A1D # <CJK>
+0xB35A 0x8A23 # <CJK>
+0xB35B 0x8A25 # <CJK>
+0xB35C 0x8A31 # <CJK>
+0xB35D 0x8A2D # <CJK>
+0xB35E 0x8A1F # <CJK>
+0xB35F 0x8A1B # <CJK>
+0xB360 0x8A22 # <CJK>
+0xB361 0x8C49 # <CJK>
+0xB362 0x8C5A # <CJK>
+0xB363 0x8CA9 # <CJK>
+0xB364 0x8CAC # <CJK>
+0xB365 0x8CAB # <CJK>
+0xB366 0x8CA8 # <CJK>
+0xB367 0x8CAA # <CJK>
+0xB368 0x8CA7 # <CJK>
+0xB369 0x8D67 # <CJK>
+0xB36A 0x8D66 # <CJK>
+0xB36B 0x8DBE # <CJK>
+0xB36C 0x8DBA # <CJK>
+0xB36D 0x8EDB # <CJK>
+0xB36E 0x8EDF # <CJK>
+0xB36F 0x9019 # <CJK>
+0xB370 0x900D # <CJK>
+0xB371 0x901A # <CJK>
+0xB372 0x9017 # <CJK>
+0xB373 0x9023 # <CJK>
+0xB374 0x901F # <CJK>
+0xB375 0x901D # <CJK>
+0xB376 0x9010 # <CJK>
+0xB377 0x9015 # <CJK>
+0xB378 0x901E # <CJK>
+0xB379 0x9020 # <CJK>
+0xB37A 0x900F # <CJK>
+0xB37B 0x9022 # <CJK>
+0xB37C 0x9016 # <CJK>
+0xB37D 0x901B # <CJK>
+0xB37E 0x9014 # <CJK>
+0xB3A1 0x90E8 # <CJK>
+0xB3A2 0x90ED # <CJK>
+0xB3A3 0x90FD # <CJK>
+0xB3A4 0x9157 # <CJK>
+0xB3A5 0x91CE # <CJK>
+0xB3A6 0x91F5 # <CJK>
+0xB3A7 0x91E6 # <CJK>
+0xB3A8 0x91E3 # <CJK>
+0xB3A9 0x91E7 # <CJK>
+0xB3AA 0x91ED # <CJK>
+0xB3AB 0x91E9 # <CJK>
+0xB3AC 0x9589 # <CJK>
+0xB3AD 0x966A # <CJK>
+0xB3AE 0x9675 # <CJK>
+0xB3AF 0x9673 # <CJK>
+0xB3B0 0x9678 # <CJK>
+0xB3B1 0x9670 # <CJK>
+0xB3B2 0x9674 # <CJK>
+0xB3B3 0x9676 # <CJK>
+0xB3B4 0x9677 # <CJK>
+0xB3B5 0x966C # <CJK>
+0xB3B6 0x96C0 # <CJK>
+0xB3B7 0x96EA # <CJK>
+0xB3B8 0x96E9 # <CJK>
+0xB3B9 0x7AE0 # <CJK>
+0xB3BA 0x7ADF # <CJK>
+0xB3BB 0x9802 # <CJK>
+0xB3BC 0x9803 # <CJK>
+0xB3BD 0x9B5A # <CJK>
+0xB3BE 0x9CE5 # <CJK>
+0xB3BF 0x9E75 # <CJK>
+0xB3C0 0x9E7F # <CJK>
+0xB3C1 0x9EA5 # <CJK>
+0xB3C2 0x9EBB # <CJK>
+0xB3C3 0x50A2 # <CJK>
+0xB3C4 0x508D # <CJK>
+0xB3C5 0x5085 # <CJK>
+0xB3C6 0x5099 # <CJK>
+0xB3C7 0x5091 # <CJK>
+0xB3C8 0x5080 # <CJK>
+0xB3C9 0x5096 # <CJK>
+0xB3CA 0x5098 # <CJK>
+0xB3CB 0x509A # <CJK>
+0xB3CC 0x6700 # <CJK>
+0xB3CD 0x51F1 # <CJK>
+0xB3CE 0x5272 # <CJK>
+0xB3CF 0x5274 # <CJK>
+0xB3D0 0x5275 # <CJK>
+0xB3D1 0x5269 # <CJK>
+0xB3D2 0x52DE # <CJK>
+0xB3D3 0x52DD # <CJK>
+0xB3D4 0x52DB # <CJK>
+0xB3D5 0x535A # <CJK>
+0xB3D6 0x53A5 # <CJK>
+0xB3D7 0x557B # <CJK>
+0xB3D8 0x5580 # <CJK>
+0xB3D9 0x55A7 # <CJK>
+0xB3DA 0x557C # <CJK>
+0xB3DB 0x558A # <CJK>
+0xB3DC 0x559D # <CJK>
+0xB3DD 0x5598 # <CJK>
+0xB3DE 0x5582 # <CJK>
+0xB3DF 0x559C # <CJK>
+0xB3E0 0x55AA # <CJK>
+0xB3E1 0x5594 # <CJK>
+0xB3E2 0x5587 # <CJK>
+0xB3E3 0x558B # <CJK>
+0xB3E4 0x5583 # <CJK>
+0xB3E5 0x55B3 # <CJK>
+0xB3E6 0x55AE # <CJK>
+0xB3E7 0x559F # <CJK>
+0xB3E8 0x553E # <CJK>
+0xB3E9 0x55B2 # <CJK>
+0xB3EA 0x559A # <CJK>
+0xB3EB 0x55BB # <CJK>
+0xB3EC 0x55AC # <CJK>
+0xB3ED 0x55B1 # <CJK>
+0xB3EE 0x557E # <CJK>
+0xB3EF 0x5589 # <CJK>
+0xB3F0 0x55AB # <CJK>
+0xB3F1 0x5599 # <CJK>
+0xB3F2 0x570D # <CJK>
+0xB3F3 0x582F # <CJK>
+0xB3F4 0x582A # <CJK>
+0xB3F5 0x5834 # <CJK>
+0xB3F6 0x5824 # <CJK>
+0xB3F7 0x5830 # <CJK>
+0xB3F8 0x5831 # <CJK>
+0xB3F9 0x5821 # <CJK>
+0xB3FA 0x581D # <CJK>
+0xB3FB 0x5820 # <CJK>
+0xB3FC 0x58F9 # <CJK>
+0xB3FD 0x58FA # <CJK>
+0xB3FE 0x5960 # <CJK>
+0xB440 0x5A77 # <CJK>
+0xB441 0x5A9A # <CJK>
+0xB442 0x5A7F # <CJK>
+0xB443 0x5A92 # <CJK>
+0xB444 0x5A9B # <CJK>
+0xB445 0x5AA7 # <CJK>
+0xB446 0x5B73 # <CJK>
+0xB447 0x5B71 # <CJK>
+0xB448 0x5BD2 # <CJK>
+0xB449 0x5BCC # <CJK>
+0xB44A 0x5BD3 # <CJK>
+0xB44B 0x5BD0 # <CJK>
+0xB44C 0x5C0A # <CJK>
+0xB44D 0x5C0B # <CJK>
+0xB44E 0x5C31 # <CJK>
+0xB44F 0x5D4C # <CJK>
+0xB450 0x5D50 # <CJK>
+0xB451 0x5D34 # <CJK>
+0xB452 0x5D47 # <CJK>
+0xB453 0x5DFD # <CJK>
+0xB454 0x5E45 # <CJK>
+0xB455 0x5E3D # <CJK>
+0xB456 0x5E40 # <CJK>
+0xB457 0x5E43 # <CJK>
+0xB458 0x5E7E # <CJK>
+0xB459 0x5ECA # <CJK>
+0xB45A 0x5EC1 # <CJK>
+0xB45B 0x5EC2 # <CJK>
+0xB45C 0x5EC4 # <CJK>
+0xB45D 0x5F3C # <CJK>
+0xB45E 0x5F6D # <CJK>
+0xB45F 0x5FA9 # <CJK>
+0xB460 0x5FAA # <CJK>
+0xB461 0x5FA8 # <CJK>
+0xB462 0x60D1 # <CJK>
+0xB463 0x60E1 # <CJK>
+0xB464 0x60B2 # <CJK>
+0xB465 0x60B6 # <CJK>
+0xB466 0x60E0 # <CJK>
+0xB467 0x611C # <CJK>
+0xB468 0x6123 # <CJK>
+0xB469 0x60FA # <CJK>
+0xB46A 0x6115 # <CJK>
+0xB46B 0x60F0 # <CJK>
+0xB46C 0x60FB # <CJK>
+0xB46D 0x60F4 # <CJK>
+0xB46E 0x6168 # <CJK>
+0xB46F 0x60F1 # <CJK>
+0xB470 0x610E # <CJK>
+0xB471 0x60F6 # <CJK>
+0xB472 0x6109 # <CJK>
+0xB473 0x6100 # <CJK>
+0xB474 0x6112 # <CJK>
+0xB475 0x621F # <CJK>
+0xB476 0x6249 # <CJK>
+0xB477 0x63A3 # <CJK>
+0xB478 0x638C # <CJK>
+0xB479 0x63CF # <CJK>
+0xB47A 0x63C0 # <CJK>
+0xB47B 0x63E9 # <CJK>
+0xB47C 0x63C9 # <CJK>
+0xB47D 0x63C6 # <CJK>
+0xB47E 0x63CD # <CJK>
+0xB4A1 0x63D2 # <CJK>
+0xB4A2 0x63E3 # <CJK>
+0xB4A3 0x63D0 # <CJK>
+0xB4A4 0x63E1 # <CJK>
+0xB4A5 0x63D6 # <CJK>
+0xB4A6 0x63ED # <CJK>
+0xB4A7 0x63EE # <CJK>
+0xB4A8 0x6376 # <CJK>
+0xB4A9 0x63F4 # <CJK>
+0xB4AA 0x63EA # <CJK>
+0xB4AB 0x63DB # <CJK>
+0xB4AC 0x6452 # <CJK>
+0xB4AD 0x63DA # <CJK>
+0xB4AE 0x63F9 # <CJK>
+0xB4AF 0x655E # <CJK>
+0xB4B0 0x6566 # <CJK>
+0xB4B1 0x6562 # <CJK>
+0xB4B2 0x6563 # <CJK>
+0xB4B3 0x6591 # <CJK>
+0xB4B4 0x6590 # <CJK>
+0xB4B5 0x65AF # <CJK>
+0xB4B6 0x666E # <CJK>
+0xB4B7 0x6670 # <CJK>
+0xB4B8 0x6674 # <CJK>
+0xB4B9 0x6676 # <CJK>
+0xB4BA 0x666F # <CJK>
+0xB4BB 0x6691 # <CJK>
+0xB4BC 0x667A # <CJK>
+0xB4BD 0x667E # <CJK>
+0xB4BE 0x6677 # <CJK>
+0xB4BF 0x66FE # <CJK>
+0xB4C0 0x66FF # <CJK>
+0xB4C1 0x671F # <CJK>
+0xB4C2 0x671D # <CJK>
+0xB4C3 0x68FA # <CJK>
+0xB4C4 0x68D5 # <CJK>
+0xB4C5 0x68E0 # <CJK>
+0xB4C6 0x68D8 # <CJK>
+0xB4C7 0x68D7 # <CJK>
+0xB4C8 0x6905 # <CJK>
+0xB4C9 0x68DF # <CJK>
+0xB4CA 0x68F5 # <CJK>
+0xB4CB 0x68EE # <CJK>
+0xB4CC 0x68E7 # <CJK>
+0xB4CD 0x68F9 # <CJK>
+0xB4CE 0x68D2 # <CJK>
+0xB4CF 0x68F2 # <CJK>
+0xB4D0 0x68E3 # <CJK>
+0xB4D1 0x68CB # <CJK>
+0xB4D2 0x68CD # <CJK>
+0xB4D3 0x690D # <CJK>
+0xB4D4 0x6912 # <CJK>
+0xB4D5 0x690E # <CJK>
+0xB4D6 0x68C9 # <CJK>
+0xB4D7 0x68DA # <CJK>
+0xB4D8 0x696E # <CJK>
+0xB4D9 0x68FB # <CJK>
+0xB4DA 0x6B3E # <CJK>
+0xB4DB 0x6B3A # <CJK>
+0xB4DC 0x6B3D # <CJK>
+0xB4DD 0x6B98 # <CJK>
+0xB4DE 0x6B96 # <CJK>
+0xB4DF 0x6BBC # <CJK>
+0xB4E0 0x6BEF # <CJK>
+0xB4E1 0x6C2E # <CJK>
+0xB4E2 0x6C2F # <CJK>
+0xB4E3 0x6C2C # <CJK>
+0xB4E4 0x6E2F # <CJK>
+0xB4E5 0x6E38 # <CJK>
+0xB4E6 0x6E54 # <CJK>
+0xB4E7 0x6E21 # <CJK>
+0xB4E8 0x6E32 # <CJK>
+0xB4E9 0x6E67 # <CJK>
+0xB4EA 0x6E4A # <CJK>
+0xB4EB 0x6E20 # <CJK>
+0xB4EC 0x6E25 # <CJK>
+0xB4ED 0x6E23 # <CJK>
+0xB4EE 0x6E1B # <CJK>
+0xB4EF 0x6E5B # <CJK>
+0xB4F0 0x6E58 # <CJK>
+0xB4F1 0x6E24 # <CJK>
+0xB4F2 0x6E56 # <CJK>
+0xB4F3 0x6E6E # <CJK>
+0xB4F4 0x6E2D # <CJK>
+0xB4F5 0x6E26 # <CJK>
+0xB4F6 0x6E6F # <CJK>
+0xB4F7 0x6E34 # <CJK>
+0xB4F8 0x6E4D # <CJK>
+0xB4F9 0x6E3A # <CJK>
+0xB4FA 0x6E2C # <CJK>
+0xB4FB 0x6E43 # <CJK>
+0xB4FC 0x6E1D # <CJK>
+0xB4FD 0x6E3E # <CJK>
+0xB4FE 0x6ECB # <CJK>
+0xB540 0x6E89 # <CJK>
+0xB541 0x6E19 # <CJK>
+0xB542 0x6E4E # <CJK>
+0xB543 0x6E63 # <CJK>
+0xB544 0x6E44 # <CJK>
+0xB545 0x6E72 # <CJK>
+0xB546 0x6E69 # <CJK>
+0xB547 0x6E5F # <CJK>
+0xB548 0x7119 # <CJK>
+0xB549 0x711A # <CJK>
+0xB54A 0x7126 # <CJK>
+0xB54B 0x7130 # <CJK>
+0xB54C 0x7121 # <CJK>
+0xB54D 0x7136 # <CJK>
+0xB54E 0x716E # <CJK>
+0xB54F 0x711C # <CJK>
+0xB550 0x724C # <CJK>
+0xB551 0x7284 # <CJK>
+0xB552 0x7280 # <CJK>
+0xB553 0x7336 # <CJK>
+0xB554 0x7325 # <CJK>
+0xB555 0x7334 # <CJK>
+0xB556 0x7329 # <CJK>
+0xB557 0x743A # <CJK>
+0xB558 0x742A # <CJK>
+0xB559 0x7433 # <CJK>
+0xB55A 0x7422 # <CJK>
+0xB55B 0x7425 # <CJK>
+0xB55C 0x7435 # <CJK>
+0xB55D 0x7436 # <CJK>
+0xB55E 0x7434 # <CJK>
+0xB55F 0x742F # <CJK>
+0xB560 0x741B # <CJK>
+0xB561 0x7426 # <CJK>
+0xB562 0x7428 # <CJK>
+0xB563 0x7525 # <CJK>
+0xB564 0x7526 # <CJK>
+0xB565 0x756B # <CJK>
+0xB566 0x756A # <CJK>
+0xB567 0x75E2 # <CJK>
+0xB568 0x75DB # <CJK>
+0xB569 0x75E3 # <CJK>
+0xB56A 0x75D9 # <CJK>
+0xB56B 0x75D8 # <CJK>
+0xB56C 0x75DE # <CJK>
+0xB56D 0x75E0 # <CJK>
+0xB56E 0x767B # <CJK>
+0xB56F 0x767C # <CJK>
+0xB570 0x7696 # <CJK>
+0xB571 0x7693 # <CJK>
+0xB572 0x76B4 # <CJK>
+0xB573 0x76DC # <CJK>
+0xB574 0x774F # <CJK>
+0xB575 0x77ED # <CJK>
+0xB576 0x785D # <CJK>
+0xB577 0x786C # <CJK>
+0xB578 0x786F # <CJK>
+0xB579 0x7A0D # <CJK>
+0xB57A 0x7A08 # <CJK>
+0xB57B 0x7A0B # <CJK>
+0xB57C 0x7A05 # <CJK>
+0xB57D 0x7A00 # <CJK>
+0xB57E 0x7A98 # <CJK>
+0xB5A1 0x7A97 # <CJK>
+0xB5A2 0x7A96 # <CJK>
+0xB5A3 0x7AE5 # <CJK>
+0xB5A4 0x7AE3 # <CJK>
+0xB5A5 0x7B49 # <CJK>
+0xB5A6 0x7B56 # <CJK>
+0xB5A7 0x7B46 # <CJK>
+0xB5A8 0x7B50 # <CJK>
+0xB5A9 0x7B52 # <CJK>
+0xB5AA 0x7B54 # <CJK>
+0xB5AB 0x7B4D # <CJK>
+0xB5AC 0x7B4B # <CJK>
+0xB5AD 0x7B4F # <CJK>
+0xB5AE 0x7B51 # <CJK>
+0xB5AF 0x7C9F # <CJK>
+0xB5B0 0x7CA5 # <CJK>
+0xB5B1 0x7D5E # <CJK>
+0xB5B2 0x7D50 # <CJK>
+0xB5B3 0x7D68 # <CJK>
+0xB5B4 0x7D55 # <CJK>
+0xB5B5 0x7D2B # <CJK>
+0xB5B6 0x7D6E # <CJK>
+0xB5B7 0x7D72 # <CJK>
+0xB5B8 0x7D61 # <CJK>
+0xB5B9 0x7D66 # <CJK>
+0xB5BA 0x7D62 # <CJK>
+0xB5BB 0x7D70 # <CJK>
+0xB5BC 0x7D73 # <CJK>
+0xB5BD 0x5584 # <CJK>
+0xB5BE 0x7FD4 # <CJK>
+0xB5BF 0x7FD5 # <CJK>
+0xB5C0 0x800B # <CJK>
+0xB5C1 0x8052 # <CJK>
+0xB5C2 0x8085 # <CJK>
+0xB5C3 0x8155 # <CJK>
+0xB5C4 0x8154 # <CJK>
+0xB5C5 0x814B # <CJK>
+0xB5C6 0x8151 # <CJK>
+0xB5C7 0x814E # <CJK>
+0xB5C8 0x8139 # <CJK>
+0xB5C9 0x8146 # <CJK>
+0xB5CA 0x813E # <CJK>
+0xB5CB 0x814C # <CJK>
+0xB5CC 0x8153 # <CJK>
+0xB5CD 0x8174 # <CJK>
+0xB5CE 0x8212 # <CJK>
+0xB5CF 0x821C # <CJK>
+0xB5D0 0x83E9 # <CJK>
+0xB5D1 0x8403 # <CJK>
+0xB5D2 0x83F8 # <CJK>
+0xB5D3 0x840D # <CJK>
+0xB5D4 0x83E0 # <CJK>
+0xB5D5 0x83C5 # <CJK>
+0xB5D6 0x840B # <CJK>
+0xB5D7 0x83C1 # <CJK>
+0xB5D8 0x83EF # <CJK>
+0xB5D9 0x83F1 # <CJK>
+0xB5DA 0x83F4 # <CJK>
+0xB5DB 0x8457 # <CJK>
+0xB5DC 0x840A # <CJK>
+0xB5DD 0x83F0 # <CJK>
+0xB5DE 0x840C # <CJK>
+0xB5DF 0x83CC # <CJK>
+0xB5E0 0x83FD # <CJK>
+0xB5E1 0x83F2 # <CJK>
+0xB5E2 0x83CA # <CJK>
+0xB5E3 0x8438 # <CJK>
+0xB5E4 0x840E # <CJK>
+0xB5E5 0x8404 # <CJK>
+0xB5E6 0x83DC # <CJK>
+0xB5E7 0x8407 # <CJK>
+0xB5E8 0x83D4 # <CJK>
+0xB5E9 0x83DF # <CJK>
+0xB5EA 0x865B # <CJK>
+0xB5EB 0x86DF # <CJK>
+0xB5EC 0x86D9 # <CJK>
+0xB5ED 0x86ED # <CJK>
+0xB5EE 0x86D4 # <CJK>
+0xB5EF 0x86DB # <CJK>
+0xB5F0 0x86E4 # <CJK>
+0xB5F1 0x86D0 # <CJK>
+0xB5F2 0x86DE # <CJK>
+0xB5F3 0x8857 # <CJK>
+0xB5F4 0x88C1 # <CJK>
+0xB5F5 0x88C2 # <CJK>
+0xB5F6 0x88B1 # <CJK>
+0xB5F7 0x8983 # <CJK>
+0xB5F8 0x8996 # <CJK>
+0xB5F9 0x8A3B # <CJK>
+0xB5FA 0x8A60 # <CJK>
+0xB5FB 0x8A55 # <CJK>
+0xB5FC 0x8A5E # <CJK>
+0xB5FD 0x8A3C # <CJK>
+0xB5FE 0x8A41 # <CJK>
+0xB640 0x8A54 # <CJK>
+0xB641 0x8A5B # <CJK>
+0xB642 0x8A50 # <CJK>
+0xB643 0x8A46 # <CJK>
+0xB644 0x8A34 # <CJK>
+0xB645 0x8A3A # <CJK>
+0xB646 0x8A36 # <CJK>
+0xB647 0x8A56 # <CJK>
+0xB648 0x8C61 # <CJK>
+0xB649 0x8C82 # <CJK>
+0xB64A 0x8CAF # <CJK>
+0xB64B 0x8CBC # <CJK>
+0xB64C 0x8CB3 # <CJK>
+0xB64D 0x8CBD # <CJK>
+0xB64E 0x8CC1 # <CJK>
+0xB64F 0x8CBB # <CJK>
+0xB650 0x8CC0 # <CJK>
+0xB651 0x8CB4 # <CJK>
+0xB652 0x8CB7 # <CJK>
+0xB653 0x8CB6 # <CJK>
+0xB654 0x8CBF # <CJK>
+0xB655 0x8CB8 # <CJK>
+0xB656 0x8D8A # <CJK>
+0xB657 0x8D85 # <CJK>
+0xB658 0x8D81 # <CJK>
+0xB659 0x8DCE # <CJK>
+0xB65A 0x8DDD # <CJK>
+0xB65B 0x8DCB # <CJK>
+0xB65C 0x8DDA # <CJK>
+0xB65D 0x8DD1 # <CJK>
+0xB65E 0x8DCC # <CJK>
+0xB65F 0x8DDB # <CJK>
+0xB660 0x8DC6 # <CJK>
+0xB661 0x8EFB # <CJK>
+0xB662 0x8EF8 # <CJK>
+0xB663 0x8EFC # <CJK>
+0xB664 0x8F9C # <CJK>
+0xB665 0x902E # <CJK>
+0xB666 0x9035 # <CJK>
+0xB667 0x9031 # <CJK>
+0xB668 0x9038 # <CJK>
+0xB669 0x9032 # <CJK>
+0xB66A 0x9036 # <CJK>
+0xB66B 0x9102 # <CJK>
+0xB66C 0x90F5 # <CJK>
+0xB66D 0x9109 # <CJK>
+0xB66E 0x90FE # <CJK>
+0xB66F 0x9163 # <CJK>
+0xB670 0x9165 # <CJK>
+0xB671 0x91CF # <CJK>
+0xB672 0x9214 # <CJK>
+0xB673 0x9215 # <CJK>
+0xB674 0x9223 # <CJK>
+0xB675 0x9209 # <CJK>
+0xB676 0x921E # <CJK>
+0xB677 0x920D # <CJK>
+0xB678 0x9210 # <CJK>
+0xB679 0x9207 # <CJK>
+0xB67A 0x9211 # <CJK>
+0xB67B 0x9594 # <CJK>
+0xB67C 0x958F # <CJK>
+0xB67D 0x958B # <CJK>
+0xB67E 0x9591 # <CJK>
+0xB6A1 0x9593 # <CJK>
+0xB6A2 0x9592 # <CJK>
+0xB6A3 0x958E # <CJK>
+0xB6A4 0x968A # <CJK>
+0xB6A5 0x968E # <CJK>
+0xB6A6 0x968B # <CJK>
+0xB6A7 0x967D # <CJK>
+0xB6A8 0x9685 # <CJK>
+0xB6A9 0x9686 # <CJK>
+0xB6AA 0x968D # <CJK>
+0xB6AB 0x9672 # <CJK>
+0xB6AC 0x9684 # <CJK>
+0xB6AD 0x96C1 # <CJK>
+0xB6AE 0x96C5 # <CJK>
+0xB6AF 0x96C4 # <CJK>
+0xB6B0 0x96C6 # <CJK>
+0xB6B1 0x96C7 # <CJK>
+0xB6B2 0x96EF # <CJK>
+0xB6B3 0x96F2 # <CJK>
+0xB6B4 0x97CC # <CJK>
+0xB6B5 0x9805 # <CJK>
+0xB6B6 0x9806 # <CJK>
+0xB6B7 0x9808 # <CJK>
+0xB6B8 0x98E7 # <CJK>
+0xB6B9 0x98EA # <CJK>
+0xB6BA 0x98EF # <CJK>
+0xB6BB 0x98E9 # <CJK>
+0xB6BC 0x98F2 # <CJK>
+0xB6BD 0x98ED # <CJK>
+0xB6BE 0x99AE # <CJK>
+0xB6BF 0x99AD # <CJK>
+0xB6C0 0x9EC3 # <CJK>
+0xB6C1 0x9ECD # <CJK>
+0xB6C2 0x9ED1 # <CJK>
+0xB6C3 0x4E82 # <CJK>
+0xB6C4 0x50AD # <CJK>
+0xB6C5 0x50B5 # <CJK>
+0xB6C6 0x50B2 # <CJK>
+0xB6C7 0x50B3 # <CJK>
+0xB6C8 0x50C5 # <CJK>
+0xB6C9 0x50BE # <CJK>
+0xB6CA 0x50AC # <CJK>
+0xB6CB 0x50B7 # <CJK>
+0xB6CC 0x50BB # <CJK>
+0xB6CD 0x50AF # <CJK>
+0xB6CE 0x50C7 # <CJK>
+0xB6CF 0x527F # <CJK>
+0xB6D0 0x5277 # <CJK>
+0xB6D1 0x527D # <CJK>
+0xB6D2 0x52DF # <CJK>
+0xB6D3 0x52E6 # <CJK>
+0xB6D4 0x52E4 # <CJK>
+0xB6D5 0x52E2 # <CJK>
+0xB6D6 0x52E3 # <CJK>
+0xB6D7 0x532F # <CJK>
+0xB6D8 0x55DF # <CJK>
+0xB6D9 0x55E8 # <CJK>
+0xB6DA 0x55D3 # <CJK>
+0xB6DB 0x55E6 # <CJK>
+0xB6DC 0x55CE # <CJK>
+0xB6DD 0x55DC # <CJK>
+0xB6DE 0x55C7 # <CJK>
+0xB6DF 0x55D1 # <CJK>
+0xB6E0 0x55E3 # <CJK>
+0xB6E1 0x55E4 # <CJK>
+0xB6E2 0x55EF # <CJK>
+0xB6E3 0x55DA # <CJK>
+0xB6E4 0x55E1 # <CJK>
+0xB6E5 0x55C5 # <CJK>
+0xB6E6 0x55C6 # <CJK>
+0xB6E7 0x55E5 # <CJK>
+0xB6E8 0x55C9 # <CJK>
+0xB6E9 0x5712 # <CJK>
+0xB6EA 0x5713 # <CJK>
+0xB6EB 0x585E # <CJK>
+0xB6EC 0x5851 # <CJK>
+0xB6ED 0x5858 # <CJK>
+0xB6EE 0x5857 # <CJK>
+0xB6EF 0x585A # <CJK>
+0xB6F0 0x5854 # <CJK>
+0xB6F1 0x586B # <CJK>
+0xB6F2 0x584C # <CJK>
+0xB6F3 0x586D # <CJK>
+0xB6F4 0x584A # <CJK>
+0xB6F5 0x5862 # <CJK>
+0xB6F6 0x5852 # <CJK>
+0xB6F7 0x584B # <CJK>
+0xB6F8 0x5967 # <CJK>
+0xB6F9 0x5AC1 # <CJK>
+0xB6FA 0x5AC9 # <CJK>
+0xB6FB 0x5ACC # <CJK>
+0xB6FC 0x5ABE # <CJK>
+0xB6FD 0x5ABD # <CJK>
+0xB6FE 0x5ABC # <CJK>
+0xB740 0x5AB3 # <CJK>
+0xB741 0x5AC2 # <CJK>
+0xB742 0x5AB2 # <CJK>
+0xB743 0x5D69 # <CJK>
+0xB744 0x5D6F # <CJK>
+0xB745 0x5E4C # <CJK>
+0xB746 0x5E79 # <CJK>
+0xB747 0x5EC9 # <CJK>
+0xB748 0x5EC8 # <CJK>
+0xB749 0x5F12 # <CJK>
+0xB74A 0x5F59 # <CJK>
+0xB74B 0x5FAC # <CJK>
+0xB74C 0x5FAE # <CJK>
+0xB74D 0x611A # <CJK>
+0xB74E 0x610F # <CJK>
+0xB74F 0x6148 # <CJK>
+0xB750 0x611F # <CJK>
+0xB751 0x60F3 # <CJK>
+0xB752 0x611B # <CJK>
+0xB753 0x60F9 # <CJK>
+0xB754 0x6101 # <CJK>
+0xB755 0x6108 # <CJK>
+0xB756 0x614E # <CJK>
+0xB757 0x614C # <CJK>
+0xB758 0x6144 # <CJK>
+0xB759 0x614D # <CJK>
+0xB75A 0x613E # <CJK>
+0xB75B 0x6134 # <CJK>
+0xB75C 0x6127 # <CJK>
+0xB75D 0x610D # <CJK>
+0xB75E 0x6106 # <CJK>
+0xB75F 0x6137 # <CJK>
+0xB760 0x6221 # <CJK>
+0xB761 0x6222 # <CJK>
+0xB762 0x6413 # <CJK>
+0xB763 0x643E # <CJK>
+0xB764 0x641E # <CJK>
+0xB765 0x642A # <CJK>
+0xB766 0x642D # <CJK>
+0xB767 0x643D # <CJK>
+0xB768 0x642C # <CJK>
+0xB769 0x640F # <CJK>
+0xB76A 0x641C # <CJK>
+0xB76B 0x6414 # <CJK>
+0xB76C 0x640D # <CJK>
+0xB76D 0x6436 # <CJK>
+0xB76E 0x6416 # <CJK>
+0xB76F 0x6417 # <CJK>
+0xB770 0x6406 # <CJK>
+0xB771 0x656C # <CJK>
+0xB772 0x659F # <CJK>
+0xB773 0x65B0 # <CJK>
+0xB774 0x6697 # <CJK>
+0xB775 0x6689 # <CJK>
+0xB776 0x6687 # <CJK>
+0xB777 0x6688 # <CJK>
+0xB778 0x6696 # <CJK>
+0xB779 0x6684 # <CJK>
+0xB77A 0x6698 # <CJK>
+0xB77B 0x668D # <CJK>
+0xB77C 0x6703 # <CJK>
+0xB77D 0x6994 # <CJK>
+0xB77E 0x696D # <CJK>
+0xB7A1 0x695A # <CJK>
+0xB7A2 0x6977 # <CJK>
+0xB7A3 0x6960 # <CJK>
+0xB7A4 0x6954 # <CJK>
+0xB7A5 0x6975 # <CJK>
+0xB7A6 0x6930 # <CJK>
+0xB7A7 0x6982 # <CJK>
+0xB7A8 0x694A # <CJK>
+0xB7A9 0x6968 # <CJK>
+0xB7AA 0x696B # <CJK>
+0xB7AB 0x695E # <CJK>
+0xB7AC 0x6953 # <CJK>
+0xB7AD 0x6979 # <CJK>
+0xB7AE 0x6986 # <CJK>
+0xB7AF 0x695D # <CJK>
+0xB7B0 0x6963 # <CJK>
+0xB7B1 0x695B # <CJK>
+0xB7B2 0x6B47 # <CJK>
+0xB7B3 0x6B72 # <CJK>
+0xB7B4 0x6BC0 # <CJK>
+0xB7B5 0x6BBF # <CJK>
+0xB7B6 0x6BD3 # <CJK>
+0xB7B7 0x6BFD # <CJK>
+0xB7B8 0x6EA2 # <CJK>
+0xB7B9 0x6EAF # <CJK>
+0xB7BA 0x6ED3 # <CJK>
+0xB7BB 0x6EB6 # <CJK>
+0xB7BC 0x6EC2 # <CJK>
+0xB7BD 0x6E90 # <CJK>
+0xB7BE 0x6E9D # <CJK>
+0xB7BF 0x6EC7 # <CJK>
+0xB7C0 0x6EC5 # <CJK>
+0xB7C1 0x6EA5 # <CJK>
+0xB7C2 0x6E98 # <CJK>
+0xB7C3 0x6EBC # <CJK>
+0xB7C4 0x6EBA # <CJK>
+0xB7C5 0x6EAB # <CJK>
+0xB7C6 0x6ED1 # <CJK>
+0xB7C7 0x6E96 # <CJK>
+0xB7C8 0x6E9C # <CJK>
+0xB7C9 0x6EC4 # <CJK>
+0xB7CA 0x6ED4 # <CJK>
+0xB7CB 0x6EAA # <CJK>
+0xB7CC 0x6EA7 # <CJK>
+0xB7CD 0x6EB4 # <CJK>
+0xB7CE 0x714E # <CJK>
+0xB7CF 0x7159 # <CJK>
+0xB7D0 0x7169 # <CJK>
+0xB7D1 0x7164 # <CJK>
+0xB7D2 0x7149 # <CJK>
+0xB7D3 0x7167 # <CJK>
+0xB7D4 0x715C # <CJK>
+0xB7D5 0x716C # <CJK>
+0xB7D6 0x7166 # <CJK>
+0xB7D7 0x714C # <CJK>
+0xB7D8 0x7165 # <CJK>
+0xB7D9 0x715E # <CJK>
+0xB7DA 0x7146 # <CJK>
+0xB7DB 0x7168 # <CJK>
+0xB7DC 0x7156 # <CJK>
+0xB7DD 0x723A # <CJK>
+0xB7DE 0x7252 # <CJK>
+0xB7DF 0x7337 # <CJK>
+0xB7E0 0x7345 # <CJK>
+0xB7E1 0x733F # <CJK>
+0xB7E2 0x733E # <CJK>
+0xB7E3 0x746F # <CJK>
+0xB7E4 0x745A # <CJK>
+0xB7E5 0x7455 # <CJK>
+0xB7E6 0x745F # <CJK>
+0xB7E7 0x745E # <CJK>
+0xB7E8 0x7441 # <CJK>
+0xB7E9 0x743F # <CJK>
+0xB7EA 0x7459 # <CJK>
+0xB7EB 0x745B # <CJK>
+0xB7EC 0x745C # <CJK>
+0xB7ED 0x7576 # <CJK>
+0xB7EE 0x7578 # <CJK>
+0xB7EF 0x7600 # <CJK>
+0xB7F0 0x75F0 # <CJK>
+0xB7F1 0x7601 # <CJK>
+0xB7F2 0x75F2 # <CJK>
+0xB7F3 0x75F1 # <CJK>
+0xB7F4 0x75FA # <CJK>
+0xB7F5 0x75FF # <CJK>
+0xB7F6 0x75F4 # <CJK>
+0xB7F7 0x75F3 # <CJK>
+0xB7F8 0x76DE # <CJK>
+0xB7F9 0x76DF # <CJK>
+0xB7FA 0x775B # <CJK>
+0xB7FB 0x776B # <CJK>
+0xB7FC 0x7766 # <CJK>
+0xB7FD 0x775E # <CJK>
+0xB7FE 0x7763 # <CJK>
+0xB840 0x7779 # <CJK>
+0xB841 0x776A # <CJK>
+0xB842 0x776C # <CJK>
+0xB843 0x775C # <CJK>
+0xB844 0x7765 # <CJK>
+0xB845 0x7768 # <CJK>
+0xB846 0x7762 # <CJK>
+0xB847 0x77EE # <CJK>
+0xB848 0x788E # <CJK>
+0xB849 0x78B0 # <CJK>
+0xB84A 0x7897 # <CJK>
+0xB84B 0x7898 # <CJK>
+0xB84C 0x788C # <CJK>
+0xB84D 0x7889 # <CJK>
+0xB84E 0x787C # <CJK>
+0xB84F 0x7891 # <CJK>
+0xB850 0x7893 # <CJK>
+0xB851 0x787F # <CJK>
+0xB852 0x797A # <CJK>
+0xB853 0x797F # <CJK>
+0xB854 0x7981 # <CJK>
+0xB855 0x842C # <CJK>
+0xB856 0x79BD # <CJK>
+0xB857 0x7A1C # <CJK>
+0xB858 0x7A1A # <CJK>
+0xB859 0x7A20 # <CJK>
+0xB85A 0x7A14 # <CJK>
+0xB85B 0x7A1F # <CJK>
+0xB85C 0x7A1E # <CJK>
+0xB85D 0x7A9F # <CJK>
+0xB85E 0x7AA0 # <CJK>
+0xB85F 0x7B77 # <CJK>
+0xB860 0x7BC0 # <CJK>
+0xB861 0x7B60 # <CJK>
+0xB862 0x7B6E # <CJK>
+0xB863 0x7B67 # <CJK>
+0xB864 0x7CB1 # <CJK>
+0xB865 0x7CB3 # <CJK>
+0xB866 0x7CB5 # <CJK>
+0xB867 0x7D93 # <CJK>
+0xB868 0x7D79 # <CJK>
+0xB869 0x7D91 # <CJK>
+0xB86A 0x7D81 # <CJK>
+0xB86B 0x7D8F # <CJK>
+0xB86C 0x7D5B # <CJK>
+0xB86D 0x7F6E # <CJK>
+0xB86E 0x7F69 # <CJK>
+0xB86F 0x7F6A # <CJK>
+0xB870 0x7F72 # <CJK>
+0xB871 0x7FA9 # <CJK>
+0xB872 0x7FA8 # <CJK>
+0xB873 0x7FA4 # <CJK>
+0xB874 0x8056 # <CJK>
+0xB875 0x8058 # <CJK>
+0xB876 0x8086 # <CJK>
+0xB877 0x8084 # <CJK>
+0xB878 0x8171 # <CJK>
+0xB879 0x8170 # <CJK>
+0xB87A 0x8178 # <CJK>
+0xB87B 0x8165 # <CJK>
+0xB87C 0x816E # <CJK>
+0xB87D 0x8173 # <CJK>
+0xB87E 0x816B # <CJK>
+0xB8A1 0x8179 # <CJK>
+0xB8A2 0x817A # <CJK>
+0xB8A3 0x8166 # <CJK>
+0xB8A4 0x8205 # <CJK>
+0xB8A5 0x8247 # <CJK>
+0xB8A6 0x8482 # <CJK>
+0xB8A7 0x8477 # <CJK>
+0xB8A8 0x843D # <CJK>
+0xB8A9 0x8431 # <CJK>
+0xB8AA 0x8475 # <CJK>
+0xB8AB 0x8466 # <CJK>
+0xB8AC 0x846B # <CJK>
+0xB8AD 0x8449 # <CJK>
+0xB8AE 0x846C # <CJK>
+0xB8AF 0x845B # <CJK>
+0xB8B0 0x843C # <CJK>
+0xB8B1 0x8435 # <CJK>
+0xB8B2 0x8461 # <CJK>
+0xB8B3 0x8463 # <CJK>
+0xB8B4 0x8469 # <CJK>
+0xB8B5 0x846D # <CJK>
+0xB8B6 0x8446 # <CJK>
+0xB8B7 0x865E # <CJK>
+0xB8B8 0x865C # <CJK>
+0xB8B9 0x865F # <CJK>
+0xB8BA 0x86F9 # <CJK>
+0xB8BB 0x8713 # <CJK>
+0xB8BC 0x8708 # <CJK>
+0xB8BD 0x8707 # <CJK>
+0xB8BE 0x8700 # <CJK>
+0xB8BF 0x86FE # <CJK>
+0xB8C0 0x86FB # <CJK>
+0xB8C1 0x8702 # <CJK>
+0xB8C2 0x8703 # <CJK>
+0xB8C3 0x8706 # <CJK>
+0xB8C4 0x870A # <CJK>
+0xB8C5 0x8859 # <CJK>
+0xB8C6 0x88DF # <CJK>
+0xB8C7 0x88D4 # <CJK>
+0xB8C8 0x88D9 # <CJK>
+0xB8C9 0x88DC # <CJK>
+0xB8CA 0x88D8 # <CJK>
+0xB8CB 0x88DD # <CJK>
+0xB8CC 0x88E1 # <CJK>
+0xB8CD 0x88CA # <CJK>
+0xB8CE 0x88D5 # <CJK>
+0xB8CF 0x88D2 # <CJK>
+0xB8D0 0x899C # <CJK>
+0xB8D1 0x89E3 # <CJK>
+0xB8D2 0x8A6B # <CJK>
+0xB8D3 0x8A72 # <CJK>
+0xB8D4 0x8A73 # <CJK>
+0xB8D5 0x8A66 # <CJK>
+0xB8D6 0x8A69 # <CJK>
+0xB8D7 0x8A70 # <CJK>
+0xB8D8 0x8A87 # <CJK>
+0xB8D9 0x8A7C # <CJK>
+0xB8DA 0x8A63 # <CJK>
+0xB8DB 0x8AA0 # <CJK>
+0xB8DC 0x8A71 # <CJK>
+0xB8DD 0x8A85 # <CJK>
+0xB8DE 0x8A6D # <CJK>
+0xB8DF 0x8A62 # <CJK>
+0xB8E0 0x8A6E # <CJK>
+0xB8E1 0x8A6C # <CJK>
+0xB8E2 0x8A79 # <CJK>
+0xB8E3 0x8A7B # <CJK>
+0xB8E4 0x8A3E # <CJK>
+0xB8E5 0x8A68 # <CJK>
+0xB8E6 0x8C62 # <CJK>
+0xB8E7 0x8C8A # <CJK>
+0xB8E8 0x8C89 # <CJK>
+0xB8E9 0x8CCA # <CJK>
+0xB8EA 0x8CC7 # <CJK>
+0xB8EB 0x8CC8 # <CJK>
+0xB8EC 0x8CC4 # <CJK>
+0xB8ED 0x8CB2 # <CJK>
+0xB8EE 0x8CC3 # <CJK>
+0xB8EF 0x8CC2 # <CJK>
+0xB8F0 0x8CC5 # <CJK>
+0xB8F1 0x8DE1 # <CJK>
+0xB8F2 0x8DDF # <CJK>
+0xB8F3 0x8DE8 # <CJK>
+0xB8F4 0x8DEF # <CJK>
+0xB8F5 0x8DF3 # <CJK>
+0xB8F6 0x8DFA # <CJK>
+0xB8F7 0x8DEA # <CJK>
+0xB8F8 0x8DE4 # <CJK>
+0xB8F9 0x8DE6 # <CJK>
+0xB8FA 0x8EB2 # <CJK>
+0xB8FB 0x8F03 # <CJK>
+0xB8FC 0x8F09 # <CJK>
+0xB8FD 0x8EFE # <CJK>
+0xB8FE 0x8F0A # <CJK>
+0xB940 0x8F9F # <CJK>
+0xB941 0x8FB2 # <CJK>
+0xB942 0x904B # <CJK>
+0xB943 0x904A # <CJK>
+0xB944 0x9053 # <CJK>
+0xB945 0x9042 # <CJK>
+0xB946 0x9054 # <CJK>
+0xB947 0x903C # <CJK>
+0xB948 0x9055 # <CJK>
+0xB949 0x9050 # <CJK>
+0xB94A 0x9047 # <CJK>
+0xB94B 0x904F # <CJK>
+0xB94C 0x904E # <CJK>
+0xB94D 0x904D # <CJK>
+0xB94E 0x9051 # <CJK>
+0xB94F 0x903E # <CJK>
+0xB950 0x9041 # <CJK>
+0xB951 0x9112 # <CJK>
+0xB952 0x9117 # <CJK>
+0xB953 0x916C # <CJK>
+0xB954 0x916A # <CJK>
+0xB955 0x9169 # <CJK>
+0xB956 0x91C9 # <CJK>
+0xB957 0x9237 # <CJK>
+0xB958 0x9257 # <CJK>
+0xB959 0x9238 # <CJK>
+0xB95A 0x923D # <CJK>
+0xB95B 0x9240 # <CJK>
+0xB95C 0x923E # <CJK>
+0xB95D 0x925B # <CJK>
+0xB95E 0x924B # <CJK>
+0xB95F 0x9264 # <CJK>
+0xB960 0x9251 # <CJK>
+0xB961 0x9234 # <CJK>
+0xB962 0x9249 # <CJK>
+0xB963 0x924D # <CJK>
+0xB964 0x9245 # <CJK>
+0xB965 0x9239 # <CJK>
+0xB966 0x923F # <CJK>
+0xB967 0x925A # <CJK>
+0xB968 0x9598 # <CJK>
+0xB969 0x9698 # <CJK>
+0xB96A 0x9694 # <CJK>
+0xB96B 0x9695 # <CJK>
+0xB96C 0x96CD # <CJK>
+0xB96D 0x96CB # <CJK>
+0xB96E 0x96C9 # <CJK>
+0xB96F 0x96CA # <CJK>
+0xB970 0x96F7 # <CJK>
+0xB971 0x96FB # <CJK>
+0xB972 0x96F9 # <CJK>
+0xB973 0x96F6 # <CJK>
+0xB974 0x9756 # <CJK>
+0xB975 0x9774 # <CJK>
+0xB976 0x9776 # <CJK>
+0xB977 0x9810 # <CJK>
+0xB978 0x9811 # <CJK>
+0xB979 0x9813 # <CJK>
+0xB97A 0x980A # <CJK>
+0xB97B 0x9812 # <CJK>
+0xB97C 0x980C # <CJK>
+0xB97D 0x98FC # <CJK>
+0xB97E 0x98F4 # <CJK>
+0xB9A1 0x98FD # <CJK>
+0xB9A2 0x98FE # <CJK>
+0xB9A3 0x99B3 # <CJK>
+0xB9A4 0x99B1 # <CJK>
+0xB9A5 0x99B4 # <CJK>
+0xB9A6 0x9AE1 # <CJK>
+0xB9A7 0x9CE9 # <CJK>
+0xB9A8 0x9E82 # <CJK>
+0xB9A9 0x9F0E # <CJK>
+0xB9AA 0x9F13 # <CJK>
+0xB9AB 0x9F20 # <CJK>
+0xB9AC 0x50E7 # <CJK>
+0xB9AD 0x50EE # <CJK>
+0xB9AE 0x50E5 # <CJK>
+0xB9AF 0x50D6 # <CJK>
+0xB9B0 0x50ED # <CJK>
+0xB9B1 0x50DA # <CJK>
+0xB9B2 0x50D5 # <CJK>
+0xB9B3 0x50CF # <CJK>
+0xB9B4 0x50D1 # <CJK>
+0xB9B5 0x50F1 # <CJK>
+0xB9B6 0x50CE # <CJK>
+0xB9B7 0x50E9 # <CJK>
+0xB9B8 0x5162 # <CJK>
+0xB9B9 0x51F3 # <CJK>
+0xB9BA 0x5283 # <CJK>
+0xB9BB 0x5282 # <CJK>
+0xB9BC 0x5331 # <CJK>
+0xB9BD 0x53AD # <CJK>
+0xB9BE 0x55FE # <CJK>
+0xB9BF 0x5600 # <CJK>
+0xB9C0 0x561B # <CJK>
+0xB9C1 0x5617 # <CJK>
+0xB9C2 0x55FD # <CJK>
+0xB9C3 0x5614 # <CJK>
+0xB9C4 0x5606 # <CJK>
+0xB9C5 0x5609 # <CJK>
+0xB9C6 0x560D # <CJK>
+0xB9C7 0x560E # <CJK>
+0xB9C8 0x55F7 # <CJK>
+0xB9C9 0x5616 # <CJK>
+0xB9CA 0x561F # <CJK>
+0xB9CB 0x5608 # <CJK>
+0xB9CC 0x5610 # <CJK>
+0xB9CD 0x55F6 # <CJK>
+0xB9CE 0x5718 # <CJK>
+0xB9CF 0x5716 # <CJK>
+0xB9D0 0x5875 # <CJK>
+0xB9D1 0x587E # <CJK>
+0xB9D2 0x5883 # <CJK>
+0xB9D3 0x5893 # <CJK>
+0xB9D4 0x588A # <CJK>
+0xB9D5 0x5879 # <CJK>
+0xB9D6 0x5885 # <CJK>
+0xB9D7 0x587D # <CJK>
+0xB9D8 0x58FD # <CJK>
+0xB9D9 0x5925 # <CJK>
+0xB9DA 0x5922 # <CJK>
+0xB9DB 0x5924 # <CJK>
+0xB9DC 0x596A # <CJK>
+0xB9DD 0x5969 # <CJK>
+0xB9DE 0x5AE1 # <CJK>
+0xB9DF 0x5AE6 # <CJK>
+0xB9E0 0x5AE9 # <CJK>
+0xB9E1 0x5AD7 # <CJK>
+0xB9E2 0x5AD6 # <CJK>
+0xB9E3 0x5AD8 # <CJK>
+0xB9E4 0x5AE3 # <CJK>
+0xB9E5 0x5B75 # <CJK>
+0xB9E6 0x5BDE # <CJK>
+0xB9E7 0x5BE7 # <CJK>
+0xB9E8 0x5BE1 # <CJK>
+0xB9E9 0x5BE5 # <CJK>
+0xB9EA 0x5BE6 # <CJK>
+0xB9EB 0x5BE8 # <CJK>
+0xB9EC 0x5BE2 # <CJK>
+0xB9ED 0x5BE4 # <CJK>
+0xB9EE 0x5BDF # <CJK>
+0xB9EF 0x5C0D # <CJK>
+0xB9F0 0x5C62 # <CJK>
+0xB9F1 0x5D84 # <CJK>
+0xB9F2 0x5D87 # <CJK>
+0xB9F3 0x5E5B # <CJK>
+0xB9F4 0x5E63 # <CJK>
+0xB9F5 0x5E55 # <CJK>
+0xB9F6 0x5E57 # <CJK>
+0xB9F7 0x5E54 # <CJK>
+0xB9F8 0x5ED3 # <CJK>
+0xB9F9 0x5ED6 # <CJK>
+0xB9FA 0x5F0A # <CJK>
+0xB9FB 0x5F46 # <CJK>
+0xB9FC 0x5F70 # <CJK>
+0xB9FD 0x5FB9 # <CJK>
+0xB9FE 0x6147 # <CJK>
+0xBA40 0x613F # <CJK>
+0xBA41 0x614B # <CJK>
+0xBA42 0x6177 # <CJK>
+0xBA43 0x6162 # <CJK>
+0xBA44 0x6163 # <CJK>
+0xBA45 0x615F # <CJK>
+0xBA46 0x615A # <CJK>
+0xBA47 0x6158 # <CJK>
+0xBA48 0x6175 # <CJK>
+0xBA49 0x622A # <CJK>
+0xBA4A 0x6487 # <CJK>
+0xBA4B 0x6458 # <CJK>
+0xBA4C 0x6454 # <CJK>
+0xBA4D 0x64A4 # <CJK>
+0xBA4E 0x6478 # <CJK>
+0xBA4F 0x645F # <CJK>
+0xBA50 0x647A # <CJK>
+0xBA51 0x6451 # <CJK>
+0xBA52 0x6467 # <CJK>
+0xBA53 0x6434 # <CJK>
+0xBA54 0x646D # <CJK>
+0xBA55 0x647B # <CJK>
+0xBA56 0x6572 # <CJK>
+0xBA57 0x65A1 # <CJK>
+0xBA58 0x65D7 # <CJK>
+0xBA59 0x65D6 # <CJK>
+0xBA5A 0x66A2 # <CJK>
+0xBA5B 0x66A8 # <CJK>
+0xBA5C 0x669D # <CJK>
+0xBA5D 0x699C # <CJK>
+0xBA5E 0x69A8 # <CJK>
+0xBA5F 0x6995 # <CJK>
+0xBA60 0x69C1 # <CJK>
+0xBA61 0x69AE # <CJK>
+0xBA62 0x69D3 # <CJK>
+0xBA63 0x69CB # <CJK>
+0xBA64 0x699B # <CJK>
+0xBA65 0x69B7 # <CJK>
+0xBA66 0x69BB # <CJK>
+0xBA67 0x69AB # <CJK>
+0xBA68 0x69B4 # <CJK>
+0xBA69 0x69D0 # <CJK>
+0xBA6A 0x69CD # <CJK>
+0xBA6B 0x69AD # <CJK>
+0xBA6C 0x69CC # <CJK>
+0xBA6D 0x69A6 # <CJK>
+0xBA6E 0x69C3 # <CJK>
+0xBA6F 0x69A3 # <CJK>
+0xBA70 0x6B49 # <CJK>
+0xBA71 0x6B4C # <CJK>
+0xBA72 0x6C33 # <CJK>
+0xBA73 0x6F33 # <CJK>
+0xBA74 0x6F14 # <CJK>
+0xBA75 0x6EFE # <CJK>
+0xBA76 0x6F13 # <CJK>
+0xBA77 0x6EF4 # <CJK>
+0xBA78 0x6F29 # <CJK>
+0xBA79 0x6F3E # <CJK>
+0xBA7A 0x6F20 # <CJK>
+0xBA7B 0x6F2C # <CJK>
+0xBA7C 0x6F0F # <CJK>
+0xBA7D 0x6F02 # <CJK>
+0xBA7E 0x6F22 # <CJK>
+0xBAA1 0x6EFF # <CJK>
+0xBAA2 0x6EEF # <CJK>
+0xBAA3 0x6F06 # <CJK>
+0xBAA4 0x6F31 # <CJK>
+0xBAA5 0x6F38 # <CJK>
+0xBAA6 0x6F32 # <CJK>
+0xBAA7 0x6F23 # <CJK>
+0xBAA8 0x6F15 # <CJK>
+0xBAA9 0x6F2B # <CJK>
+0xBAAA 0x6F2F # <CJK>
+0xBAAB 0x6F88 # <CJK>
+0xBAAC 0x6F2A # <CJK>
+0xBAAD 0x6EEC # <CJK>
+0xBAAE 0x6F01 # <CJK>
+0xBAAF 0x6EF2 # <CJK>
+0xBAB0 0x6ECC # <CJK>
+0xBAB1 0x6EF7 # <CJK>
+0xBAB2 0x7194 # <CJK>
+0xBAB3 0x7199 # <CJK>
+0xBAB4 0x717D # <CJK>
+0xBAB5 0x718A # <CJK>
+0xBAB6 0x7184 # <CJK>
+0xBAB7 0x7192 # <CJK>
+0xBAB8 0x723E # <CJK>
+0xBAB9 0x7292 # <CJK>
+0xBABA 0x7296 # <CJK>
+0xBABB 0x7344 # <CJK>
+0xBABC 0x7350 # <CJK>
+0xBABD 0x7464 # <CJK>
+0xBABE 0x7463 # <CJK>
+0xBABF 0x746A # <CJK>
+0xBAC0 0x7470 # <CJK>
+0xBAC1 0x746D # <CJK>
+0xBAC2 0x7504 # <CJK>
+0xBAC3 0x7591 # <CJK>
+0xBAC4 0x7627 # <CJK>
+0xBAC5 0x760D # <CJK>
+0xBAC6 0x760B # <CJK>
+0xBAC7 0x7609 # <CJK>
+0xBAC8 0x7613 # <CJK>
+0xBAC9 0x76E1 # <CJK>
+0xBACA 0x76E3 # <CJK>
+0xBACB 0x7784 # <CJK>
+0xBACC 0x777D # <CJK>
+0xBACD 0x777F # <CJK>
+0xBACE 0x7761 # <CJK>
+0xBACF 0x78C1 # <CJK>
+0xBAD0 0x789F # <CJK>
+0xBAD1 0x78A7 # <CJK>
+0xBAD2 0x78B3 # <CJK>
+0xBAD3 0x78A9 # <CJK>
+0xBAD4 0x78A3 # <CJK>
+0xBAD5 0x798E # <CJK>
+0xBAD6 0x798F # <CJK>
+0xBAD7 0x798D # <CJK>
+0xBAD8 0x7A2E # <CJK>
+0xBAD9 0x7A31 # <CJK>
+0xBADA 0x7AAA # <CJK>
+0xBADB 0x7AA9 # <CJK>
+0xBADC 0x7AED # <CJK>
+0xBADD 0x7AEF # <CJK>
+0xBADE 0x7BA1 # <CJK>
+0xBADF 0x7B95 # <CJK>
+0xBAE0 0x7B8B # <CJK>
+0xBAE1 0x7B75 # <CJK>
+0xBAE2 0x7B97 # <CJK>
+0xBAE3 0x7B9D # <CJK>
+0xBAE4 0x7B94 # <CJK>
+0xBAE5 0x7B8F # <CJK>
+0xBAE6 0x7BB8 # <CJK>
+0xBAE7 0x7B87 # <CJK>
+0xBAE8 0x7B84 # <CJK>
+0xBAE9 0x7CB9 # <CJK>
+0xBAEA 0x7CBD # <CJK>
+0xBAEB 0x7CBE # <CJK>
+0xBAEC 0x7DBB # <CJK>
+0xBAED 0x7DB0 # <CJK>
+0xBAEE 0x7D9C # <CJK>
+0xBAEF 0x7DBD # <CJK>
+0xBAF0 0x7DBE # <CJK>
+0xBAF1 0x7DA0 # <CJK>
+0xBAF2 0x7DCA # <CJK>
+0xBAF3 0x7DB4 # <CJK>
+0xBAF4 0x7DB2 # <CJK>
+0xBAF5 0x7DB1 # <CJK>
+0xBAF6 0x7DBA # <CJK>
+0xBAF7 0x7DA2 # <CJK>
+0xBAF8 0x7DBF # <CJK>
+0xBAF9 0x7DB5 # <CJK>
+0xBAFA 0x7DB8 # <CJK>
+0xBAFB 0x7DAD # <CJK>
+0xBAFC 0x7DD2 # <CJK>
+0xBAFD 0x7DC7 # <CJK>
+0xBAFE 0x7DAC # <CJK>
+0xBB40 0x7F70 # <CJK>
+0xBB41 0x7FE0 # <CJK>
+0xBB42 0x7FE1 # <CJK>
+0xBB43 0x7FDF # <CJK>
+0xBB44 0x805E # <CJK>
+0xBB45 0x805A # <CJK>
+0xBB46 0x8087 # <CJK>
+0xBB47 0x8150 # <CJK>
+0xBB48 0x8180 # <CJK>
+0xBB49 0x818F # <CJK>
+0xBB4A 0x8188 # <CJK>
+0xBB4B 0x818A # <CJK>
+0xBB4C 0x817F # <CJK>
+0xBB4D 0x8182 # <CJK>
+0xBB4E 0x81E7 # <CJK>
+0xBB4F 0x81FA # <CJK>
+0xBB50 0x8207 # <CJK>
+0xBB51 0x8214 # <CJK>
+0xBB52 0x821E # <CJK>
+0xBB53 0x824B # <CJK>
+0xBB54 0x84C9 # <CJK>
+0xBB55 0x84BF # <CJK>
+0xBB56 0x84C6 # <CJK>
+0xBB57 0x84C4 # <CJK>
+0xBB58 0x8499 # <CJK>
+0xBB59 0x849E # <CJK>
+0xBB5A 0x84B2 # <CJK>
+0xBB5B 0x849C # <CJK>
+0xBB5C 0x84CB # <CJK>
+0xBB5D 0x84B8 # <CJK>
+0xBB5E 0x84C0 # <CJK>
+0xBB5F 0x84D3 # <CJK>
+0xBB60 0x8490 # <CJK>
+0xBB61 0x84BC # <CJK>
+0xBB62 0x84D1 # <CJK>
+0xBB63 0x84CA # <CJK>
+0xBB64 0x873F # <CJK>
+0xBB65 0x871C # <CJK>
+0xBB66 0x873B # <CJK>
+0xBB67 0x8722 # <CJK>
+0xBB68 0x8725 # <CJK>
+0xBB69 0x8734 # <CJK>
+0xBB6A 0x8718 # <CJK>
+0xBB6B 0x8755 # <CJK>
+0xBB6C 0x8737 # <CJK>
+0xBB6D 0x8729 # <CJK>
+0xBB6E 0x88F3 # <CJK>
+0xBB6F 0x8902 # <CJK>
+0xBB70 0x88F4 # <CJK>
+0xBB71 0x88F9 # <CJK>
+0xBB72 0x88F8 # <CJK>
+0xBB73 0x88FD # <CJK>
+0xBB74 0x88E8 # <CJK>
+0xBB75 0x891A # <CJK>
+0xBB76 0x88EF # <CJK>
+0xBB77 0x8AA6 # <CJK>
+0xBB78 0x8A8C # <CJK>
+0xBB79 0x8A9E # <CJK>
+0xBB7A 0x8AA3 # <CJK>
+0xBB7B 0x8A8D # <CJK>
+0xBB7C 0x8AA1 # <CJK>
+0xBB7D 0x8A93 # <CJK>
+0xBB7E 0x8AA4 # <CJK>
+0xBBA1 0x8AAA # <CJK>
+0xBBA2 0x8AA5 # <CJK>
+0xBBA3 0x8AA8 # <CJK>
+0xBBA4 0x8A98 # <CJK>
+0xBBA5 0x8A91 # <CJK>
+0xBBA6 0x8A9A # <CJK>
+0xBBA7 0x8AA7 # <CJK>
+0xBBA8 0x8C6A # <CJK>
+0xBBA9 0x8C8D # <CJK>
+0xBBAA 0x8C8C # <CJK>
+0xBBAB 0x8CD3 # <CJK>
+0xBBAC 0x8CD1 # <CJK>
+0xBBAD 0x8CD2 # <CJK>
+0xBBAE 0x8D6B # <CJK>
+0xBBAF 0x8D99 # <CJK>
+0xBBB0 0x8D95 # <CJK>
+0xBBB1 0x8DFC # <CJK>
+0xBBB2 0x8F14 # <CJK>
+0xBBB3 0x8F12 # <CJK>
+0xBBB4 0x8F15 # <CJK>
+0xBBB5 0x8F13 # <CJK>
+0xBBB6 0x8FA3 # <CJK>
+0xBBB7 0x9060 # <CJK>
+0xBBB8 0x9058 # <CJK>
+0xBBB9 0x905C # <CJK>
+0xBBBA 0x9063 # <CJK>
+0xBBBB 0x9059 # <CJK>
+0xBBBC 0x905E # <CJK>
+0xBBBD 0x9062 # <CJK>
+0xBBBE 0x905D # <CJK>
+0xBBBF 0x905B # <CJK>
+0xBBC0 0x9119 # <CJK>
+0xBBC1 0x9118 # <CJK>
+0xBBC2 0x911E # <CJK>
+0xBBC3 0x9175 # <CJK>
+0xBBC4 0x9178 # <CJK>
+0xBBC5 0x9177 # <CJK>
+0xBBC6 0x9174 # <CJK>
+0xBBC7 0x9278 # <CJK>
+0xBBC8 0x9280 # <CJK>
+0xBBC9 0x9285 # <CJK>
+0xBBCA 0x9298 # <CJK>
+0xBBCB 0x9296 # <CJK>
+0xBBCC 0x927B # <CJK>
+0xBBCD 0x9293 # <CJK>
+0xBBCE 0x929C # <CJK>
+0xBBCF 0x92A8 # <CJK>
+0xBBD0 0x927C # <CJK>
+0xBBD1 0x9291 # <CJK>
+0xBBD2 0x95A1 # <CJK>
+0xBBD3 0x95A8 # <CJK>
+0xBBD4 0x95A9 # <CJK>
+0xBBD5 0x95A3 # <CJK>
+0xBBD6 0x95A5 # <CJK>
+0xBBD7 0x95A4 # <CJK>
+0xBBD8 0x9699 # <CJK>
+0xBBD9 0x969C # <CJK>
+0xBBDA 0x969B # <CJK>
+0xBBDB 0x96CC # <CJK>
+0xBBDC 0x96D2 # <CJK>
+0xBBDD 0x9700 # <CJK>
+0xBBDE 0x977C # <CJK>
+0xBBDF 0x9785 # <CJK>
+0xBBE0 0x97F6 # <CJK>
+0xBBE1 0x9817 # <CJK>
+0xBBE2 0x9818 # <CJK>
+0xBBE3 0x98AF # <CJK>
+0xBBE4 0x98B1 # <CJK>
+0xBBE5 0x9903 # <CJK>
+0xBBE6 0x9905 # <CJK>
+0xBBE7 0x990C # <CJK>
+0xBBE8 0x9909 # <CJK>
+0xBBE9 0x99C1 # <CJK>
+0xBBEA 0x9AAF # <CJK>
+0xBBEB 0x9AB0 # <CJK>
+0xBBEC 0x9AE6 # <CJK>
+0xBBED 0x9B41 # <CJK>
+0xBBEE 0x9B42 # <CJK>
+0xBBEF 0x9CF4 # <CJK>
+0xBBF0 0x9CF6 # <CJK>
+0xBBF1 0x9CF3 # <CJK>
+0xBBF2 0x9EBC # <CJK>
+0xBBF3 0x9F3B # <CJK>
+0xBBF4 0x9F4A # <CJK>
+0xBBF5 0x5104 # <CJK>
+0xBBF6 0x5100 # <CJK>
+0xBBF7 0x50FB # <CJK>
+0xBBF8 0x50F5 # <CJK>
+0xBBF9 0x50F9 # <CJK>
+0xBBFA 0x5102 # <CJK>
+0xBBFB 0x5108 # <CJK>
+0xBBFC 0x5109 # <CJK>
+0xBBFD 0x5105 # <CJK>
+0xBBFE 0x51DC # <CJK>
+0xBC40 0x5287 # <CJK>
+0xBC41 0x5288 # <CJK>
+0xBC42 0x5289 # <CJK>
+0xBC43 0x528D # <CJK>
+0xBC44 0x528A # <CJK>
+0xBC45 0x52F0 # <CJK>
+0xBC46 0x53B2 # <CJK>
+0xBC47 0x562E # <CJK>
+0xBC48 0x563B # <CJK>
+0xBC49 0x5639 # <CJK>
+0xBC4A 0x5632 # <CJK>
+0xBC4B 0x563F # <CJK>
+0xBC4C 0x5634 # <CJK>
+0xBC4D 0x5629 # <CJK>
+0xBC4E 0x5653 # <CJK>
+0xBC4F 0x564E # <CJK>
+0xBC50 0x5657 # <CJK>
+0xBC51 0x5674 # <CJK>
+0xBC52 0x5636 # <CJK>
+0xBC53 0x562F # <CJK>
+0xBC54 0x5630 # <CJK>
+0xBC55 0x5880 # <CJK>
+0xBC56 0x589F # <CJK>
+0xBC57 0x589E # <CJK>
+0xBC58 0x58B3 # <CJK>
+0xBC59 0x589C # <CJK>
+0xBC5A 0x58AE # <CJK>
+0xBC5B 0x58A9 # <CJK>
+0xBC5C 0x58A6 # <CJK>
+0xBC5D 0x596D # <CJK>
+0xBC5E 0x5B09 # <CJK>
+0xBC5F 0x5AFB # <CJK>
+0xBC60 0x5B0B # <CJK>
+0xBC61 0x5AF5 # <CJK>
+0xBC62 0x5B0C # <CJK>
+0xBC63 0x5B08 # <CJK>
+0xBC64 0x5BEE # <CJK>
+0xBC65 0x5BEC # <CJK>
+0xBC66 0x5BE9 # <CJK>
+0xBC67 0x5BEB # <CJK>
+0xBC68 0x5C64 # <CJK>
+0xBC69 0x5C65 # <CJK>
+0xBC6A 0x5D9D # <CJK>
+0xBC6B 0x5D94 # <CJK>
+0xBC6C 0x5E62 # <CJK>
+0xBC6D 0x5E5F # <CJK>
+0xBC6E 0x5E61 # <CJK>
+0xBC6F 0x5EE2 # <CJK>
+0xBC70 0x5EDA # <CJK>
+0xBC71 0x5EDF # <CJK>
+0xBC72 0x5EDD # <CJK>
+0xBC73 0x5EE3 # <CJK>
+0xBC74 0x5EE0 # <CJK>
+0xBC75 0x5F48 # <CJK>
+0xBC76 0x5F71 # <CJK>
+0xBC77 0x5FB7 # <CJK>
+0xBC78 0x5FB5 # <CJK>
+0xBC79 0x6176 # <CJK>
+0xBC7A 0x6167 # <CJK>
+0xBC7B 0x616E # <CJK>
+0xBC7C 0x615D # <CJK>
+0xBC7D 0x6155 # <CJK>
+0xBC7E 0x6182 # <CJK>
+0xBCA1 0x617C # <CJK>
+0xBCA2 0x6170 # <CJK>
+0xBCA3 0x616B # <CJK>
+0xBCA4 0x617E # <CJK>
+0xBCA5 0x61A7 # <CJK>
+0xBCA6 0x6190 # <CJK>
+0xBCA7 0x61AB # <CJK>
+0xBCA8 0x618E # <CJK>
+0xBCA9 0x61AC # <CJK>
+0xBCAA 0x619A # <CJK>
+0xBCAB 0x61A4 # <CJK>
+0xBCAC 0x6194 # <CJK>
+0xBCAD 0x61AE # <CJK>
+0xBCAE 0x622E # <CJK>
+0xBCAF 0x6469 # <CJK>
+0xBCB0 0x646F # <CJK>
+0xBCB1 0x6479 # <CJK>
+0xBCB2 0x649E # <CJK>
+0xBCB3 0x64B2 # <CJK>
+0xBCB4 0x6488 # <CJK>
+0xBCB5 0x6490 # <CJK>
+0xBCB6 0x64B0 # <CJK>
+0xBCB7 0x64A5 # <CJK>
+0xBCB8 0x6493 # <CJK>
+0xBCB9 0x6495 # <CJK>
+0xBCBA 0x64A9 # <CJK>
+0xBCBB 0x6492 # <CJK>
+0xBCBC 0x64AE # <CJK>
+0xBCBD 0x64AD # <CJK>
+0xBCBE 0x64AB # <CJK>
+0xBCBF 0x649A # <CJK>
+0xBCC0 0x64AC # <CJK>
+0xBCC1 0x6499 # <CJK>
+0xBCC2 0x64A2 # <CJK>
+0xBCC3 0x64B3 # <CJK>
+0xBCC4 0x6575 # <CJK>
+0xBCC5 0x6577 # <CJK>
+0xBCC6 0x6578 # <CJK>
+0xBCC7 0x66AE # <CJK>
+0xBCC8 0x66AB # <CJK>
+0xBCC9 0x66B4 # <CJK>
+0xBCCA 0x66B1 # <CJK>
+0xBCCB 0x6A23 # <CJK>
+0xBCCC 0x6A1F # <CJK>
+0xBCCD 0x69E8 # <CJK>
+0xBCCE 0x6A01 # <CJK>
+0xBCCF 0x6A1E # <CJK>
+0xBCD0 0x6A19 # <CJK>
+0xBCD1 0x69FD # <CJK>
+0xBCD2 0x6A21 # <CJK>
+0xBCD3 0x6A13 # <CJK>
+0xBCD4 0x6A0A # <CJK>
+0xBCD5 0x69F3 # <CJK>
+0xBCD6 0x6A02 # <CJK>
+0xBCD7 0x6A05 # <CJK>
+0xBCD8 0x69ED # <CJK>
+0xBCD9 0x6A11 # <CJK>
+0xBCDA 0x6B50 # <CJK>
+0xBCDB 0x6B4E # <CJK>
+0xBCDC 0x6BA4 # <CJK>
+0xBCDD 0x6BC5 # <CJK>
+0xBCDE 0x6BC6 # <CJK>
+0xBCDF 0x6F3F # <CJK>
+0xBCE0 0x6F7C # <CJK>
+0xBCE1 0x6F84 # <CJK>
+0xBCE2 0x6F51 # <CJK>
+0xBCE3 0x6F66 # <CJK>
+0xBCE4 0x6F54 # <CJK>
+0xBCE5 0x6F86 # <CJK>
+0xBCE6 0x6F6D # <CJK>
+0xBCE7 0x6F5B # <CJK>
+0xBCE8 0x6F78 # <CJK>
+0xBCE9 0x6F6E # <CJK>
+0xBCEA 0x6F8E # <CJK>
+0xBCEB 0x6F7A # <CJK>
+0xBCEC 0x6F70 # <CJK>
+0xBCED 0x6F64 # <CJK>
+0xBCEE 0x6F97 # <CJK>
+0xBCEF 0x6F58 # <CJK>
+0xBCF0 0x6ED5 # <CJK>
+0xBCF1 0x6F6F # <CJK>
+0xBCF2 0x6F60 # <CJK>
+0xBCF3 0x6F5F # <CJK>
+0xBCF4 0x719F # <CJK>
+0xBCF5 0x71AC # <CJK>
+0xBCF6 0x71B1 # <CJK>
+0xBCF7 0x71A8 # <CJK>
+0xBCF8 0x7256 # <CJK>
+0xBCF9 0x729B # <CJK>
+0xBCFA 0x734E # <CJK>
+0xBCFB 0x7357 # <CJK>
+0xBCFC 0x7469 # <CJK>
+0xBCFD 0x748B # <CJK>
+0xBCFE 0x7483 # <CJK>
+0xBD40 0x747E # <CJK>
+0xBD41 0x7480 # <CJK>
+0xBD42 0x757F # <CJK>
+0xBD43 0x7620 # <CJK>
+0xBD44 0x7629 # <CJK>
+0xBD45 0x761F # <CJK>
+0xBD46 0x7624 # <CJK>
+0xBD47 0x7626 # <CJK>
+0xBD48 0x7621 # <CJK>
+0xBD49 0x7622 # <CJK>
+0xBD4A 0x769A # <CJK>
+0xBD4B 0x76BA # <CJK>
+0xBD4C 0x76E4 # <CJK>
+0xBD4D 0x778E # <CJK>
+0xBD4E 0x7787 # <CJK>
+0xBD4F 0x778C # <CJK>
+0xBD50 0x7791 # <CJK>
+0xBD51 0x778B # <CJK>
+0xBD52 0x78CB # <CJK>
+0xBD53 0x78C5 # <CJK>
+0xBD54 0x78BA # <CJK>
+0xBD55 0x78CA # <CJK>
+0xBD56 0x78BE # <CJK>
+0xBD57 0x78D5 # <CJK>
+0xBD58 0x78BC # <CJK>
+0xBD59 0x78D0 # <CJK>
+0xBD5A 0x7A3F # <CJK>
+0xBD5B 0x7A3C # <CJK>
+0xBD5C 0x7A40 # <CJK>
+0xBD5D 0x7A3D # <CJK>
+0xBD5E 0x7A37 # <CJK>
+0xBD5F 0x7A3B # <CJK>
+0xBD60 0x7AAF # <CJK>
+0xBD61 0x7AAE # <CJK>
+0xBD62 0x7BAD # <CJK>
+0xBD63 0x7BB1 # <CJK>
+0xBD64 0x7BC4 # <CJK>
+0xBD65 0x7BB4 # <CJK>
+0xBD66 0x7BC6 # <CJK>
+0xBD67 0x7BC7 # <CJK>
+0xBD68 0x7BC1 # <CJK>
+0xBD69 0x7BA0 # <CJK>
+0xBD6A 0x7BCC # <CJK>
+0xBD6B 0x7CCA # <CJK>
+0xBD6C 0x7DE0 # <CJK>
+0xBD6D 0x7DF4 # <CJK>
+0xBD6E 0x7DEF # <CJK>
+0xBD6F 0x7DFB # <CJK>
+0xBD70 0x7DD8 # <CJK>
+0xBD71 0x7DEC # <CJK>
+0xBD72 0x7DDD # <CJK>
+0xBD73 0x7DE8 # <CJK>
+0xBD74 0x7DE3 # <CJK>
+0xBD75 0x7DDA # <CJK>
+0xBD76 0x7DDE # <CJK>
+0xBD77 0x7DE9 # <CJK>
+0xBD78 0x7D9E # <CJK>
+0xBD79 0x7DD9 # <CJK>
+0xBD7A 0x7DF2 # <CJK>
+0xBD7B 0x7DF9 # <CJK>
+0xBD7C 0x7F75 # <CJK>
+0xBD7D 0x7F77 # <CJK>
+0xBD7E 0x7FAF # <CJK>
+0xBDA1 0x7FE9 # <CJK>
+0xBDA2 0x8026 # <CJK>
+0xBDA3 0x819B # <CJK>
+0xBDA4 0x819C # <CJK>
+0xBDA5 0x819D # <CJK>
+0xBDA6 0x81A0 # <CJK>
+0xBDA7 0x819A # <CJK>
+0xBDA8 0x8198 # <CJK>
+0xBDA9 0x8517 # <CJK>
+0xBDAA 0x853D # <CJK>
+0xBDAB 0x851A # <CJK>
+0xBDAC 0x84EE # <CJK>
+0xBDAD 0x852C # <CJK>
+0xBDAE 0x852D # <CJK>
+0xBDAF 0x8513 # <CJK>
+0xBDB0 0x8511 # <CJK>
+0xBDB1 0x8523 # <CJK>
+0xBDB2 0x8521 # <CJK>
+0xBDB3 0x8514 # <CJK>
+0xBDB4 0x84EC # <CJK>
+0xBDB5 0x8525 # <CJK>
+0xBDB6 0x84FF # <CJK>
+0xBDB7 0x8506 # <CJK>
+0xBDB8 0x8782 # <CJK>
+0xBDB9 0x8774 # <CJK>
+0xBDBA 0x8776 # <CJK>
+0xBDBB 0x8760 # <CJK>
+0xBDBC 0x8766 # <CJK>
+0xBDBD 0x8778 # <CJK>
+0xBDBE 0x8768 # <CJK>
+0xBDBF 0x8759 # <CJK>
+0xBDC0 0x8757 # <CJK>
+0xBDC1 0x874C # <CJK>
+0xBDC2 0x8753 # <CJK>
+0xBDC3 0x885B # <CJK>
+0xBDC4 0x885D # <CJK>
+0xBDC5 0x8910 # <CJK>
+0xBDC6 0x8907 # <CJK>
+0xBDC7 0x8912 # <CJK>
+0xBDC8 0x8913 # <CJK>
+0xBDC9 0x8915 # <CJK>
+0xBDCA 0x890A # <CJK>
+0xBDCB 0x8ABC # <CJK>
+0xBDCC 0x8AD2 # <CJK>
+0xBDCD 0x8AC7 # <CJK>
+0xBDCE 0x8AC4 # <CJK>
+0xBDCF 0x8A95 # <CJK>
+0xBDD0 0x8ACB # <CJK>
+0xBDD1 0x8AF8 # <CJK>
+0xBDD2 0x8AB2 # <CJK>
+0xBDD3 0x8AC9 # <CJK>
+0xBDD4 0x8AC2 # <CJK>
+0xBDD5 0x8ABF # <CJK>
+0xBDD6 0x8AB0 # <CJK>
+0xBDD7 0x8AD6 # <CJK>
+0xBDD8 0x8ACD # <CJK>
+0xBDD9 0x8AB6 # <CJK>
+0xBDDA 0x8AB9 # <CJK>
+0xBDDB 0x8ADB # <CJK>
+0xBDDC 0x8C4C # <CJK>
+0xBDDD 0x8C4E # <CJK>
+0xBDDE 0x8C6C # <CJK>
+0xBDDF 0x8CE0 # <CJK>
+0xBDE0 0x8CDE # <CJK>
+0xBDE1 0x8CE6 # <CJK>
+0xBDE2 0x8CE4 # <CJK>
+0xBDE3 0x8CEC # <CJK>
+0xBDE4 0x8CED # <CJK>
+0xBDE5 0x8CE2 # <CJK>
+0xBDE6 0x8CE3 # <CJK>
+0xBDE7 0x8CDC # <CJK>
+0xBDE8 0x8CEA # <CJK>
+0xBDE9 0x8CE1 # <CJK>
+0xBDEA 0x8D6D # <CJK>
+0xBDEB 0x8D9F # <CJK>
+0xBDEC 0x8DA3 # <CJK>
+0xBDED 0x8E2B # <CJK>
+0xBDEE 0x8E10 # <CJK>
+0xBDEF 0x8E1D # <CJK>
+0xBDF0 0x8E22 # <CJK>
+0xBDF1 0x8E0F # <CJK>
+0xBDF2 0x8E29 # <CJK>
+0xBDF3 0x8E1F # <CJK>
+0xBDF4 0x8E21 # <CJK>
+0xBDF5 0x8E1E # <CJK>
+0xBDF6 0x8EBA # <CJK>
+0xBDF7 0x8F1D # <CJK>
+0xBDF8 0x8F1B # <CJK>
+0xBDF9 0x8F1F # <CJK>
+0xBDFA 0x8F29 # <CJK>
+0xBDFB 0x8F26 # <CJK>
+0xBDFC 0x8F2A # <CJK>
+0xBDFD 0x8F1C # <CJK>
+0xBDFE 0x8F1E # <CJK>
+0xBE40 0x8F25 # <CJK>
+0xBE41 0x9069 # <CJK>
+0xBE42 0x906E # <CJK>
+0xBE43 0x9068 # <CJK>
+0xBE44 0x906D # <CJK>
+0xBE45 0x9077 # <CJK>
+0xBE46 0x9130 # <CJK>
+0xBE47 0x912D # <CJK>
+0xBE48 0x9127 # <CJK>
+0xBE49 0x9131 # <CJK>
+0xBE4A 0x9187 # <CJK>
+0xBE4B 0x9189 # <CJK>
+0xBE4C 0x918B # <CJK>
+0xBE4D 0x9183 # <CJK>
+0xBE4E 0x92C5 # <CJK>
+0xBE4F 0x92BB # <CJK>
+0xBE50 0x92B7 # <CJK>
+0xBE51 0x92EA # <CJK>
+0xBE52 0x92AC # <CJK>
+0xBE53 0x92E4 # <CJK>
+0xBE54 0x92C1 # <CJK>
+0xBE55 0x92B3 # <CJK>
+0xBE56 0x92BC # <CJK>
+0xBE57 0x92D2 # <CJK>
+0xBE58 0x92C7 # <CJK>
+0xBE59 0x92F0 # <CJK>
+0xBE5A 0x92B2 # <CJK>
+0xBE5B 0x95AD # <CJK>
+0xBE5C 0x95B1 # <CJK>
+0xBE5D 0x9704 # <CJK>
+0xBE5E 0x9706 # <CJK>
+0xBE5F 0x9707 # <CJK>
+0xBE60 0x9709 # <CJK>
+0xBE61 0x9760 # <CJK>
+0xBE62 0x978D # <CJK>
+0xBE63 0x978B # <CJK>
+0xBE64 0x978F # <CJK>
+0xBE65 0x9821 # <CJK>
+0xBE66 0x982B # <CJK>
+0xBE67 0x981C # <CJK>
+0xBE68 0x98B3 # <CJK>
+0xBE69 0x990A # <CJK>
+0xBE6A 0x9913 # <CJK>
+0xBE6B 0x9912 # <CJK>
+0xBE6C 0x9918 # <CJK>
+0xBE6D 0x99DD # <CJK>
+0xBE6E 0x99D0 # <CJK>
+0xBE6F 0x99DF # <CJK>
+0xBE70 0x99DB # <CJK>
+0xBE71 0x99D1 # <CJK>
+0xBE72 0x99D5 # <CJK>
+0xBE73 0x99D2 # <CJK>
+0xBE74 0x99D9 # <CJK>
+0xBE75 0x9AB7 # <CJK>
+0xBE76 0x9AEE # <CJK>
+0xBE77 0x9AEF # <CJK>
+0xBE78 0x9B27 # <CJK>
+0xBE79 0x9B45 # <CJK>
+0xBE7A 0x9B44 # <CJK>
+0xBE7B 0x9B77 # <CJK>
+0xBE7C 0x9B6F # <CJK>
+0xBE7D 0x9D06 # <CJK>
+0xBE7E 0x9D09 # <CJK>
+0xBEA1 0x9D03 # <CJK>
+0xBEA2 0x9EA9 # <CJK>
+0xBEA3 0x9EBE # <CJK>
+0xBEA4 0x9ECE # <CJK>
+0xBEA5 0x58A8 # <CJK>
+0xBEA6 0x9F52 # <CJK>
+0xBEA7 0x5112 # <CJK>
+0xBEA8 0x5118 # <CJK>
+0xBEA9 0x5114 # <CJK>
+0xBEAA 0x5110 # <CJK>
+0xBEAB 0x5115 # <CJK>
+0xBEAC 0x5180 # <CJK>
+0xBEAD 0x51AA # <CJK>
+0xBEAE 0x51DD # <CJK>
+0xBEAF 0x5291 # <CJK>
+0xBEB0 0x5293 # <CJK>
+0xBEB1 0x52F3 # <CJK>
+0xBEB2 0x5659 # <CJK>
+0xBEB3 0x566B # <CJK>
+0xBEB4 0x5679 # <CJK>
+0xBEB5 0x5669 # <CJK>
+0xBEB6 0x5664 # <CJK>
+0xBEB7 0x5678 # <CJK>
+0xBEB8 0x566A # <CJK>
+0xBEB9 0x5668 # <CJK>
+0xBEBA 0x5665 # <CJK>
+0xBEBB 0x5671 # <CJK>
+0xBEBC 0x566F # <CJK>
+0xBEBD 0x566C # <CJK>
+0xBEBE 0x5662 # <CJK>
+0xBEBF 0x5676 # <CJK>
+0xBEC0 0x58C1 # <CJK>
+0xBEC1 0x58BE # <CJK>
+0xBEC2 0x58C7 # <CJK>
+0xBEC3 0x58C5 # <CJK>
+0xBEC4 0x596E # <CJK>
+0xBEC5 0x5B1D # <CJK>
+0xBEC6 0x5B34 # <CJK>
+0xBEC7 0x5B78 # <CJK>
+0xBEC8 0x5BF0 # <CJK>
+0xBEC9 0x5C0E # <CJK>
+0xBECA 0x5F4A # <CJK>
+0xBECB 0x61B2 # <CJK>
+0xBECC 0x6191 # <CJK>
+0xBECD 0x61A9 # <CJK>
+0xBECE 0x618A # <CJK>
+0xBECF 0x61CD # <CJK>
+0xBED0 0x61B6 # <CJK>
+0xBED1 0x61BE # <CJK>
+0xBED2 0x61CA # <CJK>
+0xBED3 0x61C8 # <CJK>
+0xBED4 0x6230 # <CJK>
+0xBED5 0x64C5 # <CJK>
+0xBED6 0x64C1 # <CJK>
+0xBED7 0x64CB # <CJK>
+0xBED8 0x64BB # <CJK>
+0xBED9 0x64BC # <CJK>
+0xBEDA 0x64DA # <CJK>
+0xBEDB 0x64C4 # <CJK>
+0xBEDC 0x64C7 # <CJK>
+0xBEDD 0x64C2 # <CJK>
+0xBEDE 0x64CD # <CJK>
+0xBEDF 0x64BF # <CJK>
+0xBEE0 0x64D2 # <CJK>
+0xBEE1 0x64D4 # <CJK>
+0xBEE2 0x64BE # <CJK>
+0xBEE3 0x6574 # <CJK>
+0xBEE4 0x66C6 # <CJK>
+0xBEE5 0x66C9 # <CJK>
+0xBEE6 0x66B9 # <CJK>
+0xBEE7 0x66C4 # <CJK>
+0xBEE8 0x66C7 # <CJK>
+0xBEE9 0x66B8 # <CJK>
+0xBEEA 0x6A3D # <CJK>
+0xBEEB 0x6A38 # <CJK>
+0xBEEC 0x6A3A # <CJK>
+0xBEED 0x6A59 # <CJK>
+0xBEEE 0x6A6B # <CJK>
+0xBEEF 0x6A58 # <CJK>
+0xBEF0 0x6A39 # <CJK>
+0xBEF1 0x6A44 # <CJK>
+0xBEF2 0x6A62 # <CJK>
+0xBEF3 0x6A61 # <CJK>
+0xBEF4 0x6A4B # <CJK>
+0xBEF5 0x6A47 # <CJK>
+0xBEF6 0x6A35 # <CJK>
+0xBEF7 0x6A5F # <CJK>
+0xBEF8 0x6A48 # <CJK>
+0xBEF9 0x6B59 # <CJK>
+0xBEFA 0x6B77 # <CJK>
+0xBEFB 0x6C05 # <CJK>
+0xBEFC 0x6FC2 # <CJK>
+0xBEFD 0x6FB1 # <CJK>
+0xBEFE 0x6FA1 # <CJK>
+0xBF40 0x6FC3 # <CJK>
+0xBF41 0x6FA4 # <CJK>
+0xBF42 0x6FC1 # <CJK>
+0xBF43 0x6FA7 # <CJK>
+0xBF44 0x6FB3 # <CJK>
+0xBF45 0x6FC0 # <CJK>
+0xBF46 0x6FB9 # <CJK>
+0xBF47 0x6FB6 # <CJK>
+0xBF48 0x6FA6 # <CJK>
+0xBF49 0x6FA0 # <CJK>
+0xBF4A 0x6FB4 # <CJK>
+0xBF4B 0x71BE # <CJK>
+0xBF4C 0x71C9 # <CJK>
+0xBF4D 0x71D0 # <CJK>
+0xBF4E 0x71D2 # <CJK>
+0xBF4F 0x71C8 # <CJK>
+0xBF50 0x71D5 # <CJK>
+0xBF51 0x71B9 # <CJK>
+0xBF52 0x71CE # <CJK>
+0xBF53 0x71D9 # <CJK>
+0xBF54 0x71DC # <CJK>
+0xBF55 0x71C3 # <CJK>
+0xBF56 0x71C4 # <CJK>
+0xBF57 0x7368 # <CJK>
+0xBF58 0x749C # <CJK>
+0xBF59 0x74A3 # <CJK>
+0xBF5A 0x7498 # <CJK>
+0xBF5B 0x749F # <CJK>
+0xBF5C 0x749E # <CJK>
+0xBF5D 0x74E2 # <CJK>
+0xBF5E 0x750C # <CJK>
+0xBF5F 0x750D # <CJK>
+0xBF60 0x7634 # <CJK>
+0xBF61 0x7638 # <CJK>
+0xBF62 0x763A # <CJK>
+0xBF63 0x76E7 # <CJK>
+0xBF64 0x76E5 # <CJK>
+0xBF65 0x77A0 # <CJK>
+0xBF66 0x779E # <CJK>
+0xBF67 0x779F # <CJK>
+0xBF68 0x77A5 # <CJK>
+0xBF69 0x78E8 # <CJK>
+0xBF6A 0x78DA # <CJK>
+0xBF6B 0x78EC # <CJK>
+0xBF6C 0x78E7 # <CJK>
+0xBF6D 0x79A6 # <CJK>
+0xBF6E 0x7A4D # <CJK>
+0xBF6F 0x7A4E # <CJK>
+0xBF70 0x7A46 # <CJK>
+0xBF71 0x7A4C # <CJK>
+0xBF72 0x7A4B # <CJK>
+0xBF73 0x7ABA # <CJK>
+0xBF74 0x7BD9 # <CJK>
+0xBF75 0x7C11 # <CJK>
+0xBF76 0x7BC9 # <CJK>
+0xBF77 0x7BE4 # <CJK>
+0xBF78 0x7BDB # <CJK>
+0xBF79 0x7BE1 # <CJK>
+0xBF7A 0x7BE9 # <CJK>
+0xBF7B 0x7BE6 # <CJK>
+0xBF7C 0x7CD5 # <CJK>
+0xBF7D 0x7CD6 # <CJK>
+0xBF7E 0x7E0A # <CJK>
+0xBFA1 0x7E11 # <CJK>
+0xBFA2 0x7E08 # <CJK>
+0xBFA3 0x7E1B # <CJK>
+0xBFA4 0x7E23 # <CJK>
+0xBFA5 0x7E1E # <CJK>
+0xBFA6 0x7E1D # <CJK>
+0xBFA7 0x7E09 # <CJK>
+0xBFA8 0x7E10 # <CJK>
+0xBFA9 0x7F79 # <CJK>
+0xBFAA 0x7FB2 # <CJK>
+0xBFAB 0x7FF0 # <CJK>
+0xBFAC 0x7FF1 # <CJK>
+0xBFAD 0x7FEE # <CJK>
+0xBFAE 0x8028 # <CJK>
+0xBFAF 0x81B3 # <CJK>
+0xBFB0 0x81A9 # <CJK>
+0xBFB1 0x81A8 # <CJK>
+0xBFB2 0x81FB # <CJK>
+0xBFB3 0x8208 # <CJK>
+0xBFB4 0x8258 # <CJK>
+0xBFB5 0x8259 # <CJK>
+0xBFB6 0x854A # <CJK>
+0xBFB7 0x8559 # <CJK>
+0xBFB8 0x8548 # <CJK>
+0xBFB9 0x8568 # <CJK>
+0xBFBA 0x8569 # <CJK>
+0xBFBB 0x8543 # <CJK>
+0xBFBC 0x8549 # <CJK>
+0xBFBD 0x856D # <CJK>
+0xBFBE 0x856A # <CJK>
+0xBFBF 0x855E # <CJK>
+0xBFC0 0x8783 # <CJK>
+0xBFC1 0x879F # <CJK>
+0xBFC2 0x879E # <CJK>
+0xBFC3 0x87A2 # <CJK>
+0xBFC4 0x878D # <CJK>
+0xBFC5 0x8861 # <CJK>
+0xBFC6 0x892A # <CJK>
+0xBFC7 0x8932 # <CJK>
+0xBFC8 0x8925 # <CJK>
+0xBFC9 0x892B # <CJK>
+0xBFCA 0x8921 # <CJK>
+0xBFCB 0x89AA # <CJK>
+0xBFCC 0x89A6 # <CJK>
+0xBFCD 0x8AE6 # <CJK>
+0xBFCE 0x8AFA # <CJK>
+0xBFCF 0x8AEB # <CJK>
+0xBFD0 0x8AF1 # <CJK>
+0xBFD1 0x8B00 # <CJK>
+0xBFD2 0x8ADC # <CJK>
+0xBFD3 0x8AE7 # <CJK>
+0xBFD4 0x8AEE # <CJK>
+0xBFD5 0x8AFE # <CJK>
+0xBFD6 0x8B01 # <CJK>
+0xBFD7 0x8B02 # <CJK>
+0xBFD8 0x8AF7 # <CJK>
+0xBFD9 0x8AED # <CJK>
+0xBFDA 0x8AF3 # <CJK>
+0xBFDB 0x8AF6 # <CJK>
+0xBFDC 0x8AFC # <CJK>
+0xBFDD 0x8C6B # <CJK>
+0xBFDE 0x8C6D # <CJK>
+0xBFDF 0x8C93 # <CJK>
+0xBFE0 0x8CF4 # <CJK>
+0xBFE1 0x8E44 # <CJK>
+0xBFE2 0x8E31 # <CJK>
+0xBFE3 0x8E34 # <CJK>
+0xBFE4 0x8E42 # <CJK>
+0xBFE5 0x8E39 # <CJK>
+0xBFE6 0x8E35 # <CJK>
+0xBFE7 0x8F3B # <CJK>
+0xBFE8 0x8F2F # <CJK>
+0xBFE9 0x8F38 # <CJK>
+0xBFEA 0x8F33 # <CJK>
+0xBFEB 0x8FA8 # <CJK>
+0xBFEC 0x8FA6 # <CJK>
+0xBFED 0x9075 # <CJK>
+0xBFEE 0x9074 # <CJK>
+0xBFEF 0x9078 # <CJK>
+0xBFF0 0x9072 # <CJK>
+0xBFF1 0x907C # <CJK>
+0xBFF2 0x907A # <CJK>
+0xBFF3 0x9134 # <CJK>
+0xBFF4 0x9192 # <CJK>
+0xBFF5 0x9320 # <CJK>
+0xBFF6 0x9336 # <CJK>
+0xBFF7 0x92F8 # <CJK>
+0xBFF8 0x9333 # <CJK>
+0xBFF9 0x932F # <CJK>
+0xBFFA 0x9322 # <CJK>
+0xBFFB 0x92FC # <CJK>
+0xBFFC 0x932B # <CJK>
+0xBFFD 0x9304 # <CJK>
+0xBFFE 0x931A # <CJK>
+0xC040 0x9310 # <CJK>
+0xC041 0x9326 # <CJK>
+0xC042 0x9321 # <CJK>
+0xC043 0x9315 # <CJK>
+0xC044 0x932E # <CJK>
+0xC045 0x9319 # <CJK>
+0xC046 0x95BB # <CJK>
+0xC047 0x96A7 # <CJK>
+0xC048 0x96A8 # <CJK>
+0xC049 0x96AA # <CJK>
+0xC04A 0x96D5 # <CJK>
+0xC04B 0x970E # <CJK>
+0xC04C 0x9711 # <CJK>
+0xC04D 0x9716 # <CJK>
+0xC04E 0x970D # <CJK>
+0xC04F 0x9713 # <CJK>
+0xC050 0x970F # <CJK>
+0xC051 0x975B # <CJK>
+0xC052 0x975C # <CJK>
+0xC053 0x9766 # <CJK>
+0xC054 0x9798 # <CJK>
+0xC055 0x9830 # <CJK>
+0xC056 0x9838 # <CJK>
+0xC057 0x983B # <CJK>
+0xC058 0x9837 # <CJK>
+0xC059 0x982D # <CJK>
+0xC05A 0x9839 # <CJK>
+0xC05B 0x9824 # <CJK>
+0xC05C 0x9910 # <CJK>
+0xC05D 0x9928 # <CJK>
+0xC05E 0x991E # <CJK>
+0xC05F 0x991B # <CJK>
+0xC060 0x9921 # <CJK>
+0xC061 0x991A # <CJK>
+0xC062 0x99ED # <CJK>
+0xC063 0x99E2 # <CJK>
+0xC064 0x99F1 # <CJK>
+0xC065 0x9AB8 # <CJK>
+0xC066 0x9ABC # <CJK>
+0xC067 0x9AFB # <CJK>
+0xC068 0x9AED # <CJK>
+0xC069 0x9B28 # <CJK>
+0xC06A 0x9B91 # <CJK>
+0xC06B 0x9D15 # <CJK>
+0xC06C 0x9D23 # <CJK>
+0xC06D 0x9D26 # <CJK>
+0xC06E 0x9D28 # <CJK>
+0xC06F 0x9D12 # <CJK>
+0xC070 0x9D1B # <CJK>
+0xC071 0x9ED8 # <CJK>
+0xC072 0x9ED4 # <CJK>
+0xC073 0x9F8D # <CJK>
+0xC074 0x9F9C # <CJK>
+0xC075 0x512A # <CJK>
+0xC076 0x511F # <CJK>
+0xC077 0x5121 # <CJK>
+0xC078 0x5132 # <CJK>
+0xC079 0x52F5 # <CJK>
+0xC07A 0x568E # <CJK>
+0xC07B 0x5680 # <CJK>
+0xC07C 0x5690 # <CJK>
+0xC07D 0x5685 # <CJK>
+0xC07E 0x5687 # <CJK>
+0xC0A1 0x568F # <CJK>
+0xC0A2 0x58D5 # <CJK>
+0xC0A3 0x58D3 # <CJK>
+0xC0A4 0x58D1 # <CJK>
+0xC0A5 0x58CE # <CJK>
+0xC0A6 0x5B30 # <CJK>
+0xC0A7 0x5B2A # <CJK>
+0xC0A8 0x5B24 # <CJK>
+0xC0A9 0x5B7A # <CJK>
+0xC0AA 0x5C37 # <CJK>
+0xC0AB 0x5C68 # <CJK>
+0xC0AC 0x5DBC # <CJK>
+0xC0AD 0x5DBA # <CJK>
+0xC0AE 0x5DBD # <CJK>
+0xC0AF 0x5DB8 # <CJK>
+0xC0B0 0x5E6B # <CJK>
+0xC0B1 0x5F4C # <CJK>
+0xC0B2 0x5FBD # <CJK>
+0xC0B3 0x61C9 # <CJK>
+0xC0B4 0x61C2 # <CJK>
+0xC0B5 0x61C7 # <CJK>
+0xC0B6 0x61E6 # <CJK>
+0xC0B7 0x61CB # <CJK>
+0xC0B8 0x6232 # <CJK>
+0xC0B9 0x6234 # <CJK>
+0xC0BA 0x64CE # <CJK>
+0xC0BB 0x64CA # <CJK>
+0xC0BC 0x64D8 # <CJK>
+0xC0BD 0x64E0 # <CJK>
+0xC0BE 0x64F0 # <CJK>
+0xC0BF 0x64E6 # <CJK>
+0xC0C0 0x64EC # <CJK>
+0xC0C1 0x64F1 # <CJK>
+0xC0C2 0x64E2 # <CJK>
+0xC0C3 0x64ED # <CJK>
+0xC0C4 0x6582 # <CJK>
+0xC0C5 0x6583 # <CJK>
+0xC0C6 0x66D9 # <CJK>
+0xC0C7 0x66D6 # <CJK>
+0xC0C8 0x6A80 # <CJK>
+0xC0C9 0x6A94 # <CJK>
+0xC0CA 0x6A84 # <CJK>
+0xC0CB 0x6AA2 # <CJK>
+0xC0CC 0x6A9C # <CJK>
+0xC0CD 0x6ADB # <CJK>
+0xC0CE 0x6AA3 # <CJK>
+0xC0CF 0x6A7E # <CJK>
+0xC0D0 0x6A97 # <CJK>
+0xC0D1 0x6A90 # <CJK>
+0xC0D2 0x6AA0 # <CJK>
+0xC0D3 0x6B5C # <CJK>
+0xC0D4 0x6BAE # <CJK>
+0xC0D5 0x6BDA # <CJK>
+0xC0D6 0x6C08 # <CJK>
+0xC0D7 0x6FD8 # <CJK>
+0xC0D8 0x6FF1 # <CJK>
+0xC0D9 0x6FDF # <CJK>
+0xC0DA 0x6FE0 # <CJK>
+0xC0DB 0x6FDB # <CJK>
+0xC0DC 0x6FE4 # <CJK>
+0xC0DD 0x6FEB # <CJK>
+0xC0DE 0x6FEF # <CJK>
+0xC0DF 0x6F80 # <CJK>
+0xC0E0 0x6FEC # <CJK>
+0xC0E1 0x6FE1 # <CJK>
+0xC0E2 0x6FE9 # <CJK>
+0xC0E3 0x6FD5 # <CJK>
+0xC0E4 0x6FEE # <CJK>
+0xC0E5 0x6FF0 # <CJK>
+0xC0E6 0x71E7 # <CJK>
+0xC0E7 0x71DF # <CJK>
+0xC0E8 0x71EE # <CJK>
+0xC0E9 0x71E6 # <CJK>
+0xC0EA 0x71E5 # <CJK>
+0xC0EB 0x71ED # <CJK>
+0xC0EC 0x71EC # <CJK>
+0xC0ED 0x71F4 # <CJK>
+0xC0EE 0x71E0 # <CJK>
+0xC0EF 0x7235 # <CJK>
+0xC0F0 0x7246 # <CJK>
+0xC0F1 0x7370 # <CJK>
+0xC0F2 0x7372 # <CJK>
+0xC0F3 0x74A9 # <CJK>
+0xC0F4 0x74B0 # <CJK>
+0xC0F5 0x74A6 # <CJK>
+0xC0F6 0x74A8 # <CJK>
+0xC0F7 0x7646 # <CJK>
+0xC0F8 0x7642 # <CJK>
+0xC0F9 0x764C # <CJK>
+0xC0FA 0x76EA # <CJK>
+0xC0FB 0x77B3 # <CJK>
+0xC0FC 0x77AA # <CJK>
+0xC0FD 0x77B0 # <CJK>
+0xC0FE 0x77AC # <CJK>
+0xC140 0x77A7 # <CJK>
+0xC141 0x77AD # <CJK>
+0xC142 0x77EF # <CJK>
+0xC143 0x78F7 # <CJK>
+0xC144 0x78FA # <CJK>
+0xC145 0x78F4 # <CJK>
+0xC146 0x78EF # <CJK>
+0xC147 0x7901 # <CJK>
+0xC148 0x79A7 # <CJK>
+0xC149 0x79AA # <CJK>
+0xC14A 0x7A57 # <CJK>
+0xC14B 0x7ABF # <CJK>
+0xC14C 0x7C07 # <CJK>
+0xC14D 0x7C0D # <CJK>
+0xC14E 0x7BFE # <CJK>
+0xC14F 0x7BF7 # <CJK>
+0xC150 0x7C0C # <CJK>
+0xC151 0x7BE0 # <CJK>
+0xC152 0x7CE0 # <CJK>
+0xC153 0x7CDC # <CJK>
+0xC154 0x7CDE # <CJK>
+0xC155 0x7CE2 # <CJK>
+0xC156 0x7CDF # <CJK>
+0xC157 0x7CD9 # <CJK>
+0xC158 0x7CDD # <CJK>
+0xC159 0x7E2E # <CJK>
+0xC15A 0x7E3E # <CJK>
+0xC15B 0x7E46 # <CJK>
+0xC15C 0x7E37 # <CJK>
+0xC15D 0x7E32 # <CJK>
+0xC15E 0x7E43 # <CJK>
+0xC15F 0x7E2B # <CJK>
+0xC160 0x7E3D # <CJK>
+0xC161 0x7E31 # <CJK>
+0xC162 0x7E45 # <CJK>
+0xC163 0x7E41 # <CJK>
+0xC164 0x7E34 # <CJK>
+0xC165 0x7E39 # <CJK>
+0xC166 0x7E48 # <CJK>
+0xC167 0x7E35 # <CJK>
+0xC168 0x7E3F # <CJK>
+0xC169 0x7E2F # <CJK>
+0xC16A 0x7F44 # <CJK>
+0xC16B 0x7FF3 # <CJK>
+0xC16C 0x7FFC # <CJK>
+0xC16D 0x8071 # <CJK>
+0xC16E 0x8072 # <CJK>
+0xC16F 0x8070 # <CJK>
+0xC170 0x806F # <CJK>
+0xC171 0x8073 # <CJK>
+0xC172 0x81C6 # <CJK>
+0xC173 0x81C3 # <CJK>
+0xC174 0x81BA # <CJK>
+0xC175 0x81C2 # <CJK>
+0xC176 0x81C0 # <CJK>
+0xC177 0x81BF # <CJK>
+0xC178 0x81BD # <CJK>
+0xC179 0x81C9 # <CJK>
+0xC17A 0x81BE # <CJK>
+0xC17B 0x81E8 # <CJK>
+0xC17C 0x8209 # <CJK>
+0xC17D 0x8271 # <CJK>
+0xC17E 0x85AA # <CJK>
+0xC1A1 0x8584 # <CJK>
+0xC1A2 0x857E # <CJK>
+0xC1A3 0x859C # <CJK>
+0xC1A4 0x8591 # <CJK>
+0xC1A5 0x8594 # <CJK>
+0xC1A6 0x85AF # <CJK>
+0xC1A7 0x859B # <CJK>
+0xC1A8 0x8587 # <CJK>
+0xC1A9 0x85A8 # <CJK>
+0xC1AA 0x858A # <CJK>
+0xC1AB 0x8667 # <CJK>
+0xC1AC 0x87C0 # <CJK>
+0xC1AD 0x87D1 # <CJK>
+0xC1AE 0x87B3 # <CJK>
+0xC1AF 0x87D2 # <CJK>
+0xC1B0 0x87C6 # <CJK>
+0xC1B1 0x87AB # <CJK>
+0xC1B2 0x87BB # <CJK>
+0xC1B3 0x87BA # <CJK>
+0xC1B4 0x87C8 # <CJK>
+0xC1B5 0x87CB # <CJK>
+0xC1B6 0x893B # <CJK>
+0xC1B7 0x8936 # <CJK>
+0xC1B8 0x8944 # <CJK>
+0xC1B9 0x8938 # <CJK>
+0xC1BA 0x893D # <CJK>
+0xC1BB 0x89AC # <CJK>
+0xC1BC 0x8B0E # <CJK>
+0xC1BD 0x8B17 # <CJK>
+0xC1BE 0x8B19 # <CJK>
+0xC1BF 0x8B1B # <CJK>
+0xC1C0 0x8B0A # <CJK>
+0xC1C1 0x8B20 # <CJK>
+0xC1C2 0x8B1D # <CJK>
+0xC1C3 0x8B04 # <CJK>
+0xC1C4 0x8B10 # <CJK>
+0xC1C5 0x8C41 # <CJK>
+0xC1C6 0x8C3F # <CJK>
+0xC1C7 0x8C73 # <CJK>
+0xC1C8 0x8CFA # <CJK>
+0xC1C9 0x8CFD # <CJK>
+0xC1CA 0x8CFC # <CJK>
+0xC1CB 0x8CF8 # <CJK>
+0xC1CC 0x8CFB # <CJK>
+0xC1CD 0x8DA8 # <CJK>
+0xC1CE 0x8E49 # <CJK>
+0xC1CF 0x8E4B # <CJK>
+0xC1D0 0x8E48 # <CJK>
+0xC1D1 0x8E4A # <CJK>
+0xC1D2 0x8F44 # <CJK>
+0xC1D3 0x8F3E # <CJK>
+0xC1D4 0x8F42 # <CJK>
+0xC1D5 0x8F45 # <CJK>
+0xC1D6 0x8F3F # <CJK>
+0xC1D7 0x907F # <CJK>
+0xC1D8 0x907D # <CJK>
+0xC1D9 0x9084 # <CJK>
+0xC1DA 0x9081 # <CJK>
+0xC1DB 0x9082 # <CJK>
+0xC1DC 0x9080 # <CJK>
+0xC1DD 0x9139 # <CJK>
+0xC1DE 0x91A3 # <CJK>
+0xC1DF 0x919E # <CJK>
+0xC1E0 0x919C # <CJK>
+0xC1E1 0x934D # <CJK>
+0xC1E2 0x9382 # <CJK>
+0xC1E3 0x9328 # <CJK>
+0xC1E4 0x9375 # <CJK>
+0xC1E5 0x934A # <CJK>
+0xC1E6 0x9365 # <CJK>
+0xC1E7 0x934B # <CJK>
+0xC1E8 0x9318 # <CJK>
+0xC1E9 0x937E # <CJK>
+0xC1EA 0x936C # <CJK>
+0xC1EB 0x935B # <CJK>
+0xC1EC 0x9370 # <CJK>
+0xC1ED 0x935A # <CJK>
+0xC1EE 0x9354 # <CJK>
+0xC1EF 0x95CA # <CJK>
+0xC1F0 0x95CB # <CJK>
+0xC1F1 0x95CC # <CJK>
+0xC1F2 0x95C8 # <CJK>
+0xC1F3 0x95C6 # <CJK>
+0xC1F4 0x96B1 # <CJK>
+0xC1F5 0x96B8 # <CJK>
+0xC1F6 0x96D6 # <CJK>
+0xC1F7 0x971C # <CJK>
+0xC1F8 0x971E # <CJK>
+0xC1F9 0x97A0 # <CJK>
+0xC1FA 0x97D3 # <CJK>
+0xC1FB 0x9846 # <CJK>
+0xC1FC 0x98B6 # <CJK>
+0xC1FD 0x9935 # <CJK>
+0xC1FE 0x9A01 # <CJK>
+0xC240 0x99FF # <CJK>
+0xC241 0x9BAE # <CJK>
+0xC242 0x9BAB # <CJK>
+0xC243 0x9BAA # <CJK>
+0xC244 0x9BAD # <CJK>
+0xC245 0x9D3B # <CJK>
+0xC246 0x9D3F # <CJK>
+0xC247 0x9E8B # <CJK>
+0xC248 0x9ECF # <CJK>
+0xC249 0x9EDE # <CJK>
+0xC24A 0x9EDC # <CJK>
+0xC24B 0x9EDD # <CJK>
+0xC24C 0x9EDB # <CJK>
+0xC24D 0x9F3E # <CJK>
+0xC24E 0x9F4B # <CJK>
+0xC24F 0x53E2 # <CJK>
+0xC250 0x5695 # <CJK>
+0xC251 0x56AE # <CJK>
+0xC252 0x58D9 # <CJK>
+0xC253 0x58D8 # <CJK>
+0xC254 0x5B38 # <CJK>
+0xC255 0x5F5D # <CJK>
+0xC256 0x61E3 # <CJK>
+0xC257 0x6233 # <CJK>
+0xC258 0x64F4 # <CJK>
+0xC259 0x64F2 # <CJK>
+0xC25A 0x64FE # <CJK>
+0xC25B 0x6506 # <CJK>
+0xC25C 0x64FA # <CJK>
+0xC25D 0x64FB # <CJK>
+0xC25E 0x64F7 # <CJK>
+0xC25F 0x65B7 # <CJK>
+0xC260 0x66DC # <CJK>
+0xC261 0x6726 # <CJK>
+0xC262 0x6AB3 # <CJK>
+0xC263 0x6AAC # <CJK>
+0xC264 0x6AC3 # <CJK>
+0xC265 0x6ABB # <CJK>
+0xC266 0x6AB8 # <CJK>
+0xC267 0x6AC2 # <CJK>
+0xC268 0x6AAE # <CJK>
+0xC269 0x6AAF # <CJK>
+0xC26A 0x6B5F # <CJK>
+0xC26B 0x6B78 # <CJK>
+0xC26C 0x6BAF # <CJK>
+0xC26D 0x7009 # <CJK>
+0xC26E 0x700B # <CJK>
+0xC26F 0x6FFE # <CJK>
+0xC270 0x7006 # <CJK>
+0xC271 0x6FFA # <CJK>
+0xC272 0x7011 # <CJK>
+0xC273 0x700F # <CJK>
+0xC274 0x71FB # <CJK>
+0xC275 0x71FC # <CJK>
+0xC276 0x71FE # <CJK>
+0xC277 0x71F8 # <CJK>
+0xC278 0x7377 # <CJK>
+0xC279 0x7375 # <CJK>
+0xC27A 0x74A7 # <CJK>
+0xC27B 0x74BF # <CJK>
+0xC27C 0x7515 # <CJK>
+0xC27D 0x7656 # <CJK>
+0xC27E 0x7658 # <CJK>
+0xC2A1 0x7652 # <CJK>
+0xC2A2 0x77BD # <CJK>
+0xC2A3 0x77BF # <CJK>
+0xC2A4 0x77BB # <CJK>
+0xC2A5 0x77BC # <CJK>
+0xC2A6 0x790E # <CJK>
+0xC2A7 0x79AE # <CJK>
+0xC2A8 0x7A61 # <CJK>
+0xC2A9 0x7A62 # <CJK>
+0xC2AA 0x7A60 # <CJK>
+0xC2AB 0x7AC4 # <CJK>
+0xC2AC 0x7AC5 # <CJK>
+0xC2AD 0x7C2B # <CJK>
+0xC2AE 0x7C27 # <CJK>
+0xC2AF 0x7C2A # <CJK>
+0xC2B0 0x7C1E # <CJK>
+0xC2B1 0x7C23 # <CJK>
+0xC2B2 0x7C21 # <CJK>
+0xC2B3 0x7CE7 # <CJK>
+0xC2B4 0x7E54 # <CJK>
+0xC2B5 0x7E55 # <CJK>
+0xC2B6 0x7E5E # <CJK>
+0xC2B7 0x7E5A # <CJK>
+0xC2B8 0x7E61 # <CJK>
+0xC2B9 0x7E52 # <CJK>
+0xC2BA 0x7E59 # <CJK>
+0xC2BB 0x7F48 # <CJK>
+0xC2BC 0x7FF9 # <CJK>
+0xC2BD 0x7FFB # <CJK>
+0xC2BE 0x8077 # <CJK>
+0xC2BF 0x8076 # <CJK>
+0xC2C0 0x81CD # <CJK>
+0xC2C1 0x81CF # <CJK>
+0xC2C2 0x820A # <CJK>
+0xC2C3 0x85CF # <CJK>
+0xC2C4 0x85A9 # <CJK>
+0xC2C5 0x85CD # <CJK>
+0xC2C6 0x85D0 # <CJK>
+0xC2C7 0x85C9 # <CJK>
+0xC2C8 0x85B0 # <CJK>
+0xC2C9 0x85BA # <CJK>
+0xC2CA 0x85B9 # <CJK>
+0xC2CB 0x85A6 # <CJK>
+0xC2CC 0x87EF # <CJK>
+0xC2CD 0x87EC # <CJK>
+0xC2CE 0x87F2 # <CJK>
+0xC2CF 0x87E0 # <CJK>
+0xC2D0 0x8986 # <CJK>
+0xC2D1 0x89B2 # <CJK>
+0xC2D2 0x89F4 # <CJK>
+0xC2D3 0x8B28 # <CJK>
+0xC2D4 0x8B39 # <CJK>
+0xC2D5 0x8B2C # <CJK>
+0xC2D6 0x8B2B # <CJK>
+0xC2D7 0x8C50 # <CJK>
+0xC2D8 0x8D05 # <CJK>
+0xC2D9 0x8E59 # <CJK>
+0xC2DA 0x8E63 # <CJK>
+0xC2DB 0x8E66 # <CJK>
+0xC2DC 0x8E64 # <CJK>
+0xC2DD 0x8E5F # <CJK>
+0xC2DE 0x8E55 # <CJK>
+0xC2DF 0x8EC0 # <CJK>
+0xC2E0 0x8F49 # <CJK>
+0xC2E1 0x8F4D # <CJK>
+0xC2E2 0x9087 # <CJK>
+0xC2E3 0x9083 # <CJK>
+0xC2E4 0x9088 # <CJK>
+0xC2E5 0x91AB # <CJK>
+0xC2E6 0x91AC # <CJK>
+0xC2E7 0x91D0 # <CJK>
+0xC2E8 0x9394 # <CJK>
+0xC2E9 0x938A # <CJK>
+0xC2EA 0x9396 # <CJK>
+0xC2EB 0x93A2 # <CJK>
+0xC2EC 0x93B3 # <CJK>
+0xC2ED 0x93AE # <CJK>
+0xC2EE 0x93AC # <CJK>
+0xC2EF 0x93B0 # <CJK>
+0xC2F0 0x9398 # <CJK>
+0xC2F1 0x939A # <CJK>
+0xC2F2 0x9397 # <CJK>
+0xC2F3 0x95D4 # <CJK>
+0xC2F4 0x95D6 # <CJK>
+0xC2F5 0x95D0 # <CJK>
+0xC2F6 0x95D5 # <CJK>
+0xC2F7 0x96E2 # <CJK>
+0xC2F8 0x96DC # <CJK>
+0xC2F9 0x96D9 # <CJK>
+0xC2FA 0x96DB # <CJK>
+0xC2FB 0x96DE # <CJK>
+0xC2FC 0x9724 # <CJK>
+0xC2FD 0x97A3 # <CJK>
+0xC2FE 0x97A6 # <CJK>
+0xC340 0x97AD # <CJK>
+0xC341 0x97F9 # <CJK>
+0xC342 0x984D # <CJK>
+0xC343 0x984F # <CJK>
+0xC344 0x984C # <CJK>
+0xC345 0x984E # <CJK>
+0xC346 0x9853 # <CJK>
+0xC347 0x98BA # <CJK>
+0xC348 0x993E # <CJK>
+0xC349 0x993F # <CJK>
+0xC34A 0x993D # <CJK>
+0xC34B 0x992E # <CJK>
+0xC34C 0x99A5 # <CJK>
+0xC34D 0x9A0E # <CJK>
+0xC34E 0x9AC1 # <CJK>
+0xC34F 0x9B03 # <CJK>
+0xC350 0x9B06 # <CJK>
+0xC351 0x9B4F # <CJK>
+0xC352 0x9B4E # <CJK>
+0xC353 0x9B4D # <CJK>
+0xC354 0x9BCA # <CJK>
+0xC355 0x9BC9 # <CJK>
+0xC356 0x9BFD # <CJK>
+0xC357 0x9BC8 # <CJK>
+0xC358 0x9BC0 # <CJK>
+0xC359 0x9D51 # <CJK>
+0xC35A 0x9D5D # <CJK>
+0xC35B 0x9D60 # <CJK>
+0xC35C 0x9EE0 # <CJK>
+0xC35D 0x9F15 # <CJK>
+0xC35E 0x9F2C # <CJK>
+0xC35F 0x5133 # <CJK>
+0xC360 0x56A5 # <CJK>
+0xC361 0x58DE # <CJK>
+0xC362 0x58DF # <CJK>
+0xC363 0x58E2 # <CJK>
+0xC364 0x5BF5 # <CJK>
+0xC365 0x9F90 # <CJK>
+0xC366 0x5EEC # <CJK>
+0xC367 0x61F2 # <CJK>
+0xC368 0x61F7 # <CJK>
+0xC369 0x61F6 # <CJK>
+0xC36A 0x61F5 # <CJK>
+0xC36B 0x6500 # <CJK>
+0xC36C 0x650F # <CJK>
+0xC36D 0x66E0 # <CJK>
+0xC36E 0x66DD # <CJK>
+0xC36F 0x6AE5 # <CJK>
+0xC370 0x6ADD # <CJK>
+0xC371 0x6ADA # <CJK>
+0xC372 0x6AD3 # <CJK>
+0xC373 0x701B # <CJK>
+0xC374 0x701F # <CJK>
+0xC375 0x7028 # <CJK>
+0xC376 0x701A # <CJK>
+0xC377 0x701D # <CJK>
+0xC378 0x7015 # <CJK>
+0xC379 0x7018 # <CJK>
+0xC37A 0x7206 # <CJK>
+0xC37B 0x720D # <CJK>
+0xC37C 0x7258 # <CJK>
+0xC37D 0x72A2 # <CJK>
+0xC37E 0x7378 # <CJK>
+0xC3A1 0x737A # <CJK>
+0xC3A2 0x74BD # <CJK>
+0xC3A3 0x74CA # <CJK>
+0xC3A4 0x74E3 # <CJK>
+0xC3A5 0x7587 # <CJK>
+0xC3A6 0x7586 # <CJK>
+0xC3A7 0x765F # <CJK>
+0xC3A8 0x7661 # <CJK>
+0xC3A9 0x77C7 # <CJK>
+0xC3AA 0x7919 # <CJK>
+0xC3AB 0x79B1 # <CJK>
+0xC3AC 0x7A6B # <CJK>
+0xC3AD 0x7A69 # <CJK>
+0xC3AE 0x7C3E # <CJK>
+0xC3AF 0x7C3F # <CJK>
+0xC3B0 0x7C38 # <CJK>
+0xC3B1 0x7C3D # <CJK>
+0xC3B2 0x7C37 # <CJK>
+0xC3B3 0x7C40 # <CJK>
+0xC3B4 0x7E6B # <CJK>
+0xC3B5 0x7E6D # <CJK>
+0xC3B6 0x7E79 # <CJK>
+0xC3B7 0x7E69 # <CJK>
+0xC3B8 0x7E6A # <CJK>
+0xC3B9 0x7F85 # <CJK>
+0xC3BA 0x7E73 # <CJK>
+0xC3BB 0x7FB6 # <CJK>
+0xC3BC 0x7FB9 # <CJK>
+0xC3BD 0x7FB8 # <CJK>
+0xC3BE 0x81D8 # <CJK>
+0xC3BF 0x85E9 # <CJK>
+0xC3C0 0x85DD # <CJK>
+0xC3C1 0x85EA # <CJK>
+0xC3C2 0x85D5 # <CJK>
+0xC3C3 0x85E4 # <CJK>
+0xC3C4 0x85E5 # <CJK>
+0xC3C5 0x85F7 # <CJK>
+0xC3C6 0x87FB # <CJK>
+0xC3C7 0x8805 # <CJK>
+0xC3C8 0x880D # <CJK>
+0xC3C9 0x87F9 # <CJK>
+0xC3CA 0x87FE # <CJK>
+0xC3CB 0x8960 # <CJK>
+0xC3CC 0x895F # <CJK>
+0xC3CD 0x8956 # <CJK>
+0xC3CE 0x895E # <CJK>
+0xC3CF 0x8B41 # <CJK>
+0xC3D0 0x8B5C # <CJK>
+0xC3D1 0x8B58 # <CJK>
+0xC3D2 0x8B49 # <CJK>
+0xC3D3 0x8B5A # <CJK>
+0xC3D4 0x8B4E # <CJK>
+0xC3D5 0x8B4F # <CJK>
+0xC3D6 0x8B46 # <CJK>
+0xC3D7 0x8B59 # <CJK>
+0xC3D8 0x8D08 # <CJK>
+0xC3D9 0x8D0A # <CJK>
+0xC3DA 0x8E7C # <CJK>
+0xC3DB 0x8E72 # <CJK>
+0xC3DC 0x8E87 # <CJK>
+0xC3DD 0x8E76 # <CJK>
+0xC3DE 0x8E6C # <CJK>
+0xC3DF 0x8E7A # <CJK>
+0xC3E0 0x8E74 # <CJK>
+0xC3E1 0x8F54 # <CJK>
+0xC3E2 0x8F4E # <CJK>
+0xC3E3 0x8FAD # <CJK>
+0xC3E4 0x908A # <CJK>
+0xC3E5 0x908B # <CJK>
+0xC3E6 0x91B1 # <CJK>
+0xC3E7 0x91AE # <CJK>
+0xC3E8 0x93E1 # <CJK>
+0xC3E9 0x93D1 # <CJK>
+0xC3EA 0x93DF # <CJK>
+0xC3EB 0x93C3 # <CJK>
+0xC3EC 0x93C8 # <CJK>
+0xC3ED 0x93DC # <CJK>
+0xC3EE 0x93DD # <CJK>
+0xC3EF 0x93D6 # <CJK>
+0xC3F0 0x93E2 # <CJK>
+0xC3F1 0x93CD # <CJK>
+0xC3F2 0x93D8 # <CJK>
+0xC3F3 0x93E4 # <CJK>
+0xC3F4 0x93D7 # <CJK>
+0xC3F5 0x93E8 # <CJK>
+0xC3F6 0x95DC # <CJK>
+0xC3F7 0x96B4 # <CJK>
+0xC3F8 0x96E3 # <CJK>
+0xC3F9 0x972A # <CJK>
+0xC3FA 0x9727 # <CJK>
+0xC3FB 0x9761 # <CJK>
+0xC3FC 0x97DC # <CJK>
+0xC3FD 0x97FB # <CJK>
+0xC3FE 0x985E # <CJK>
+0xC440 0x9858 # <CJK>
+0xC441 0x985B # <CJK>
+0xC442 0x98BC # <CJK>
+0xC443 0x9945 # <CJK>
+0xC444 0x9949 # <CJK>
+0xC445 0x9A16 # <CJK>
+0xC446 0x9A19 # <CJK>
+0xC447 0x9B0D # <CJK>
+0xC448 0x9BE8 # <CJK>
+0xC449 0x9BE7 # <CJK>
+0xC44A 0x9BD6 # <CJK>
+0xC44B 0x9BDB # <CJK>
+0xC44C 0x9D89 # <CJK>
+0xC44D 0x9D61 # <CJK>
+0xC44E 0x9D72 # <CJK>
+0xC44F 0x9D6A # <CJK>
+0xC450 0x9D6C # <CJK>
+0xC451 0x9E92 # <CJK>
+0xC452 0x9E97 # <CJK>
+0xC453 0x9E93 # <CJK>
+0xC454 0x9EB4 # <CJK>
+0xC455 0x52F8 # <CJK>
+0xC456 0x56A8 # <CJK>
+0xC457 0x56B7 # <CJK>
+0xC458 0x56B6 # <CJK>
+0xC459 0x56B4 # <CJK>
+0xC45A 0x56BC # <CJK>
+0xC45B 0x58E4 # <CJK>
+0xC45C 0x5B40 # <CJK>
+0xC45D 0x5B43 # <CJK>
+0xC45E 0x5B7D # <CJK>
+0xC45F 0x5BF6 # <CJK>
+0xC460 0x5DC9 # <CJK>
+0xC461 0x61F8 # <CJK>
+0xC462 0x61FA # <CJK>
+0xC463 0x6518 # <CJK>
+0xC464 0x6514 # <CJK>
+0xC465 0x6519 # <CJK>
+0xC466 0x66E6 # <CJK>
+0xC467 0x6727 # <CJK>
+0xC468 0x6AEC # <CJK>
+0xC469 0x703E # <CJK>
+0xC46A 0x7030 # <CJK>
+0xC46B 0x7032 # <CJK>
+0xC46C 0x7210 # <CJK>
+0xC46D 0x737B # <CJK>
+0xC46E 0x74CF # <CJK>
+0xC46F 0x7662 # <CJK>
+0xC470 0x7665 # <CJK>
+0xC471 0x7926 # <CJK>
+0xC472 0x792A # <CJK>
+0xC473 0x792C # <CJK>
+0xC474 0x792B # <CJK>
+0xC475 0x7AC7 # <CJK>
+0xC476 0x7AF6 # <CJK>
+0xC477 0x7C4C # <CJK>
+0xC478 0x7C43 # <CJK>
+0xC479 0x7C4D # <CJK>
+0xC47A 0x7CEF # <CJK>
+0xC47B 0x7CF0 # <CJK>
+0xC47C 0x8FAE # <CJK>
+0xC47D 0x7E7D # <CJK>
+0xC47E 0x7E7C # <CJK>
+0xC4A1 0x7E82 # <CJK>
+0xC4A2 0x7F4C # <CJK>
+0xC4A3 0x8000 # <CJK>
+0xC4A4 0x81DA # <CJK>
+0xC4A5 0x8266 # <CJK>
+0xC4A6 0x85FB # <CJK>
+0xC4A7 0x85F9 # <CJK>
+0xC4A8 0x8611 # <CJK>
+0xC4A9 0x85FA # <CJK>
+0xC4AA 0x8606 # <CJK>
+0xC4AB 0x860B # <CJK>
+0xC4AC 0x8607 # <CJK>
+0xC4AD 0x860A # <CJK>
+0xC4AE 0x8814 # <CJK>
+0xC4AF 0x8815 # <CJK>
+0xC4B0 0x8964 # <CJK>
+0xC4B1 0x89BA # <CJK>
+0xC4B2 0x89F8 # <CJK>
+0xC4B3 0x8B70 # <CJK>
+0xC4B4 0x8B6C # <CJK>
+0xC4B5 0x8B66 # <CJK>
+0xC4B6 0x8B6F # <CJK>
+0xC4B7 0x8B5F # <CJK>
+0xC4B8 0x8B6B # <CJK>
+0xC4B9 0x8D0F # <CJK>
+0xC4BA 0x8D0D # <CJK>
+0xC4BB 0x8E89 # <CJK>
+0xC4BC 0x8E81 # <CJK>
+0xC4BD 0x8E85 # <CJK>
+0xC4BE 0x8E82 # <CJK>
+0xC4BF 0x91B4 # <CJK>
+0xC4C0 0x91CB # <CJK>
+0xC4C1 0x9418 # <CJK>
+0xC4C2 0x9403 # <CJK>
+0xC4C3 0x93FD # <CJK>
+0xC4C4 0x95E1 # <CJK>
+0xC4C5 0x9730 # <CJK>
+0xC4C6 0x98C4 # <CJK>
+0xC4C7 0x9952 # <CJK>
+0xC4C8 0x9951 # <CJK>
+0xC4C9 0x99A8 # <CJK>
+0xC4CA 0x9A2B # <CJK>
+0xC4CB 0x9A30 # <CJK>
+0xC4CC 0x9A37 # <CJK>
+0xC4CD 0x9A35 # <CJK>
+0xC4CE 0x9C13 # <CJK>
+0xC4CF 0x9C0D # <CJK>
+0xC4D0 0x9E79 # <CJK>
+0xC4D1 0x9EB5 # <CJK>
+0xC4D2 0x9EE8 # <CJK>
+0xC4D3 0x9F2F # <CJK>
+0xC4D4 0x9F5F # <CJK>
+0xC4D5 0x9F63 # <CJK>
+0xC4D6 0x9F61 # <CJK>
+0xC4D7 0x5137 # <CJK>
+0xC4D8 0x5138 # <CJK>
+0xC4D9 0x56C1 # <CJK>
+0xC4DA 0x56C0 # <CJK>
+0xC4DB 0x56C2 # <CJK>
+0xC4DC 0x5914 # <CJK>
+0xC4DD 0x5C6C # <CJK>
+0xC4DE 0x5DCD # <CJK>
+0xC4DF 0x61FC # <CJK>
+0xC4E0 0x61FE # <CJK>
+0xC4E1 0x651D # <CJK>
+0xC4E2 0x651C # <CJK>
+0xC4E3 0x6595 # <CJK>
+0xC4E4 0x66E9 # <CJK>
+0xC4E5 0x6AFB # <CJK>
+0xC4E6 0x6B04 # <CJK>
+0xC4E7 0x6AFA # <CJK>
+0xC4E8 0x6BB2 # <CJK>
+0xC4E9 0x704C # <CJK>
+0xC4EA 0x721B # <CJK>
+0xC4EB 0x72A7 # <CJK>
+0xC4EC 0x74D6 # <CJK>
+0xC4ED 0x74D4 # <CJK>
+0xC4EE 0x7669 # <CJK>
+0xC4EF 0x77D3 # <CJK>
+0xC4F0 0x7C50 # <CJK>
+0xC4F1 0x7E8F # <CJK>
+0xC4F2 0x7E8C # <CJK>
+0xC4F3 0x7FBC # <CJK>
+0xC4F4 0x8617 # <CJK>
+0xC4F5 0x862D # <CJK>
+0xC4F6 0x861A # <CJK>
+0xC4F7 0x8823 # <CJK>
+0xC4F8 0x8822 # <CJK>
+0xC4F9 0x8821 # <CJK>
+0xC4FA 0x881F # <CJK>
+0xC4FB 0x896A # <CJK>
+0xC4FC 0x896C # <CJK>
+0xC4FD 0x89BD # <CJK>
+0xC4FE 0x8B74 # <CJK>
+0xC540 0x8B77 # <CJK>
+0xC541 0x8B7D # <CJK>
+0xC542 0x8D13 # <CJK>
+0xC543 0x8E8A # <CJK>
+0xC544 0x8E8D # <CJK>
+0xC545 0x8E8B # <CJK>
+0xC546 0x8F5F # <CJK>
+0xC547 0x8FAF # <CJK>
+0xC548 0x91BA # <CJK>
+0xC549 0x942E # <CJK>
+0xC54A 0x9433 # <CJK>
+0xC54B 0x9435 # <CJK>
+0xC54C 0x943A # <CJK>
+0xC54D 0x9438 # <CJK>
+0xC54E 0x9432 # <CJK>
+0xC54F 0x942B # <CJK>
+0xC550 0x95E2 # <CJK>
+0xC551 0x9738 # <CJK>
+0xC552 0x9739 # <CJK>
+0xC553 0x9732 # <CJK>
+0xC554 0x97FF # <CJK>
+0xC555 0x9867 # <CJK>
+0xC556 0x9865 # <CJK>
+0xC557 0x9957 # <CJK>
+0xC558 0x9A45 # <CJK>
+0xC559 0x9A43 # <CJK>
+0xC55A 0x9A40 # <CJK>
+0xC55B 0x9A3E # <CJK>
+0xC55C 0x9ACF # <CJK>
+0xC55D 0x9B54 # <CJK>
+0xC55E 0x9B51 # <CJK>
+0xC55F 0x9C2D # <CJK>
+0xC560 0x9C25 # <CJK>
+0xC561 0x9DAF # <CJK>
+0xC562 0x9DB4 # <CJK>
+0xC563 0x9DC2 # <CJK>
+0xC564 0x9DB8 # <CJK>
+0xC565 0x9E9D # <CJK>
+0xC566 0x9EEF # <CJK>
+0xC567 0x9F19 # <CJK>
+0xC568 0x9F5C # <CJK>
+0xC569 0x9F66 # <CJK>
+0xC56A 0x9F67 # <CJK>
+0xC56B 0x513C # <CJK>
+0xC56C 0x513B # <CJK>
+0xC56D 0x56C8 # <CJK>
+0xC56E 0x56CA # <CJK>
+0xC56F 0x56C9 # <CJK>
+0xC570 0x5B7F # <CJK>
+0xC571 0x5DD4 # <CJK>
+0xC572 0x5DD2 # <CJK>
+0xC573 0x5F4E # <CJK>
+0xC574 0x61FF # <CJK>
+0xC575 0x6524 # <CJK>
+0xC576 0x6B0A # <CJK>
+0xC577 0x6B61 # <CJK>
+0xC578 0x7051 # <CJK>
+0xC579 0x7058 # <CJK>
+0xC57A 0x7380 # <CJK>
+0xC57B 0x74E4 # <CJK>
+0xC57C 0x758A # <CJK>
+0xC57D 0x766E # <CJK>
+0xC57E 0x766C # <CJK>
+0xC5A1 0x79B3 # <CJK>
+0xC5A2 0x7C60 # <CJK>
+0xC5A3 0x7C5F # <CJK>
+0xC5A4 0x807E # <CJK>
+0xC5A5 0x807D # <CJK>
+0xC5A6 0x81DF # <CJK>
+0xC5A7 0x8972 # <CJK>
+0xC5A8 0x896F # <CJK>
+0xC5A9 0x89FC # <CJK>
+0xC5AA 0x8B80 # <CJK>
+0xC5AB 0x8D16 # <CJK>
+0xC5AC 0x8D17 # <CJK>
+0xC5AD 0x8E91 # <CJK>
+0xC5AE 0x8E93 # <CJK>
+0xC5AF 0x8F61 # <CJK>
+0xC5B0 0x9148 # <CJK>
+0xC5B1 0x9444 # <CJK>
+0xC5B2 0x9451 # <CJK>
+0xC5B3 0x9452 # <CJK>
+0xC5B4 0x973D # <CJK>
+0xC5B5 0x973E # <CJK>
+0xC5B6 0x97C3 # <CJK>
+0xC5B7 0x97C1 # <CJK>
+0xC5B8 0x986B # <CJK>
+0xC5B9 0x9955 # <CJK>
+0xC5BA 0x9A55 # <CJK>
+0xC5BB 0x9A4D # <CJK>
+0xC5BC 0x9AD2 # <CJK>
+0xC5BD 0x9B1A # <CJK>
+0xC5BE 0x9C49 # <CJK>
+0xC5BF 0x9C31 # <CJK>
+0xC5C0 0x9C3E # <CJK>
+0xC5C1 0x9C3B # <CJK>
+0xC5C2 0x9DD3 # <CJK>
+0xC5C3 0x9DD7 # <CJK>
+0xC5C4 0x9F34 # <CJK>
+0xC5C5 0x9F6C # <CJK>
+0xC5C6 0x9F6A # <CJK>
+0xC5C7 0x9F94 # <CJK>
+0xC5C8 0x56CC # <CJK>
+0xC5C9 0x5DD6 # <CJK>
+0xC5CA 0x6200 # <CJK>
+0xC5CB 0x6523 # <CJK>
+0xC5CC 0x652B # <CJK>
+0xC5CD 0x652A # <CJK>
+0xC5CE 0x66EC # <CJK>
+0xC5CF 0x6B10 # <CJK>
+0xC5D0 0x74DA # <CJK>
+0xC5D1 0x7ACA # <CJK>
+0xC5D2 0x7C64 # <CJK>
+0xC5D3 0x7C63 # <CJK>
+0xC5D4 0x7C65 # <CJK>
+0xC5D5 0x7E93 # <CJK>
+0xC5D6 0x7E96 # <CJK>
+0xC5D7 0x7E94 # <CJK>
+0xC5D8 0x81E2 # <CJK>
+0xC5D9 0x8638 # <CJK>
+0xC5DA 0x863F # <CJK>
+0xC5DB 0x8831 # <CJK>
+0xC5DC 0x8B8A # <CJK>
+0xC5DD 0x9090 # <CJK>
+0xC5DE 0x908F # <CJK>
+0xC5DF 0x9463 # <CJK>
+0xC5E0 0x9460 # <CJK>
+0xC5E1 0x9464 # <CJK>
+0xC5E2 0x9768 # <CJK>
+0xC5E3 0x986F # <CJK>
+0xC5E4 0x995C # <CJK>
+0xC5E5 0x9A5A # <CJK>
+0xC5E6 0x9A5B # <CJK>
+0xC5E7 0x9A57 # <CJK>
+0xC5E8 0x9AD3 # <CJK>
+0xC5E9 0x9AD4 # <CJK>
+0xC5EA 0x9AD1 # <CJK>
+0xC5EB 0x9C54 # <CJK>
+0xC5EC 0x9C57 # <CJK>
+0xC5ED 0x9C56 # <CJK>
+0xC5EE 0x9DE5 # <CJK>
+0xC5EF 0x9E9F # <CJK>
+0xC5F0 0x9EF4 # <CJK>
+0xC5F1 0x56D1 # <CJK>
+0xC5F2 0x58E9 # <CJK>
+0xC5F3 0x652C # <CJK>
+0xC5F4 0x705E # <CJK>
+0xC5F5 0x7671 # <CJK>
+0xC5F6 0x7672 # <CJK>
+0xC5F7 0x77D7 # <CJK>
+0xC5F8 0x7F50 # <CJK>
+0xC5F9 0x7F88 # <CJK>
+0xC5FA 0x8836 # <CJK>
+0xC5FB 0x8839 # <CJK>
+0xC5FC 0x8862 # <CJK>
+0xC5FD 0x8B93 # <CJK>
+0xC5FE 0x8B92 # <CJK>
+0xC640 0x8B96 # <CJK>
+0xC641 0x8277 # <CJK>
+0xC642 0x8D1B # <CJK>
+0xC643 0x91C0 # <CJK>
+0xC644 0x946A # <CJK>
+0xC645 0x9742 # <CJK>
+0xC646 0x9748 # <CJK>
+0xC647 0x9744 # <CJK>
+0xC648 0x97C6 # <CJK>
+0xC649 0x9870 # <CJK>
+0xC64A 0x9A5F # <CJK>
+0xC64B 0x9B22 # <CJK>
+0xC64C 0x9B58 # <CJK>
+0xC64D 0x9C5F # <CJK>
+0xC64E 0x9DF9 # <CJK>
+0xC64F 0x9DFA # <CJK>
+0xC650 0x9E7C # <CJK>
+0xC651 0x9E7D # <CJK>
+0xC652 0x9F07 # <CJK>
+0xC653 0x9F77 # <CJK>
+0xC654 0x9F72 # <CJK>
+0xC655 0x5EF3 # <CJK>
+0xC656 0x6B16 # <CJK>
+0xC657 0x7063 # <CJK>
+0xC658 0x7C6C # <CJK>
+0xC659 0x7C6E # <CJK>
+0xC65A 0x883B # <CJK>
+0xC65B 0x89C0 # <CJK>
+0xC65C 0x8EA1 # <CJK>
+0xC65D 0x91C1 # <CJK>
+0xC65E 0x9472 # <CJK>
+0xC65F 0x9470 # <CJK>
+0xC660 0x9871 # <CJK>
+0xC661 0x995E # <CJK>
+0xC662 0x9AD6 # <CJK>
+0xC663 0x9B23 # <CJK>
+0xC664 0x9ECC # <CJK>
+0xC665 0x7064 # <CJK>
+0xC666 0x77DA # <CJK>
+0xC667 0x8B9A # <CJK>
+0xC668 0x9477 # <CJK>
+0xC669 0x97C9 # <CJK>
+0xC66A 0x9A62 # <CJK>
+0xC66B 0x9A65 # <CJK>
+0xC66C 0x7E9C # <CJK>
+0xC66D 0x8B9C # <CJK>
+0xC66E 0x8EAA # <CJK>
+0xC66F 0x91C5 # <CJK>
+0xC670 0x947D # <CJK>
+0xC671 0x947E # <CJK>
+0xC672 0x947C # <CJK>
+0xC673 0x9C77 # <CJK>
+0xC674 0x9C78 # <CJK>
+0xC675 0x9EF7 # <CJK>
+0xC676 0x8C54 # <CJK>
+0xC677 0x947F # <CJK>
+0xC678 0x9E1A # <CJK>
+0xC679 0x7228 # <CJK>
+0xC67A 0x9A6A # <CJK>
+0xC67B 0x9B31 # <CJK>
+0xC67C 0x9E1B # <CJK>
+0xC67D 0x9E1E # <CJK>
+0xC67E 0x7C72 # <CJK>
+0xC6A1 0x30FE # KATAKANA VOICED ITERATION MARK
+0xC6A2 0x309D # HIRAGANA ITERATION MARK
+0xC6A3 0x309E # HIRAGANA VOICED ITERATION MARK
+0xC6A4 0x3005 # IDEOGRAPHIC ITERATION MARK
+0xC6A5 0x3041 # HIRAGANA LETTER SMALL A
+0xC6A6 0x3042 # HIRAGANA LETTER A
+0xC6A7 0x3043 # HIRAGANA LETTER SMALL I
+0xC6A8 0x3044 # HIRAGANA LETTER I
+0xC6A9 0x3045 # HIRAGANA LETTER SMALL U
+0xC6AA 0x3046 # HIRAGANA LETTER U
+0xC6AB 0x3047 # HIRAGANA LETTER SMALL E
+0xC6AC 0x3048 # HIRAGANA LETTER E
+0xC6AD 0x3049 # HIRAGANA LETTER SMALL O
+0xC6AE 0x304A # HIRAGANA LETTER O
+0xC6AF 0x304B # HIRAGANA LETTER KA
+0xC6B0 0x304C # HIRAGANA LETTER GA
+0xC6B1 0x304D # HIRAGANA LETTER KI
+0xC6B2 0x304E # HIRAGANA LETTER GI
+0xC6B3 0x304F # HIRAGANA LETTER KU
+0xC6B4 0x3050 # HIRAGANA LETTER GU
+0xC6B5 0x3051 # HIRAGANA LETTER KE
+0xC6B6 0x3052 # HIRAGANA LETTER GE
+0xC6B7 0x3053 # HIRAGANA LETTER KO
+0xC6B8 0x3054 # HIRAGANA LETTER GO
+0xC6B9 0x3055 # HIRAGANA LETTER SA
+0xC6BA 0x3056 # HIRAGANA LETTER ZA
+0xC6BB 0x3057 # HIRAGANA LETTER SI
+0xC6BC 0x3058 # HIRAGANA LETTER ZI
+0xC6BD 0x3059 # HIRAGANA LETTER SU
+0xC6BE 0x305A # HIRAGANA LETTER ZU
+0xC6BF 0x305B # HIRAGANA LETTER SE
+0xC6C0 0x305C # HIRAGANA LETTER ZE
+0xC6C1 0x305D # HIRAGANA LETTER SO
+0xC6C2 0x305E # HIRAGANA LETTER ZO
+0xC6C3 0x305F # HIRAGANA LETTER TA
+0xC6C4 0x3060 # HIRAGANA LETTER DA
+0xC6C5 0x3061 # HIRAGANA LETTER TI
+0xC6C6 0x3062 # HIRAGANA LETTER DI
+0xC6C7 0x3063 # HIRAGANA LETTER SMALL TU
+0xC6C8 0x3064 # HIRAGANA LETTER TU
+0xC6C9 0x3065 # HIRAGANA LETTER DU
+0xC6CA 0x3066 # HIRAGANA LETTER TE
+0xC6CB 0x3067 # HIRAGANA LETTER DE
+0xC6CC 0x3068 # HIRAGANA LETTER TO
+0xC6CD 0x3069 # HIRAGANA LETTER DO
+0xC6CE 0x306A # HIRAGANA LETTER NA
+0xC6CF 0x306B # HIRAGANA LETTER NI
+0xC6D0 0x306C # HIRAGANA LETTER NU
+0xC6D1 0x306D # HIRAGANA LETTER NE
+0xC6D2 0x306E # HIRAGANA LETTER NO
+0xC6D3 0x306F # HIRAGANA LETTER HA
+0xC6D4 0x3070 # HIRAGANA LETTER BA
+0xC6D5 0x3071 # HIRAGANA LETTER PA
+0xC6D6 0x3072 # HIRAGANA LETTER HI
+0xC6D7 0x3073 # HIRAGANA LETTER BI
+0xC6D8 0x3074 # HIRAGANA LETTER PI
+0xC6D9 0x3075 # HIRAGANA LETTER HU
+0xC6DA 0x3076 # HIRAGANA LETTER BU
+0xC6DB 0x3077 # HIRAGANA LETTER PU
+0xC6DC 0x3078 # HIRAGANA LETTER HE
+0xC6DD 0x3079 # HIRAGANA LETTER BE
+0xC6DE 0x307A # HIRAGANA LETTER PE
+0xC6DF 0x307B # HIRAGANA LETTER HO
+0xC6E0 0x307C # HIRAGANA LETTER BO
+0xC6E1 0x307D # HIRAGANA LETTER PO
+0xC6E2 0x307E # HIRAGANA LETTER MA
+0xC6E3 0x307F # HIRAGANA LETTER MI
+0xC6E4 0x3080 # HIRAGANA LETTER MU
+0xC6E5 0x3081 # HIRAGANA LETTER ME
+0xC6E6 0x3082 # HIRAGANA LETTER MO
+0xC6E7 0x3083 # HIRAGANA LETTER SMALL YA
+0xC6E8 0x3084 # HIRAGANA LETTER YA
+0xC6E9 0x3085 # HIRAGANA LETTER SMALL YU
+0xC6EA 0x3086 # HIRAGANA LETTER YU
+0xC6EB 0x3087 # HIRAGANA LETTER SMALL YO
+0xC6EC 0x3088 # HIRAGANA LETTER YO
+0xC6ED 0x3089 # HIRAGANA LETTER RA
+0xC6EE 0x308A # HIRAGANA LETTER RI
+0xC6EF 0x308B # HIRAGANA LETTER RU
+0xC6F0 0x308C # HIRAGANA LETTER RE
+0xC6F1 0x308D # HIRAGANA LETTER RO
+0xC6F2 0x308E # HIRAGANA LETTER SMALL WA
+0xC6F3 0x308F # HIRAGANA LETTER WA
+0xC6F4 0x3090 # HIRAGANA LETTER WI
+0xC6F5 0x3091 # HIRAGANA LETTER WE
+0xC6F6 0x3092 # HIRAGANA LETTER WO
+0xC6F7 0x3093 # HIRAGANA LETTER N
+0xC6F8 0x30A1 # KATAKANA LETTER SMALL A
+0xC6F9 0x30A2 # KATAKANA LETTER A
+0xC6FA 0x30A3 # KATAKANA LETTER SMALL I
+0xC6FB 0x30A4 # KATAKANA LETTER I
+0xC6FC 0x30A5 # KATAKANA LETTER SMALL U
+0xC6FD 0x30A6 # KATAKANA LETTER U
+0xC6FE 0x30A7 # KATAKANA LETTER SMALL E
+0xC740 0x30A8 # KATAKANA LETTER E
+0xC741 0x30A9 # KATAKANA LETTER SMALL O
+0xC742 0x30AA # KATAKANA LETTER O
+0xC743 0x30AB # KATAKANA LETTER KA
+0xC744 0x30AC # KATAKANA LETTER GA
+0xC745 0x30AD # KATAKANA LETTER KI
+0xC746 0x30AE # KATAKANA LETTER GI
+0xC747 0x30AF # KATAKANA LETTER KU
+0xC748 0x30B0 # KATAKANA LETTER GU
+0xC749 0x30B1 # KATAKANA LETTER KE
+0xC74A 0x30B2 # KATAKANA LETTER GE
+0xC74B 0x30B3 # KATAKANA LETTER KO
+0xC74C 0x30B4 # KATAKANA LETTER GO
+0xC74D 0x30B5 # KATAKANA LETTER SA
+0xC74E 0x30B6 # KATAKANA LETTER ZA
+0xC74F 0x30B7 # KATAKANA LETTER SI
+0xC750 0x30B8 # KATAKANA LETTER ZI
+0xC751 0x30B9 # KATAKANA LETTER SU
+0xC752 0x30BA # KATAKANA LETTER ZU
+0xC753 0x30BB # KATAKANA LETTER SE
+0xC754 0x30BC # KATAKANA LETTER ZE
+0xC755 0x30BD # KATAKANA LETTER SO
+0xC756 0x30BE # KATAKANA LETTER ZO
+0xC757 0x30BF # KATAKANA LETTER TA
+0xC758 0x30C0 # KATAKANA LETTER DA
+0xC759 0x30C1 # KATAKANA LETTER TI
+0xC75A 0x30C2 # KATAKANA LETTER DI
+0xC75B 0x30C3 # KATAKANA LETTER SMALL TU
+0xC75C 0x30C4 # KATAKANA LETTER TU
+0xC75D 0x30C5 # KATAKANA LETTER DU
+0xC75E 0x30C6 # KATAKANA LETTER TE
+0xC75F 0x30C7 # KATAKANA LETTER DE
+0xC760 0x30C8 # KATAKANA LETTER TO
+0xC761 0x30C9 # KATAKANA LETTER DO
+0xC762 0x30CA # KATAKANA LETTER NA
+0xC763 0x30CB # KATAKANA LETTER NI
+0xC764 0x30CC # KATAKANA LETTER NU
+0xC765 0x30CD # KATAKANA LETTER NE
+0xC766 0x30CE # KATAKANA LETTER NO
+0xC767 0x30CF # KATAKANA LETTER HA
+0xC768 0x30D0 # KATAKANA LETTER BA
+0xC769 0x30D1 # KATAKANA LETTER PA
+0xC76A 0x30D2 # KATAKANA LETTER HI
+0xC76B 0x30D3 # KATAKANA LETTER BI
+0xC76C 0x30D4 # KATAKANA LETTER PI
+0xC76D 0x30D5 # KATAKANA LETTER HU
+0xC76E 0x30D6 # KATAKANA LETTER BU
+0xC76F 0x30D7 # KATAKANA LETTER PU
+0xC770 0x30D8 # KATAKANA LETTER HE
+0xC771 0x30D9 # KATAKANA LETTER BE
+0xC772 0x30DA # KATAKANA LETTER PE
+0xC773 0x30DB # KATAKANA LETTER HO
+0xC774 0x30DC # KATAKANA LETTER BO
+0xC775 0x30DD # KATAKANA LETTER PO
+0xC776 0x30DE # KATAKANA LETTER MA
+0xC777 0x30DF # KATAKANA LETTER MI
+0xC778 0x30E0 # KATAKANA LETTER MU
+0xC779 0x30E1 # KATAKANA LETTER ME
+0xC77A 0x30E2 # KATAKANA LETTER MO
+0xC77B 0x30E3 # KATAKANA LETTER SMALL YA
+0xC77C 0x30E4 # KATAKANA LETTER YA
+0xC77D 0x30E5 # KATAKANA LETTER SMALL YU
+0xC77E 0x30E6 # KATAKANA LETTER YU
+0xC7A1 0x30E7 # KATAKANA LETTER SMALL YO
+0xC7A2 0x30E8 # KATAKANA LETTER YO
+0xC7A3 0x30E9 # KATAKANA LETTER RA
+0xC7A4 0x30EA # KATAKANA LETTER RI
+0xC7A5 0x30EB # KATAKANA LETTER RU
+0xC7A6 0x30EC # KATAKANA LETTER RE
+0xC7A7 0x30ED # KATAKANA LETTER RO
+0xC7A8 0x30EE # KATAKANA LETTER SMALL WA
+0xC7A9 0x30EF # KATAKANA LETTER WA
+0xC7AA 0x30F0 # KATAKANA LETTER WI
+0xC7AB 0x30F1 # KATAKANA LETTER WE
+0xC7AC 0x30F2 # KATAKANA LETTER WO
+0xC7AD 0x30F3 # KATAKANA LETTER N
+0xC7AE 0x30F4 # KATAKANA LETTER VU
+0xC7AF 0x30F5 # KATAKANA LETTER SMALL KA
+0xC7B0 0x30F6 # KATAKANA LETTER SMALL KE
+0xC7B1 0x0414 # CYRILLIC CAPITAL LETTER DE
+0xC7B2 0x0415 # CYRILLIC CAPITAL LETTER IE
+0xC7B3 0x0401 # CYRILLIC CAPITAL LETTER IO
+0xC7B4 0x0416 # CYRILLIC CAPITAL LETTER ZHE
+0xC7B5 0x0417 # CYRILLIC CAPITAL LETTER ZE
+0xC7B6 0x0418 # CYRILLIC CAPITAL LETTER I
+0xC7B7 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
+0xC7B8 0x041A # CYRILLIC CAPITAL LETTER KA
+0xC7B9 0x041B # CYRILLIC CAPITAL LETTER EL
+0xC7BA 0x041C # CYRILLIC CAPITAL LETTER EM
+0xC7BB 0x0423 # CYRILLIC CAPITAL LETTER U
+0xC7BC 0x0424 # CYRILLIC CAPITAL LETTER EF
+0xC7BD 0x0425 # CYRILLIC CAPITAL LETTER HA
+0xC7BE 0x0426 # CYRILLIC CAPITAL LETTER TSE
+0xC7BF 0x0427 # CYRILLIC CAPITAL LETTER CHE
+0xC7C0 0x0428 # CYRILLIC CAPITAL LETTER SHA
+0xC7C1 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
+0xC7C2 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
+0xC7C3 0x042B # CYRILLIC CAPITAL LETTER YERU
+0xC7C4 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
+0xC7C5 0x042D # CYRILLIC CAPITAL LETTER E
+0xC7C6 0x042E # CYRILLIC CAPITAL LETTER YU
+0xC7C7 0x042F # CYRILLIC CAPITAL LETTER YA
+0xC7C8 0x0430 # CYRILLIC SMALL LETTER A
+0xC7C9 0x0431 # CYRILLIC SMALL LETTER BE
+0xC7CA 0x0432 # CYRILLIC SMALL LETTER VE
+0xC7CB 0x0433 # CYRILLIC SMALL LETTER GHE
+0xC7CC 0x0434 # CYRILLIC SMALL LETTER DE
+0xC7CD 0x0435 # CYRILLIC SMALL LETTER IE
+0xC7CE 0x0451 # CYRILLIC SMALL LETTER IO
+0xC7CF 0x0436 # CYRILLIC SMALL LETTER ZHE
+0xC7D0 0x0437 # CYRILLIC SMALL LETTER ZE
+0xC7D1 0x0438 # CYRILLIC SMALL LETTER I
+0xC7D2 0x0439 # CYRILLIC SMALL LETTER SHORT I
+0xC7D3 0x043A # CYRILLIC SMALL LETTER KA
+0xC7D4 0x043B # CYRILLIC SMALL LETTER EL
+0xC7D5 0x043C # CYRILLIC SMALL LETTER EM
+0xC7D6 0x043D # CYRILLIC SMALL LETTER EN
+0xC7D7 0x043E # CYRILLIC SMALL LETTER O
+0xC7D8 0x043F # CYRILLIC SMALL LETTER PE
+0xC7D9 0x0440 # CYRILLIC SMALL LETTER ER
+0xC7DA 0x0441 # CYRILLIC SMALL LETTER ES
+0xC7DB 0x0442 # CYRILLIC SMALL LETTER TE
+0xC7DC 0x0443 # CYRILLIC SMALL LETTER U
+0xC7DD 0x0444 # CYRILLIC SMALL LETTER EF
+0xC7DE 0x0445 # CYRILLIC SMALL LETTER HA
+0xC7DF 0x0446 # CYRILLIC SMALL LETTER TSE
+0xC7E0 0x0447 # CYRILLIC SMALL LETTER CHE
+0xC7E1 0x0448 # CYRILLIC SMALL LETTER SHA
+0xC7E2 0x0449 # CYRILLIC SMALL LETTER SHCHA
+0xC7E3 0x044A # CYRILLIC SMALL LETTER HARD SIGN
+0xC7E4 0x044B # CYRILLIC SMALL LETTER YERU
+0xC7E5 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
+0xC7E6 0x044D # CYRILLIC SMALL LETTER E
+0xC7E7 0x044E # CYRILLIC SMALL LETTER YU
+0xC7E8 0x044F # CYRILLIC SMALL LETTER YA
+0xC7E9 0x2460 # CIRCLED DIGIT ONE
+0xC7EA 0x2461 # CIRCLED DIGIT TWO
+0xC7EB 0x2462 # CIRCLED DIGIT THREE
+0xC7EC 0x2463 # CIRCLED DIGIT FOUR
+0xC7ED 0x2464 # CIRCLED DIGIT FIVE
+0xC7EE 0x2465 # CIRCLED DIGIT SIX
+0xC7EF 0x2466 # CIRCLED DIGIT SEVEN
+0xC7F0 0x2467 # CIRCLED DIGIT EIGHT
+0xC7F1 0x2468 # CIRCLED DIGIT NINE
+0xC7F2 0x2469 # CIRCLED NUMBER TEN
+0xC7F3 0x2474 # PARENTHESIZED DIGIT ONE
+0xC7F4 0x2475 # PARENTHESIZED DIGIT TWO
+0xC7F5 0x2476 # PARENTHESIZED DIGIT THREE
+0xC7F6 0x2477 # PARENTHESIZED DIGIT FOUR
+0xC7F7 0x2478 # PARENTHESIZED DIGIT FIVE
+0xC7F8 0x2479 # PARENTHESIZED DIGIT SIX
+0xC7F9 0x247A # PARENTHESIZED DIGIT SEVEN
+0xC7FA 0x247B # PARENTHESIZED DIGIT EIGHT
+0xC7FB 0x247C # PARENTHESIZED DIGIT NINE
+0xC7FC 0x247D # PARENTHESIZED NUMBER TEN
+0xC940 0x4E42 # <CJK>
+0xC941 0x4E5C # <CJK>
+0xC942 0x51F5 # <CJK>
+0xC943 0x531A # <CJK>
+0xC944 0x5382 # <CJK>
+0xC945 0x4E07 # <CJK>
+0xC946 0x4E0C # <CJK>
+0xC947 0x4E47 # <CJK>
+0xC948 0x4E8D # <CJK>
+0xC949 0x56D7 # <CJK>
+0xC94A 0xFA0C # CJK COMPATIBILITY IDEOGRAPH-FA0C
+0xC94B 0x5C6E # <CJK>
+0xC94C 0x5F73 # <CJK>
+0xC94D 0x4E0F # <CJK>
+0xC94E 0x5187 # <CJK>
+0xC94F 0x4E0E # <CJK>
+0xC950 0x4E2E # <CJK>
+0xC951 0x4E93 # <CJK>
+0xC952 0x4EC2 # <CJK>
+0xC953 0x4EC9 # <CJK>
+0xC954 0x4EC8 # <CJK>
+0xC955 0x5198 # <CJK>
+0xC956 0x52FC # <CJK>
+0xC957 0x536C # <CJK>
+0xC958 0x53B9 # <CJK>
+0xC959 0x5720 # <CJK>
+0xC95A 0x5903 # <CJK>
+0xC95B 0x592C # <CJK>
+0xC95C 0x5C10 # <CJK>
+0xC95D 0x5DFF # <CJK>
+0xC95E 0x65E1 # <CJK>
+0xC95F 0x6BB3 # <CJK>
+0xC960 0x6BCC # <CJK>
+0xC961 0x6C14 # <CJK>
+0xC962 0x723F # <CJK>
+0xC963 0x4E31 # <CJK>
+0xC964 0x4E3C # <CJK>
+0xC965 0x4EE8 # <CJK>
+0xC966 0x4EDC # <CJK>
+0xC967 0x4EE9 # <CJK>
+0xC968 0x4EE1 # <CJK>
+0xC969 0x4EDD # <CJK>
+0xC96A 0x4EDA # <CJK>
+0xC96B 0x520C # <CJK>
+0xC96C 0x531C # <CJK>
+0xC96D 0x534C # <CJK>
+0xC96E 0x5722 # <CJK>
+0xC96F 0x5723 # <CJK>
+0xC970 0x5917 # <CJK>
+0xC971 0x592F # <CJK>
+0xC972 0x5B81 # <CJK>
+0xC973 0x5B84 # <CJK>
+0xC974 0x5C12 # <CJK>
+0xC975 0x5C3B # <CJK>
+0xC976 0x5C74 # <CJK>
+0xC977 0x5C73 # <CJK>
+0xC978 0x5E04 # <CJK>
+0xC979 0x5E80 # <CJK>
+0xC97A 0x5E82 # <CJK>
+0xC97B 0x5FC9 # <CJK>
+0xC97C 0x6209 # <CJK>
+0xC97D 0x6250 # <CJK>
+0xC97E 0x6C15 # <CJK>
+0xC9A1 0x6C36 # <CJK>
+0xC9A2 0x6C43 # <CJK>
+0xC9A3 0x6C3F # <CJK>
+0xC9A4 0x6C3B # <CJK>
+0xC9A5 0x72AE # <CJK>
+0xC9A6 0x72B0 # <CJK>
+0xC9A7 0x738A # <CJK>
+0xC9A8 0x79B8 # <CJK>
+0xC9A9 0x808A # <CJK>
+0xC9AA 0x961E # <CJK>
+0xC9AB 0x4F0E # <CJK>
+0xC9AC 0x4F18 # <CJK>
+0xC9AD 0x4F2C # <CJK>
+0xC9AE 0x4EF5 # <CJK>
+0xC9AF 0x4F14 # <CJK>
+0xC9B0 0x4EF1 # <CJK>
+0xC9B1 0x4F00 # <CJK>
+0xC9B2 0x4EF7 # <CJK>
+0xC9B3 0x4F08 # <CJK>
+0xC9B4 0x4F1D # <CJK>
+0xC9B5 0x4F02 # <CJK>
+0xC9B6 0x4F05 # <CJK>
+0xC9B7 0x4F22 # <CJK>
+0xC9B8 0x4F13 # <CJK>
+0xC9B9 0x4F04 # <CJK>
+0xC9BA 0x4EF4 # <CJK>
+0xC9BB 0x4F12 # <CJK>
+0xC9BC 0x51B1 # <CJK>
+0xC9BD 0x5213 # <CJK>
+0xC9BE 0x5209 # <CJK>
+0xC9BF 0x5210 # <CJK>
+0xC9C0 0x52A6 # <CJK>
+0xC9C1 0x5322 # <CJK>
+0xC9C2 0x531F # <CJK>
+0xC9C3 0x534D # <CJK>
+0xC9C4 0x538A # <CJK>
+0xC9C5 0x5407 # <CJK>
+0xC9C6 0x56E1 # <CJK>
+0xC9C7 0x56DF # <CJK>
+0xC9C8 0x572E # <CJK>
+0xC9C9 0x572A # <CJK>
+0xC9CA 0x5734 # <CJK>
+0xC9CB 0x593C # <CJK>
+0xC9CC 0x5980 # <CJK>
+0xC9CD 0x597C # <CJK>
+0xC9CE 0x5985 # <CJK>
+0xC9CF 0x597B # <CJK>
+0xC9D0 0x597E # <CJK>
+0xC9D1 0x5977 # <CJK>
+0xC9D2 0x597F # <CJK>
+0xC9D3 0x5B56 # <CJK>
+0xC9D4 0x5C15 # <CJK>
+0xC9D5 0x5C25 # <CJK>
+0xC9D6 0x5C7C # <CJK>
+0xC9D7 0x5C7A # <CJK>
+0xC9D8 0x5C7B # <CJK>
+0xC9D9 0x5C7E # <CJK>
+0xC9DA 0x5DDF # <CJK>
+0xC9DB 0x5E75 # <CJK>
+0xC9DC 0x5E84 # <CJK>
+0xC9DD 0x5F02 # <CJK>
+0xC9DE 0x5F1A # <CJK>
+0xC9DF 0x5F74 # <CJK>
+0xC9E0 0x5FD5 # <CJK>
+0xC9E1 0x5FD4 # <CJK>
+0xC9E2 0x5FCF # <CJK>
+0xC9E3 0x625C # <CJK>
+0xC9E4 0x625E # <CJK>
+0xC9E5 0x6264 # <CJK>
+0xC9E6 0x6261 # <CJK>
+0xC9E7 0x6266 # <CJK>
+0xC9E8 0x6262 # <CJK>
+0xC9E9 0x6259 # <CJK>
+0xC9EA 0x6260 # <CJK>
+0xC9EB 0x625A # <CJK>
+0xC9EC 0x6265 # <CJK>
+0xC9ED 0x65EF # <CJK>
+0xC9EE 0x65EE # <CJK>
+0xC9EF 0x673E # <CJK>
+0xC9F0 0x6739 # <CJK>
+0xC9F1 0x6738 # <CJK>
+0xC9F2 0x673B # <CJK>
+0xC9F3 0x673A # <CJK>
+0xC9F4 0x673F # <CJK>
+0xC9F5 0x673C # <CJK>
+0xC9F6 0x6733 # <CJK>
+0xC9F7 0x6C18 # <CJK>
+0xC9F8 0x6C46 # <CJK>
+0xC9F9 0x6C52 # <CJK>
+0xC9FA 0x6C5C # <CJK>
+0xC9FB 0x6C4F # <CJK>
+0xC9FC 0x6C4A # <CJK>
+0xC9FD 0x6C54 # <CJK>
+0xC9FE 0x6C4B # <CJK>
+0xCA40 0x6C4C # <CJK>
+0xCA41 0x7071 # <CJK>
+0xCA42 0x725E # <CJK>
+0xCA43 0x72B4 # <CJK>
+0xCA44 0x72B5 # <CJK>
+0xCA45 0x738E # <CJK>
+0xCA46 0x752A # <CJK>
+0xCA47 0x767F # <CJK>
+0xCA48 0x7A75 # <CJK>
+0xCA49 0x7F51 # <CJK>
+0xCA4A 0x8278 # <CJK>
+0xCA4B 0x827C # <CJK>
+0xCA4C 0x8280 # <CJK>
+0xCA4D 0x827D # <CJK>
+0xCA4E 0x827F # <CJK>
+0xCA4F 0x864D # <CJK>
+0xCA50 0x897E # <CJK>
+0xCA51 0x9099 # <CJK>
+0xCA52 0x9097 # <CJK>
+0xCA53 0x9098 # <CJK>
+0xCA54 0x909B # <CJK>
+0xCA55 0x9094 # <CJK>
+0xCA56 0x9622 # <CJK>
+0xCA57 0x9624 # <CJK>
+0xCA58 0x9620 # <CJK>
+0xCA59 0x9623 # <CJK>
+0xCA5A 0x4F56 # <CJK>
+0xCA5B 0x4F3B # <CJK>
+0xCA5C 0x4F62 # <CJK>
+0xCA5D 0x4F49 # <CJK>
+0xCA5E 0x4F53 # <CJK>
+0xCA5F 0x4F64 # <CJK>
+0xCA60 0x4F3E # <CJK>
+0xCA61 0x4F67 # <CJK>
+0xCA62 0x4F52 # <CJK>
+0xCA63 0x4F5F # <CJK>
+0xCA64 0x4F41 # <CJK>
+0xCA65 0x4F58 # <CJK>
+0xCA66 0x4F2D # <CJK>
+0xCA67 0x4F33 # <CJK>
+0xCA68 0x4F3F # <CJK>
+0xCA69 0x4F61 # <CJK>
+0xCA6A 0x518F # <CJK>
+0xCA6B 0x51B9 # <CJK>
+0xCA6C 0x521C # <CJK>
+0xCA6D 0x521E # <CJK>
+0xCA6E 0x5221 # <CJK>
+0xCA6F 0x52AD # <CJK>
+0xCA70 0x52AE # <CJK>
+0xCA71 0x5309 # <CJK>
+0xCA72 0x5363 # <CJK>
+0xCA73 0x5372 # <CJK>
+0xCA74 0x538E # <CJK>
+0xCA75 0x538F # <CJK>
+0xCA76 0x5430 # <CJK>
+0xCA77 0x5437 # <CJK>
+0xCA78 0x542A # <CJK>
+0xCA79 0x5454 # <CJK>
+0xCA7A 0x5445 # <CJK>
+0xCA7B 0x5419 # <CJK>
+0xCA7C 0x541C # <CJK>
+0xCA7D 0x5425 # <CJK>
+0xCA7E 0x5418 # <CJK>
+0xCAA1 0x543D # <CJK>
+0xCAA2 0x544F # <CJK>
+0xCAA3 0x5441 # <CJK>
+0xCAA4 0x5428 # <CJK>
+0xCAA5 0x5424 # <CJK>
+0xCAA6 0x5447 # <CJK>
+0xCAA7 0x56EE # <CJK>
+0xCAA8 0x56E7 # <CJK>
+0xCAA9 0x56E5 # <CJK>
+0xCAAA 0x5741 # <CJK>
+0xCAAB 0x5745 # <CJK>
+0xCAAC 0x574C # <CJK>
+0xCAAD 0x5749 # <CJK>
+0xCAAE 0x574B # <CJK>
+0xCAAF 0x5752 # <CJK>
+0xCAB0 0x5906 # <CJK>
+0xCAB1 0x5940 # <CJK>
+0xCAB2 0x59A6 # <CJK>
+0xCAB3 0x5998 # <CJK>
+0xCAB4 0x59A0 # <CJK>
+0xCAB5 0x5997 # <CJK>
+0xCAB6 0x598E # <CJK>
+0xCAB7 0x59A2 # <CJK>
+0xCAB8 0x5990 # <CJK>
+0xCAB9 0x598F # <CJK>
+0xCABA 0x59A7 # <CJK>
+0xCABB 0x59A1 # <CJK>
+0xCABC 0x5B8E # <CJK>
+0xCABD 0x5B92 # <CJK>
+0xCABE 0x5C28 # <CJK>
+0xCABF 0x5C2A # <CJK>
+0xCAC0 0x5C8D # <CJK>
+0xCAC1 0x5C8F # <CJK>
+0xCAC2 0x5C88 # <CJK>
+0xCAC3 0x5C8B # <CJK>
+0xCAC4 0x5C89 # <CJK>
+0xCAC5 0x5C92 # <CJK>
+0xCAC6 0x5C8A # <CJK>
+0xCAC7 0x5C86 # <CJK>
+0xCAC8 0x5C93 # <CJK>
+0xCAC9 0x5C95 # <CJK>
+0xCACA 0x5DE0 # <CJK>
+0xCACB 0x5E0A # <CJK>
+0xCACC 0x5E0E # <CJK>
+0xCACD 0x5E8B # <CJK>
+0xCACE 0x5E89 # <CJK>
+0xCACF 0x5E8C # <CJK>
+0xCAD0 0x5E88 # <CJK>
+0xCAD1 0x5E8D # <CJK>
+0xCAD2 0x5F05 # <CJK>
+0xCAD3 0x5F1D # <CJK>
+0xCAD4 0x5F78 # <CJK>
+0xCAD5 0x5F76 # <CJK>
+0xCAD6 0x5FD2 # <CJK>
+0xCAD7 0x5FD1 # <CJK>
+0xCAD8 0x5FD0 # <CJK>
+0xCAD9 0x5FED # <CJK>
+0xCADA 0x5FE8 # <CJK>
+0xCADB 0x5FEE # <CJK>
+0xCADC 0x5FF3 # <CJK>
+0xCADD 0x5FE1 # <CJK>
+0xCADE 0x5FE4 # <CJK>
+0xCADF 0x5FE3 # <CJK>
+0xCAE0 0x5FFA # <CJK>
+0xCAE1 0x5FEF # <CJK>
+0xCAE2 0x5FF7 # <CJK>
+0xCAE3 0x5FFB # <CJK>
+0xCAE4 0x6000 # <CJK>
+0xCAE5 0x5FF4 # <CJK>
+0xCAE6 0x623A # <CJK>
+0xCAE7 0x6283 # <CJK>
+0xCAE8 0x628C # <CJK>
+0xCAE9 0x628E # <CJK>
+0xCAEA 0x628F # <CJK>
+0xCAEB 0x6294 # <CJK>
+0xCAEC 0x6287 # <CJK>
+0xCAED 0x6271 # <CJK>
+0xCAEE 0x627B # <CJK>
+0xCAEF 0x627A # <CJK>
+0xCAF0 0x6270 # <CJK>
+0xCAF1 0x6281 # <CJK>
+0xCAF2 0x6288 # <CJK>
+0xCAF3 0x6277 # <CJK>
+0xCAF4 0x627D # <CJK>
+0xCAF5 0x6272 # <CJK>
+0xCAF6 0x6274 # <CJK>
+0xCAF7 0x6537 # <CJK>
+0xCAF8 0x65F0 # <CJK>
+0xCAF9 0x65F4 # <CJK>
+0xCAFA 0x65F3 # <CJK>
+0xCAFB 0x65F2 # <CJK>
+0xCAFC 0x65F5 # <CJK>
+0xCAFD 0x6745 # <CJK>
+0xCAFE 0x6747 # <CJK>
+0xCB40 0x6759 # <CJK>
+0xCB41 0x6755 # <CJK>
+0xCB42 0x674C # <CJK>
+0xCB43 0x6748 # <CJK>
+0xCB44 0x675D # <CJK>
+0xCB45 0x674D # <CJK>
+0xCB46 0x675A # <CJK>
+0xCB47 0x674B # <CJK>
+0xCB48 0x6BD0 # <CJK>
+0xCB49 0x6C19 # <CJK>
+0xCB4A 0x6C1A # <CJK>
+0xCB4B 0x6C78 # <CJK>
+0xCB4C 0x6C67 # <CJK>
+0xCB4D 0x6C6B # <CJK>
+0xCB4E 0x6C84 # <CJK>
+0xCB4F 0x6C8B # <CJK>
+0xCB50 0x6C8F # <CJK>
+0xCB51 0x6C71 # <CJK>
+0xCB52 0x6C6F # <CJK>
+0xCB53 0x6C69 # <CJK>
+0xCB54 0x6C9A # <CJK>
+0xCB55 0x6C6D # <CJK>
+0xCB56 0x6C87 # <CJK>
+0xCB57 0x6C95 # <CJK>
+0xCB58 0x6C9C # <CJK>
+0xCB59 0x6C66 # <CJK>
+0xCB5A 0x6C73 # <CJK>
+0xCB5B 0x6C65 # <CJK>
+0xCB5C 0x6C7B # <CJK>
+0xCB5D 0x6C8E # <CJK>
+0xCB5E 0x7074 # <CJK>
+0xCB5F 0x707A # <CJK>
+0xCB60 0x7263 # <CJK>
+0xCB61 0x72BF # <CJK>
+0xCB62 0x72BD # <CJK>
+0xCB63 0x72C3 # <CJK>
+0xCB64 0x72C6 # <CJK>
+0xCB65 0x72C1 # <CJK>
+0xCB66 0x72BA # <CJK>
+0xCB67 0x72C5 # <CJK>
+0xCB68 0x7395 # <CJK>
+0xCB69 0x7397 # <CJK>
+0xCB6A 0x7393 # <CJK>
+0xCB6B 0x7394 # <CJK>
+0xCB6C 0x7392 # <CJK>
+0xCB6D 0x753A # <CJK>
+0xCB6E 0x7539 # <CJK>
+0xCB6F 0x7594 # <CJK>
+0xCB70 0x7595 # <CJK>
+0xCB71 0x7681 # <CJK>
+0xCB72 0x793D # <CJK>
+0xCB73 0x8034 # <CJK>
+0xCB74 0x8095 # <CJK>
+0xCB75 0x8099 # <CJK>
+0xCB76 0x8090 # <CJK>
+0xCB77 0x8092 # <CJK>
+0xCB78 0x809C # <CJK>
+0xCB79 0x8290 # <CJK>
+0xCB7A 0x828F # <CJK>
+0xCB7B 0x8285 # <CJK>
+0xCB7C 0x828E # <CJK>
+0xCB7D 0x8291 # <CJK>
+0xCB7E 0x8293 # <CJK>
+0xCBA1 0x828A # <CJK>
+0xCBA2 0x8283 # <CJK>
+0xCBA3 0x8284 # <CJK>
+0xCBA4 0x8C78 # <CJK>
+0xCBA5 0x8FC9 # <CJK>
+0xCBA6 0x8FBF # <CJK>
+0xCBA7 0x909F # <CJK>
+0xCBA8 0x90A1 # <CJK>
+0xCBA9 0x90A5 # <CJK>
+0xCBAA 0x909E # <CJK>
+0xCBAB 0x90A7 # <CJK>
+0xCBAC 0x90A0 # <CJK>
+0xCBAD 0x9630 # <CJK>
+0xCBAE 0x9628 # <CJK>
+0xCBAF 0x962F # <CJK>
+0xCBB0 0x962D # <CJK>
+0xCBB1 0x4E33 # <CJK>
+0xCBB2 0x4F98 # <CJK>
+0xCBB3 0x4F7C # <CJK>
+0xCBB4 0x4F85 # <CJK>
+0xCBB5 0x4F7D # <CJK>
+0xCBB6 0x4F80 # <CJK>
+0xCBB7 0x4F87 # <CJK>
+0xCBB8 0x4F76 # <CJK>
+0xCBB9 0x4F74 # <CJK>
+0xCBBA 0x4F89 # <CJK>
+0xCBBB 0x4F84 # <CJK>
+0xCBBC 0x4F77 # <CJK>
+0xCBBD 0x4F4C # <CJK>
+0xCBBE 0x4F97 # <CJK>
+0xCBBF 0x4F6A # <CJK>
+0xCBC0 0x4F9A # <CJK>
+0xCBC1 0x4F79 # <CJK>
+0xCBC2 0x4F81 # <CJK>
+0xCBC3 0x4F78 # <CJK>
+0xCBC4 0x4F90 # <CJK>
+0xCBC5 0x4F9C # <CJK>
+0xCBC6 0x4F94 # <CJK>
+0xCBC7 0x4F9E # <CJK>
+0xCBC8 0x4F92 # <CJK>
+0xCBC9 0x4F82 # <CJK>
+0xCBCA 0x4F95 # <CJK>
+0xCBCB 0x4F6B # <CJK>
+0xCBCC 0x4F6E # <CJK>
+0xCBCD 0x519E # <CJK>
+0xCBCE 0x51BC # <CJK>
+0xCBCF 0x51BE # <CJK>
+0xCBD0 0x5235 # <CJK>
+0xCBD1 0x5232 # <CJK>
+0xCBD2 0x5233 # <CJK>
+0xCBD3 0x5246 # <CJK>
+0xCBD4 0x5231 # <CJK>
+0xCBD5 0x52BC # <CJK>
+0xCBD6 0x530A # <CJK>
+0xCBD7 0x530B # <CJK>
+0xCBD8 0x533C # <CJK>
+0xCBD9 0x5392 # <CJK>
+0xCBDA 0x5394 # <CJK>
+0xCBDB 0x5487 # <CJK>
+0xCBDC 0x547F # <CJK>
+0xCBDD 0x5481 # <CJK>
+0xCBDE 0x5491 # <CJK>
+0xCBDF 0x5482 # <CJK>
+0xCBE0 0x5488 # <CJK>
+0xCBE1 0x546B # <CJK>
+0xCBE2 0x547A # <CJK>
+0xCBE3 0x547E # <CJK>
+0xCBE4 0x5465 # <CJK>
+0xCBE5 0x546C # <CJK>
+0xCBE6 0x5474 # <CJK>
+0xCBE7 0x5466 # <CJK>
+0xCBE8 0x548D # <CJK>
+0xCBE9 0x546F # <CJK>
+0xCBEA 0x5461 # <CJK>
+0xCBEB 0x5460 # <CJK>
+0xCBEC 0x5498 # <CJK>
+0xCBED 0x5463 # <CJK>
+0xCBEE 0x5467 # <CJK>
+0xCBEF 0x5464 # <CJK>
+0xCBF0 0x56F7 # <CJK>
+0xCBF1 0x56F9 # <CJK>
+0xCBF2 0x576F # <CJK>
+0xCBF3 0x5772 # <CJK>
+0xCBF4 0x576D # <CJK>
+0xCBF5 0x576B # <CJK>
+0xCBF6 0x5771 # <CJK>
+0xCBF7 0x5770 # <CJK>
+0xCBF8 0x5776 # <CJK>
+0xCBF9 0x5780 # <CJK>
+0xCBFA 0x5775 # <CJK>
+0xCBFB 0x577B # <CJK>
+0xCBFC 0x5773 # <CJK>
+0xCBFD 0x5774 # <CJK>
+0xCBFE 0x5762 # <CJK>
+0xCC40 0x5768 # <CJK>
+0xCC41 0x577D # <CJK>
+0xCC42 0x590C # <CJK>
+0xCC43 0x5945 # <CJK>
+0xCC44 0x59B5 # <CJK>
+0xCC45 0x59BA # <CJK>
+0xCC46 0x59CF # <CJK>
+0xCC47 0x59CE # <CJK>
+0xCC48 0x59B2 # <CJK>
+0xCC49 0x59CC # <CJK>
+0xCC4A 0x59C1 # <CJK>
+0xCC4B 0x59B6 # <CJK>
+0xCC4C 0x59BC # <CJK>
+0xCC4D 0x59C3 # <CJK>
+0xCC4E 0x59D6 # <CJK>
+0xCC4F 0x59B1 # <CJK>
+0xCC50 0x59BD # <CJK>
+0xCC51 0x59C0 # <CJK>
+0xCC52 0x59C8 # <CJK>
+0xCC53 0x59B4 # <CJK>
+0xCC54 0x59C7 # <CJK>
+0xCC55 0x5B62 # <CJK>
+0xCC56 0x5B65 # <CJK>
+0xCC57 0x5B93 # <CJK>
+0xCC58 0x5B95 # <CJK>
+0xCC59 0x5C44 # <CJK>
+0xCC5A 0x5C47 # <CJK>
+0xCC5B 0x5CAE # <CJK>
+0xCC5C 0x5CA4 # <CJK>
+0xCC5D 0x5CA0 # <CJK>
+0xCC5E 0x5CB5 # <CJK>
+0xCC5F 0x5CAF # <CJK>
+0xCC60 0x5CA8 # <CJK>
+0xCC61 0x5CAC # <CJK>
+0xCC62 0x5C9F # <CJK>
+0xCC63 0x5CA3 # <CJK>
+0xCC64 0x5CAD # <CJK>
+0xCC65 0x5CA2 # <CJK>
+0xCC66 0x5CAA # <CJK>
+0xCC67 0x5CA7 # <CJK>
+0xCC68 0x5C9D # <CJK>
+0xCC69 0x5CA5 # <CJK>
+0xCC6A 0x5CB6 # <CJK>
+0xCC6B 0x5CB0 # <CJK>
+0xCC6C 0x5CA6 # <CJK>
+0xCC6D 0x5E17 # <CJK>
+0xCC6E 0x5E14 # <CJK>
+0xCC6F 0x5E19 # <CJK>
+0xCC70 0x5F28 # <CJK>
+0xCC71 0x5F22 # <CJK>
+0xCC72 0x5F23 # <CJK>
+0xCC73 0x5F24 # <CJK>
+0xCC74 0x5F54 # <CJK>
+0xCC75 0x5F82 # <CJK>
+0xCC76 0x5F7E # <CJK>
+0xCC77 0x5F7D # <CJK>
+0xCC78 0x5FDE # <CJK>
+0xCC79 0x5FE5 # <CJK>
+0xCC7A 0x602D # <CJK>
+0xCC7B 0x6026 # <CJK>
+0xCC7C 0x6019 # <CJK>
+0xCC7D 0x6032 # <CJK>
+0xCC7E 0x600B # <CJK>
+0xCCA1 0x6034 # <CJK>
+0xCCA2 0x600A # <CJK>
+0xCCA3 0x6017 # <CJK>
+0xCCA4 0x6033 # <CJK>
+0xCCA5 0x601A # <CJK>
+0xCCA6 0x601E # <CJK>
+0xCCA7 0x602C # <CJK>
+0xCCA8 0x6022 # <CJK>
+0xCCA9 0x600D # <CJK>
+0xCCAA 0x6010 # <CJK>
+0xCCAB 0x602E # <CJK>
+0xCCAC 0x6013 # <CJK>
+0xCCAD 0x6011 # <CJK>
+0xCCAE 0x600C # <CJK>
+0xCCAF 0x6009 # <CJK>
+0xCCB0 0x601C # <CJK>
+0xCCB1 0x6214 # <CJK>
+0xCCB2 0x623D # <CJK>
+0xCCB3 0x62AD # <CJK>
+0xCCB4 0x62B4 # <CJK>
+0xCCB5 0x62D1 # <CJK>
+0xCCB6 0x62BE # <CJK>
+0xCCB7 0x62AA # <CJK>
+0xCCB8 0x62B6 # <CJK>
+0xCCB9 0x62CA # <CJK>
+0xCCBA 0x62AE # <CJK>
+0xCCBB 0x62B3 # <CJK>
+0xCCBC 0x62AF # <CJK>
+0xCCBD 0x62BB # <CJK>
+0xCCBE 0x62A9 # <CJK>
+0xCCBF 0x62B0 # <CJK>
+0xCCC0 0x62B8 # <CJK>
+0xCCC1 0x653D # <CJK>
+0xCCC2 0x65A8 # <CJK>
+0xCCC3 0x65BB # <CJK>
+0xCCC4 0x6609 # <CJK>
+0xCCC5 0x65FC # <CJK>
+0xCCC6 0x6604 # <CJK>
+0xCCC7 0x6612 # <CJK>
+0xCCC8 0x6608 # <CJK>
+0xCCC9 0x65FB # <CJK>
+0xCCCA 0x6603 # <CJK>
+0xCCCB 0x660B # <CJK>
+0xCCCC 0x660D # <CJK>
+0xCCCD 0x6605 # <CJK>
+0xCCCE 0x65FD # <CJK>
+0xCCCF 0x6611 # <CJK>
+0xCCD0 0x6610 # <CJK>
+0xCCD1 0x66F6 # <CJK>
+0xCCD2 0x670A # <CJK>
+0xCCD3 0x6785 # <CJK>
+0xCCD4 0x676C # <CJK>
+0xCCD5 0x678E # <CJK>
+0xCCD6 0x6792 # <CJK>
+0xCCD7 0x6776 # <CJK>
+0xCCD8 0x677B # <CJK>
+0xCCD9 0x6798 # <CJK>
+0xCCDA 0x6786 # <CJK>
+0xCCDB 0x6784 # <CJK>
+0xCCDC 0x6774 # <CJK>
+0xCCDD 0x678D # <CJK>
+0xCCDE 0x678C # <CJK>
+0xCCDF 0x677A # <CJK>
+0xCCE0 0x679F # <CJK>
+0xCCE1 0x6791 # <CJK>
+0xCCE2 0x6799 # <CJK>
+0xCCE3 0x6783 # <CJK>
+0xCCE4 0x677D # <CJK>
+0xCCE5 0x6781 # <CJK>
+0xCCE6 0x6778 # <CJK>
+0xCCE7 0x6779 # <CJK>
+0xCCE8 0x6794 # <CJK>
+0xCCE9 0x6B25 # <CJK>
+0xCCEA 0x6B80 # <CJK>
+0xCCEB 0x6B7E # <CJK>
+0xCCEC 0x6BDE # <CJK>
+0xCCED 0x6C1D # <CJK>
+0xCCEE 0x6C93 # <CJK>
+0xCCEF 0x6CEC # <CJK>
+0xCCF0 0x6CEB # <CJK>
+0xCCF1 0x6CEE # <CJK>
+0xCCF2 0x6CD9 # <CJK>
+0xCCF3 0x6CB6 # <CJK>
+0xCCF4 0x6CD4 # <CJK>
+0xCCF5 0x6CAD # <CJK>
+0xCCF6 0x6CE7 # <CJK>
+0xCCF7 0x6CB7 # <CJK>
+0xCCF8 0x6CD0 # <CJK>
+0xCCF9 0x6CC2 # <CJK>
+0xCCFA 0x6CBA # <CJK>
+0xCCFB 0x6CC3 # <CJK>
+0xCCFC 0x6CC6 # <CJK>
+0xCCFD 0x6CED # <CJK>
+0xCCFE 0x6CF2 # <CJK>
+0xCD40 0x6CD2 # <CJK>
+0xCD41 0x6CDD # <CJK>
+0xCD42 0x6CB4 # <CJK>
+0xCD43 0x6C8A # <CJK>
+0xCD44 0x6C9D # <CJK>
+0xCD45 0x6C80 # <CJK>
+0xCD46 0x6CDE # <CJK>
+0xCD47 0x6CC0 # <CJK>
+0xCD48 0x6D30 # <CJK>
+0xCD49 0x6CCD # <CJK>
+0xCD4A 0x6CC7 # <CJK>
+0xCD4B 0x6CB0 # <CJK>
+0xCD4C 0x6CF9 # <CJK>
+0xCD4D 0x6CCF # <CJK>
+0xCD4E 0x6CE9 # <CJK>
+0xCD4F 0x6CD1 # <CJK>
+0xCD50 0x7094 # <CJK>
+0xCD51 0x7098 # <CJK>
+0xCD52 0x7085 # <CJK>
+0xCD53 0x7093 # <CJK>
+0xCD54 0x7086 # <CJK>
+0xCD55 0x7084 # <CJK>
+0xCD56 0x7091 # <CJK>
+0xCD57 0x7096 # <CJK>
+0xCD58 0x7082 # <CJK>
+0xCD59 0x709A # <CJK>
+0xCD5A 0x7083 # <CJK>
+0xCD5B 0x726A # <CJK>
+0xCD5C 0x72D6 # <CJK>
+0xCD5D 0x72CB # <CJK>
+0xCD5E 0x72D8 # <CJK>
+0xCD5F 0x72C9 # <CJK>
+0xCD60 0x72DC # <CJK>
+0xCD61 0x72D2 # <CJK>
+0xCD62 0x72D4 # <CJK>
+0xCD63 0x72DA # <CJK>
+0xCD64 0x72CC # <CJK>
+0xCD65 0x72D1 # <CJK>
+0xCD66 0x73A4 # <CJK>
+0xCD67 0x73A1 # <CJK>
+0xCD68 0x73AD # <CJK>
+0xCD69 0x73A6 # <CJK>
+0xCD6A 0x73A2 # <CJK>
+0xCD6B 0x73A0 # <CJK>
+0xCD6C 0x73AC # <CJK>
+0xCD6D 0x739D # <CJK>
+0xCD6E 0x74DD # <CJK>
+0xCD6F 0x74E8 # <CJK>
+0xCD70 0x753F # <CJK>
+0xCD71 0x7540 # <CJK>
+0xCD72 0x753E # <CJK>
+0xCD73 0x758C # <CJK>
+0xCD74 0x7598 # <CJK>
+0xCD75 0x76AF # <CJK>
+0xCD76 0x76F3 # <CJK>
+0xCD77 0x76F1 # <CJK>
+0xCD78 0x76F0 # <CJK>
+0xCD79 0x76F5 # <CJK>
+0xCD7A 0x77F8 # <CJK>
+0xCD7B 0x77FC # <CJK>
+0xCD7C 0x77F9 # <CJK>
+0xCD7D 0x77FB # <CJK>
+0xCD7E 0x77FA # <CJK>
+0xCDA1 0x77F7 # <CJK>
+0xCDA2 0x7942 # <CJK>
+0xCDA3 0x793F # <CJK>
+0xCDA4 0x79C5 # <CJK>
+0xCDA5 0x7A78 # <CJK>
+0xCDA6 0x7A7B # <CJK>
+0xCDA7 0x7AFB # <CJK>
+0xCDA8 0x7C75 # <CJK>
+0xCDA9 0x7CFD # <CJK>
+0xCDAA 0x8035 # <CJK>
+0xCDAB 0x808F # <CJK>
+0xCDAC 0x80AE # <CJK>
+0xCDAD 0x80A3 # <CJK>
+0xCDAE 0x80B8 # <CJK>
+0xCDAF 0x80B5 # <CJK>
+0xCDB0 0x80AD # <CJK>
+0xCDB1 0x8220 # <CJK>
+0xCDB2 0x82A0 # <CJK>
+0xCDB3 0x82C0 # <CJK>
+0xCDB4 0x82AB # <CJK>
+0xCDB5 0x829A # <CJK>
+0xCDB6 0x8298 # <CJK>
+0xCDB7 0x829B # <CJK>
+0xCDB8 0x82B5 # <CJK>
+0xCDB9 0x82A7 # <CJK>
+0xCDBA 0x82AE # <CJK>
+0xCDBB 0x82BC # <CJK>
+0xCDBC 0x829E # <CJK>
+0xCDBD 0x82BA # <CJK>
+0xCDBE 0x82B4 # <CJK>
+0xCDBF 0x82A8 # <CJK>
+0xCDC0 0x82A1 # <CJK>
+0xCDC1 0x82A9 # <CJK>
+0xCDC2 0x82C2 # <CJK>
+0xCDC3 0x82A4 # <CJK>
+0xCDC4 0x82C3 # <CJK>
+0xCDC5 0x82B6 # <CJK>
+0xCDC6 0x82A2 # <CJK>
+0xCDC7 0x8670 # <CJK>
+0xCDC8 0x866F # <CJK>
+0xCDC9 0x866D # <CJK>
+0xCDCA 0x866E # <CJK>
+0xCDCB 0x8C56 # <CJK>
+0xCDCC 0x8FD2 # <CJK>
+0xCDCD 0x8FCB # <CJK>
+0xCDCE 0x8FD3 # <CJK>
+0xCDCF 0x8FCD # <CJK>
+0xCDD0 0x8FD6 # <CJK>
+0xCDD1 0x8FD5 # <CJK>
+0xCDD2 0x8FD7 # <CJK>
+0xCDD3 0x90B2 # <CJK>
+0xCDD4 0x90B4 # <CJK>
+0xCDD5 0x90AF # <CJK>
+0xCDD6 0x90B3 # <CJK>
+0xCDD7 0x90B0 # <CJK>
+0xCDD8 0x9639 # <CJK>
+0xCDD9 0x963D # <CJK>
+0xCDDA 0x963C # <CJK>
+0xCDDB 0x963A # <CJK>
+0xCDDC 0x9643 # <CJK>
+0xCDDD 0x4FCD # <CJK>
+0xCDDE 0x4FC5 # <CJK>
+0xCDDF 0x4FD3 # <CJK>
+0xCDE0 0x4FB2 # <CJK>
+0xCDE1 0x4FC9 # <CJK>
+0xCDE2 0x4FCB # <CJK>
+0xCDE3 0x4FC1 # <CJK>
+0xCDE4 0x4FD4 # <CJK>
+0xCDE5 0x4FDC # <CJK>
+0xCDE6 0x4FD9 # <CJK>
+0xCDE7 0x4FBB # <CJK>
+0xCDE8 0x4FB3 # <CJK>
+0xCDE9 0x4FDB # <CJK>
+0xCDEA 0x4FC7 # <CJK>
+0xCDEB 0x4FD6 # <CJK>
+0xCDEC 0x4FBA # <CJK>
+0xCDED 0x4FC0 # <CJK>
+0xCDEE 0x4FB9 # <CJK>
+0xCDEF 0x4FEC # <CJK>
+0xCDF0 0x5244 # <CJK>
+0xCDF1 0x5249 # <CJK>
+0xCDF2 0x52C0 # <CJK>
+0xCDF3 0x52C2 # <CJK>
+0xCDF4 0x533D # <CJK>
+0xCDF5 0x537C # <CJK>
+0xCDF6 0x5397 # <CJK>
+0xCDF7 0x5396 # <CJK>
+0xCDF8 0x5399 # <CJK>
+0xCDF9 0x5398 # <CJK>
+0xCDFA 0x54BA # <CJK>
+0xCDFB 0x54A1 # <CJK>
+0xCDFC 0x54AD # <CJK>
+0xCDFD 0x54A5 # <CJK>
+0xCDFE 0x54CF # <CJK>
+0xCE40 0x54C3 # <CJK>
+0xCE41 0x830D # <CJK>
+0xCE42 0x54B7 # <CJK>
+0xCE43 0x54AE # <CJK>
+0xCE44 0x54D6 # <CJK>
+0xCE45 0x54B6 # <CJK>
+0xCE46 0x54C5 # <CJK>
+0xCE47 0x54C6 # <CJK>
+0xCE48 0x54A0 # <CJK>
+0xCE49 0x5470 # <CJK>
+0xCE4A 0x54BC # <CJK>
+0xCE4B 0x54A2 # <CJK>
+0xCE4C 0x54BE # <CJK>
+0xCE4D 0x5472 # <CJK>
+0xCE4E 0x54DE # <CJK>
+0xCE4F 0x54B0 # <CJK>
+0xCE50 0x57B5 # <CJK>
+0xCE51 0x579E # <CJK>
+0xCE52 0x579F # <CJK>
+0xCE53 0x57A4 # <CJK>
+0xCE54 0x578C # <CJK>
+0xCE55 0x5797 # <CJK>
+0xCE56 0x579D # <CJK>
+0xCE57 0x579B # <CJK>
+0xCE58 0x5794 # <CJK>
+0xCE59 0x5798 # <CJK>
+0xCE5A 0x578F # <CJK>
+0xCE5B 0x5799 # <CJK>
+0xCE5C 0x57A5 # <CJK>
+0xCE5D 0x579A # <CJK>
+0xCE5E 0x5795 # <CJK>
+0xCE5F 0x58F4 # <CJK>
+0xCE60 0x590D # <CJK>
+0xCE61 0x5953 # <CJK>
+0xCE62 0x59E1 # <CJK>
+0xCE63 0x59DE # <CJK>
+0xCE64 0x59EE # <CJK>
+0xCE65 0x5A00 # <CJK>
+0xCE66 0x59F1 # <CJK>
+0xCE67 0x59DD # <CJK>
+0xCE68 0x59FA # <CJK>
+0xCE69 0x59FD # <CJK>
+0xCE6A 0x59FC # <CJK>
+0xCE6B 0x59F6 # <CJK>
+0xCE6C 0x59E4 # <CJK>
+0xCE6D 0x59F2 # <CJK>
+0xCE6E 0x59F7 # <CJK>
+0xCE6F 0x59DB # <CJK>
+0xCE70 0x59E9 # <CJK>
+0xCE71 0x59F3 # <CJK>
+0xCE72 0x59F5 # <CJK>
+0xCE73 0x59E0 # <CJK>
+0xCE74 0x59FE # <CJK>
+0xCE75 0x59F4 # <CJK>
+0xCE76 0x59ED # <CJK>
+0xCE77 0x5BA8 # <CJK>
+0xCE78 0x5C4C # <CJK>
+0xCE79 0x5CD0 # <CJK>
+0xCE7A 0x5CD8 # <CJK>
+0xCE7B 0x5CCC # <CJK>
+0xCE7C 0x5CD7 # <CJK>
+0xCE7D 0x5CCB # <CJK>
+0xCE7E 0x5CDB # <CJK>
+0xCEA1 0x5CDE # <CJK>
+0xCEA2 0x5CDA # <CJK>
+0xCEA3 0x5CC9 # <CJK>
+0xCEA4 0x5CC7 # <CJK>
+0xCEA5 0x5CCA # <CJK>
+0xCEA6 0x5CD6 # <CJK>
+0xCEA7 0x5CD3 # <CJK>
+0xCEA8 0x5CD4 # <CJK>
+0xCEA9 0x5CCF # <CJK>
+0xCEAA 0x5CC8 # <CJK>
+0xCEAB 0x5CC6 # <CJK>
+0xCEAC 0x5CCE # <CJK>
+0xCEAD 0x5CDF # <CJK>
+0xCEAE 0x5CF8 # <CJK>
+0xCEAF 0x5DF9 # <CJK>
+0xCEB0 0x5E21 # <CJK>
+0xCEB1 0x5E22 # <CJK>
+0xCEB2 0x5E23 # <CJK>
+0xCEB3 0x5E20 # <CJK>
+0xCEB4 0x5E24 # <CJK>
+0xCEB5 0x5EB0 # <CJK>
+0xCEB6 0x5EA4 # <CJK>
+0xCEB7 0x5EA2 # <CJK>
+0xCEB8 0x5E9B # <CJK>
+0xCEB9 0x5EA3 # <CJK>
+0xCEBA 0x5EA5 # <CJK>
+0xCEBB 0x5F07 # <CJK>
+0xCEBC 0x5F2E # <CJK>
+0xCEBD 0x5F56 # <CJK>
+0xCEBE 0x5F86 # <CJK>
+0xCEBF 0x6037 # <CJK>
+0xCEC0 0x6039 # <CJK>
+0xCEC1 0x6054 # <CJK>
+0xCEC2 0x6072 # <CJK>
+0xCEC3 0x605E # <CJK>
+0xCEC4 0x6045 # <CJK>
+0xCEC5 0x6053 # <CJK>
+0xCEC6 0x6047 # <CJK>
+0xCEC7 0x6049 # <CJK>
+0xCEC8 0x605B # <CJK>
+0xCEC9 0x604C # <CJK>
+0xCECA 0x6040 # <CJK>
+0xCECB 0x6042 # <CJK>
+0xCECC 0x605F # <CJK>
+0xCECD 0x6024 # <CJK>
+0xCECE 0x6044 # <CJK>
+0xCECF 0x6058 # <CJK>
+0xCED0 0x6066 # <CJK>
+0xCED1 0x606E # <CJK>
+0xCED2 0x6242 # <CJK>
+0xCED3 0x6243 # <CJK>
+0xCED4 0x62CF # <CJK>
+0xCED5 0x630D # <CJK>
+0xCED6 0x630B # <CJK>
+0xCED7 0x62F5 # <CJK>
+0xCED8 0x630E # <CJK>
+0xCED9 0x6303 # <CJK>
+0xCEDA 0x62EB # <CJK>
+0xCEDB 0x62F9 # <CJK>
+0xCEDC 0x630F # <CJK>
+0xCEDD 0x630C # <CJK>
+0xCEDE 0x62F8 # <CJK>
+0xCEDF 0x62F6 # <CJK>
+0xCEE0 0x6300 # <CJK>
+0xCEE1 0x6313 # <CJK>
+0xCEE2 0x6314 # <CJK>
+0xCEE3 0x62FA # <CJK>
+0xCEE4 0x6315 # <CJK>
+0xCEE5 0x62FB # <CJK>
+0xCEE6 0x62F0 # <CJK>
+0xCEE7 0x6541 # <CJK>
+0xCEE8 0x6543 # <CJK>
+0xCEE9 0x65AA # <CJK>
+0xCEEA 0x65BF # <CJK>
+0xCEEB 0x6636 # <CJK>
+0xCEEC 0x6621 # <CJK>
+0xCEED 0x6632 # <CJK>
+0xCEEE 0x6635 # <CJK>
+0xCEEF 0x661C # <CJK>
+0xCEF0 0x6626 # <CJK>
+0xCEF1 0x6622 # <CJK>
+0xCEF2 0x6633 # <CJK>
+0xCEF3 0x662B # <CJK>
+0xCEF4 0x663A # <CJK>
+0xCEF5 0x661D # <CJK>
+0xCEF6 0x6634 # <CJK>
+0xCEF7 0x6639 # <CJK>
+0xCEF8 0x662E # <CJK>
+0xCEF9 0x670F # <CJK>
+0xCEFA 0x6710 # <CJK>
+0xCEFB 0x67C1 # <CJK>
+0xCEFC 0x67F2 # <CJK>
+0xCEFD 0x67C8 # <CJK>
+0xCEFE 0x67BA # <CJK>
+0xCF40 0x67DC # <CJK>
+0xCF41 0x67BB # <CJK>
+0xCF42 0x67F8 # <CJK>
+0xCF43 0x67D8 # <CJK>
+0xCF44 0x67C0 # <CJK>
+0xCF45 0x67B7 # <CJK>
+0xCF46 0x67C5 # <CJK>
+0xCF47 0x67EB # <CJK>
+0xCF48 0x67E4 # <CJK>
+0xCF49 0x67DF # <CJK>
+0xCF4A 0x67B5 # <CJK>
+0xCF4B 0x67CD # <CJK>
+0xCF4C 0x67B3 # <CJK>
+0xCF4D 0x67F7 # <CJK>
+0xCF4E 0x67F6 # <CJK>
+0xCF4F 0x67EE # <CJK>
+0xCF50 0x67E3 # <CJK>
+0xCF51 0x67C2 # <CJK>
+0xCF52 0x67B9 # <CJK>
+0xCF53 0x67CE # <CJK>
+0xCF54 0x67E7 # <CJK>
+0xCF55 0x67F0 # <CJK>
+0xCF56 0x67B2 # <CJK>
+0xCF57 0x67FC # <CJK>
+0xCF58 0x67C6 # <CJK>
+0xCF59 0x67ED # <CJK>
+0xCF5A 0x67CC # <CJK>
+0xCF5B 0x67AE # <CJK>
+0xCF5C 0x67E6 # <CJK>
+0xCF5D 0x67DB # <CJK>
+0xCF5E 0x67FA # <CJK>
+0xCF5F 0x67C9 # <CJK>
+0xCF60 0x67CA # <CJK>
+0xCF61 0x67C3 # <CJK>
+0xCF62 0x67EA # <CJK>
+0xCF63 0x67CB # <CJK>
+0xCF64 0x6B28 # <CJK>
+0xCF65 0x6B82 # <CJK>
+0xCF66 0x6B84 # <CJK>
+0xCF67 0x6BB6 # <CJK>
+0xCF68 0x6BD6 # <CJK>
+0xCF69 0x6BD8 # <CJK>
+0xCF6A 0x6BE0 # <CJK>
+0xCF6B 0x6C20 # <CJK>
+0xCF6C 0x6C21 # <CJK>
+0xCF6D 0x6D28 # <CJK>
+0xCF6E 0x6D34 # <CJK>
+0xCF6F 0x6D2D # <CJK>
+0xCF70 0x6D1F # <CJK>
+0xCF71 0x6D3C # <CJK>
+0xCF72 0x6D3F # <CJK>
+0xCF73 0x6D12 # <CJK>
+0xCF74 0x6D0A # <CJK>
+0xCF75 0x6CDA # <CJK>
+0xCF76 0x6D33 # <CJK>
+0xCF77 0x6D04 # <CJK>
+0xCF78 0x6D19 # <CJK>
+0xCF79 0x6D3A # <CJK>
+0xCF7A 0x6D1A # <CJK>
+0xCF7B 0x6D11 # <CJK>
+0xCF7C 0x6D00 # <CJK>
+0xCF7D 0x6D1D # <CJK>
+0xCF7E 0x6D42 # <CJK>
+0xCFA1 0x6D01 # <CJK>
+0xCFA2 0x6D18 # <CJK>
+0xCFA3 0x6D37 # <CJK>
+0xCFA4 0x6D03 # <CJK>
+0xCFA5 0x6D0F # <CJK>
+0xCFA6 0x6D40 # <CJK>
+0xCFA7 0x6D07 # <CJK>
+0xCFA8 0x6D20 # <CJK>
+0xCFA9 0x6D2C # <CJK>
+0xCFAA 0x6D08 # <CJK>
+0xCFAB 0x6D22 # <CJK>
+0xCFAC 0x6D09 # <CJK>
+0xCFAD 0x6D10 # <CJK>
+0xCFAE 0x70B7 # <CJK>
+0xCFAF 0x709F # <CJK>
+0xCFB0 0x70BE # <CJK>
+0xCFB1 0x70B1 # <CJK>
+0xCFB2 0x70B0 # <CJK>
+0xCFB3 0x70A1 # <CJK>
+0xCFB4 0x70B4 # <CJK>
+0xCFB5 0x70B5 # <CJK>
+0xCFB6 0x70A9 # <CJK>
+0xCFB7 0x7241 # <CJK>
+0xCFB8 0x7249 # <CJK>
+0xCFB9 0x724A # <CJK>
+0xCFBA 0x726C # <CJK>
+0xCFBB 0x7270 # <CJK>
+0xCFBC 0x7273 # <CJK>
+0xCFBD 0x726E # <CJK>
+0xCFBE 0x72CA # <CJK>
+0xCFBF 0x72E4 # <CJK>
+0xCFC0 0x72E8 # <CJK>
+0xCFC1 0x72EB # <CJK>
+0xCFC2 0x72DF # <CJK>
+0xCFC3 0x72EA # <CJK>
+0xCFC4 0x72E6 # <CJK>
+0xCFC5 0x72E3 # <CJK>
+0xCFC6 0x7385 # <CJK>
+0xCFC7 0x73CC # <CJK>
+0xCFC8 0x73C2 # <CJK>
+0xCFC9 0x73C8 # <CJK>
+0xCFCA 0x73C5 # <CJK>
+0xCFCB 0x73B9 # <CJK>
+0xCFCC 0x73B6 # <CJK>
+0xCFCD 0x73B5 # <CJK>
+0xCFCE 0x73B4 # <CJK>
+0xCFCF 0x73EB # <CJK>
+0xCFD0 0x73BF # <CJK>
+0xCFD1 0x73C7 # <CJK>
+0xCFD2 0x73BE # <CJK>
+0xCFD3 0x73C3 # <CJK>
+0xCFD4 0x73C6 # <CJK>
+0xCFD5 0x73B8 # <CJK>
+0xCFD6 0x73CB # <CJK>
+0xCFD7 0x74EC # <CJK>
+0xCFD8 0x74EE # <CJK>
+0xCFD9 0x752E # <CJK>
+0xCFDA 0x7547 # <CJK>
+0xCFDB 0x7548 # <CJK>
+0xCFDC 0x75A7 # <CJK>
+0xCFDD 0x75AA # <CJK>
+0xCFDE 0x7679 # <CJK>
+0xCFDF 0x76C4 # <CJK>
+0xCFE0 0x7708 # <CJK>
+0xCFE1 0x7703 # <CJK>
+0xCFE2 0x7704 # <CJK>
+0xCFE3 0x7705 # <CJK>
+0xCFE4 0x770A # <CJK>
+0xCFE5 0x76F7 # <CJK>
+0xCFE6 0x76FB # <CJK>
+0xCFE7 0x76FA # <CJK>
+0xCFE8 0x77E7 # <CJK>
+0xCFE9 0x77E8 # <CJK>
+0xCFEA 0x7806 # <CJK>
+0xCFEB 0x7811 # <CJK>
+0xCFEC 0x7812 # <CJK>
+0xCFED 0x7805 # <CJK>
+0xCFEE 0x7810 # <CJK>
+0xCFEF 0x780F # <CJK>
+0xCFF0 0x780E # <CJK>
+0xCFF1 0x7809 # <CJK>
+0xCFF2 0x7803 # <CJK>
+0xCFF3 0x7813 # <CJK>
+0xCFF4 0x794A # <CJK>
+0xCFF5 0x794C # <CJK>
+0xCFF6 0x794B # <CJK>
+0xCFF7 0x7945 # <CJK>
+0xCFF8 0x7944 # <CJK>
+0xCFF9 0x79D5 # <CJK>
+0xCFFA 0x79CD # <CJK>
+0xCFFB 0x79CF # <CJK>
+0xCFFC 0x79D6 # <CJK>
+0xCFFD 0x79CE # <CJK>
+0xCFFE 0x7A80 # <CJK>
+0xD040 0x7A7E # <CJK>
+0xD041 0x7AD1 # <CJK>
+0xD042 0x7B00 # <CJK>
+0xD043 0x7B01 # <CJK>
+0xD044 0x7C7A # <CJK>
+0xD045 0x7C78 # <CJK>
+0xD046 0x7C79 # <CJK>
+0xD047 0x7C7F # <CJK>
+0xD048 0x7C80 # <CJK>
+0xD049 0x7C81 # <CJK>
+0xD04A 0x7D03 # <CJK>
+0xD04B 0x7D08 # <CJK>
+0xD04C 0x7D01 # <CJK>
+0xD04D 0x7F58 # <CJK>
+0xD04E 0x7F91 # <CJK>
+0xD04F 0x7F8D # <CJK>
+0xD050 0x7FBE # <CJK>
+0xD051 0x8007 # <CJK>
+0xD052 0x800E # <CJK>
+0xD053 0x800F # <CJK>
+0xD054 0x8014 # <CJK>
+0xD055 0x8037 # <CJK>
+0xD056 0x80D8 # <CJK>
+0xD057 0x80C7 # <CJK>
+0xD058 0x80E0 # <CJK>
+0xD059 0x80D1 # <CJK>
+0xD05A 0x80C8 # <CJK>
+0xD05B 0x80C2 # <CJK>
+0xD05C 0x80D0 # <CJK>
+0xD05D 0x80C5 # <CJK>
+0xD05E 0x80E3 # <CJK>
+0xD05F 0x80D9 # <CJK>
+0xD060 0x80DC # <CJK>
+0xD061 0x80CA # <CJK>
+0xD062 0x80D5 # <CJK>
+0xD063 0x80C9 # <CJK>
+0xD064 0x80CF # <CJK>
+0xD065 0x80D7 # <CJK>
+0xD066 0x80E6 # <CJK>
+0xD067 0x80CD # <CJK>
+0xD068 0x81FF # <CJK>
+0xD069 0x8221 # <CJK>
+0xD06A 0x8294 # <CJK>
+0xD06B 0x82D9 # <CJK>
+0xD06C 0x82FE # <CJK>
+0xD06D 0x82F9 # <CJK>
+0xD06E 0x8307 # <CJK>
+0xD06F 0x82E8 # <CJK>
+0xD070 0x8300 # <CJK>
+0xD071 0x82D5 # <CJK>
+0xD072 0x833A # <CJK>
+0xD073 0x82EB # <CJK>
+0xD074 0x82D6 # <CJK>
+0xD075 0x82F4 # <CJK>
+0xD076 0x82EC # <CJK>
+0xD077 0x82E1 # <CJK>
+0xD078 0x82F2 # <CJK>
+0xD079 0x82F5 # <CJK>
+0xD07A 0x830C # <CJK>
+0xD07B 0x82FB # <CJK>
+0xD07C 0x82F6 # <CJK>
+0xD07D 0x82F0 # <CJK>
+0xD07E 0x82EA # <CJK>
+0xD0A1 0x82E4 # <CJK>
+0xD0A2 0x82E0 # <CJK>
+0xD0A3 0x82FA # <CJK>
+0xD0A4 0x82F3 # <CJK>
+0xD0A5 0x82ED # <CJK>
+0xD0A6 0x8677 # <CJK>
+0xD0A7 0x8674 # <CJK>
+0xD0A8 0x867C # <CJK>
+0xD0A9 0x8673 # <CJK>
+0xD0AA 0x8841 # <CJK>
+0xD0AB 0x884E # <CJK>
+0xD0AC 0x8867 # <CJK>
+0xD0AD 0x886A # <CJK>
+0xD0AE 0x8869 # <CJK>
+0xD0AF 0x89D3 # <CJK>
+0xD0B0 0x8A04 # <CJK>
+0xD0B1 0x8A07 # <CJK>
+0xD0B2 0x8D72 # <CJK>
+0xD0B3 0x8FE3 # <CJK>
+0xD0B4 0x8FE1 # <CJK>
+0xD0B5 0x8FEE # <CJK>
+0xD0B6 0x8FE0 # <CJK>
+0xD0B7 0x90F1 # <CJK>
+0xD0B8 0x90BD # <CJK>
+0xD0B9 0x90BF # <CJK>
+0xD0BA 0x90D5 # <CJK>
+0xD0BB 0x90C5 # <CJK>
+0xD0BC 0x90BE # <CJK>
+0xD0BD 0x90C7 # <CJK>
+0xD0BE 0x90CB # <CJK>
+0xD0BF 0x90C8 # <CJK>
+0xD0C0 0x91D4 # <CJK>
+0xD0C1 0x91D3 # <CJK>
+0xD0C2 0x9654 # <CJK>
+0xD0C3 0x964F # <CJK>
+0xD0C4 0x9651 # <CJK>
+0xD0C5 0x9653 # <CJK>
+0xD0C6 0x964A # <CJK>
+0xD0C7 0x964E # <CJK>
+0xD0C8 0x501E # <CJK>
+0xD0C9 0x5005 # <CJK>
+0xD0CA 0x5007 # <CJK>
+0xD0CB 0x5013 # <CJK>
+0xD0CC 0x5022 # <CJK>
+0xD0CD 0x5030 # <CJK>
+0xD0CE 0x501B # <CJK>
+0xD0CF 0x4FF5 # <CJK>
+0xD0D0 0x4FF4 # <CJK>
+0xD0D1 0x5033 # <CJK>
+0xD0D2 0x5037 # <CJK>
+0xD0D3 0x502C # <CJK>
+0xD0D4 0x4FF6 # <CJK>
+0xD0D5 0x4FF7 # <CJK>
+0xD0D6 0x5017 # <CJK>
+0xD0D7 0x501C # <CJK>
+0xD0D8 0x5020 # <CJK>
+0xD0D9 0x5027 # <CJK>
+0xD0DA 0x5035 # <CJK>
+0xD0DB 0x502F # <CJK>
+0xD0DC 0x5031 # <CJK>
+0xD0DD 0x500E # <CJK>
+0xD0DE 0x515A # <CJK>
+0xD0DF 0x5194 # <CJK>
+0xD0E0 0x5193 # <CJK>
+0xD0E1 0x51CA # <CJK>
+0xD0E2 0x51C4 # <CJK>
+0xD0E3 0x51C5 # <CJK>
+0xD0E4 0x51C8 # <CJK>
+0xD0E5 0x51CE # <CJK>
+0xD0E6 0x5261 # <CJK>
+0xD0E7 0x525A # <CJK>
+0xD0E8 0x5252 # <CJK>
+0xD0E9 0x525E # <CJK>
+0xD0EA 0x525F # <CJK>
+0xD0EB 0x5255 # <CJK>
+0xD0EC 0x5262 # <CJK>
+0xD0ED 0x52CD # <CJK>
+0xD0EE 0x530E # <CJK>
+0xD0EF 0x539E # <CJK>
+0xD0F0 0x5526 # <CJK>
+0xD0F1 0x54E2 # <CJK>
+0xD0F2 0x5517 # <CJK>
+0xD0F3 0x5512 # <CJK>
+0xD0F4 0x54E7 # <CJK>
+0xD0F5 0x54F3 # <CJK>
+0xD0F6 0x54E4 # <CJK>
+0xD0F7 0x551A # <CJK>
+0xD0F8 0x54FF # <CJK>
+0xD0F9 0x5504 # <CJK>
+0xD0FA 0x5508 # <CJK>
+0xD0FB 0x54EB # <CJK>
+0xD0FC 0x5511 # <CJK>
+0xD0FD 0x5505 # <CJK>
+0xD0FE 0x54F1 # <CJK>
+0xD140 0x550A # <CJK>
+0xD141 0x54FB # <CJK>
+0xD142 0x54F7 # <CJK>
+0xD143 0x54F8 # <CJK>
+0xD144 0x54E0 # <CJK>
+0xD145 0x550E # <CJK>
+0xD146 0x5503 # <CJK>
+0xD147 0x550B # <CJK>
+0xD148 0x5701 # <CJK>
+0xD149 0x5702 # <CJK>
+0xD14A 0x57CC # <CJK>
+0xD14B 0x5832 # <CJK>
+0xD14C 0x57D5 # <CJK>
+0xD14D 0x57D2 # <CJK>
+0xD14E 0x57BA # <CJK>
+0xD14F 0x57C6 # <CJK>
+0xD150 0x57BD # <CJK>
+0xD151 0x57BC # <CJK>
+0xD152 0x57B8 # <CJK>
+0xD153 0x57B6 # <CJK>
+0xD154 0x57BF # <CJK>
+0xD155 0x57C7 # <CJK>
+0xD156 0x57D0 # <CJK>
+0xD157 0x57B9 # <CJK>
+0xD158 0x57C1 # <CJK>
+0xD159 0x590E # <CJK>
+0xD15A 0x594A # <CJK>
+0xD15B 0x5A19 # <CJK>
+0xD15C 0x5A16 # <CJK>
+0xD15D 0x5A2D # <CJK>
+0xD15E 0x5A2E # <CJK>
+0xD15F 0x5A15 # <CJK>
+0xD160 0x5A0F # <CJK>
+0xD161 0x5A17 # <CJK>
+0xD162 0x5A0A # <CJK>
+0xD163 0x5A1E # <CJK>
+0xD164 0x5A33 # <CJK>
+0xD165 0x5B6C # <CJK>
+0xD166 0x5BA7 # <CJK>
+0xD167 0x5BAD # <CJK>
+0xD168 0x5BAC # <CJK>
+0xD169 0x5C03 # <CJK>
+0xD16A 0x5C56 # <CJK>
+0xD16B 0x5C54 # <CJK>
+0xD16C 0x5CEC # <CJK>
+0xD16D 0x5CFF # <CJK>
+0xD16E 0x5CEE # <CJK>
+0xD16F 0x5CF1 # <CJK>
+0xD170 0x5CF7 # <CJK>
+0xD171 0x5D00 # <CJK>
+0xD172 0x5CF9 # <CJK>
+0xD173 0x5E29 # <CJK>
+0xD174 0x5E28 # <CJK>
+0xD175 0x5EA8 # <CJK>
+0xD176 0x5EAE # <CJK>
+0xD177 0x5EAA # <CJK>
+0xD178 0x5EAC # <CJK>
+0xD179 0x5F33 # <CJK>
+0xD17A 0x5F30 # <CJK>
+0xD17B 0x5F67 # <CJK>
+0xD17C 0x605D # <CJK>
+0xD17D 0x605A # <CJK>
+0xD17E 0x6067 # <CJK>
+0xD1A1 0x6041 # <CJK>
+0xD1A2 0x60A2 # <CJK>
+0xD1A3 0x6088 # <CJK>
+0xD1A4 0x6080 # <CJK>
+0xD1A5 0x6092 # <CJK>
+0xD1A6 0x6081 # <CJK>
+0xD1A7 0x609D # <CJK>
+0xD1A8 0x6083 # <CJK>
+0xD1A9 0x6095 # <CJK>
+0xD1AA 0x609B # <CJK>
+0xD1AB 0x6097 # <CJK>
+0xD1AC 0x6087 # <CJK>
+0xD1AD 0x609C # <CJK>
+0xD1AE 0x608E # <CJK>
+0xD1AF 0x6219 # <CJK>
+0xD1B0 0x6246 # <CJK>
+0xD1B1 0x62F2 # <CJK>
+0xD1B2 0x6310 # <CJK>
+0xD1B3 0x6356 # <CJK>
+0xD1B4 0x632C # <CJK>
+0xD1B5 0x6344 # <CJK>
+0xD1B6 0x6345 # <CJK>
+0xD1B7 0x6336 # <CJK>
+0xD1B8 0x6343 # <CJK>
+0xD1B9 0x63E4 # <CJK>
+0xD1BA 0x6339 # <CJK>
+0xD1BB 0x634B # <CJK>
+0xD1BC 0x634A # <CJK>
+0xD1BD 0x633C # <CJK>
+0xD1BE 0x6329 # <CJK>
+0xD1BF 0x6341 # <CJK>
+0xD1C0 0x6334 # <CJK>
+0xD1C1 0x6358 # <CJK>
+0xD1C2 0x6354 # <CJK>
+0xD1C3 0x6359 # <CJK>
+0xD1C4 0x632D # <CJK>
+0xD1C5 0x6347 # <CJK>
+0xD1C6 0x6333 # <CJK>
+0xD1C7 0x635A # <CJK>
+0xD1C8 0x6351 # <CJK>
+0xD1C9 0x6338 # <CJK>
+0xD1CA 0x6357 # <CJK>
+0xD1CB 0x6340 # <CJK>
+0xD1CC 0x6348 # <CJK>
+0xD1CD 0x654A # <CJK>
+0xD1CE 0x6546 # <CJK>
+0xD1CF 0x65C6 # <CJK>
+0xD1D0 0x65C3 # <CJK>
+0xD1D1 0x65C4 # <CJK>
+0xD1D2 0x65C2 # <CJK>
+0xD1D3 0x664A # <CJK>
+0xD1D4 0x665F # <CJK>
+0xD1D5 0x6647 # <CJK>
+0xD1D6 0x6651 # <CJK>
+0xD1D7 0x6712 # <CJK>
+0xD1D8 0x6713 # <CJK>
+0xD1D9 0x681F # <CJK>
+0xD1DA 0x681A # <CJK>
+0xD1DB 0x6849 # <CJK>
+0xD1DC 0x6832 # <CJK>
+0xD1DD 0x6833 # <CJK>
+0xD1DE 0x683B # <CJK>
+0xD1DF 0x684B # <CJK>
+0xD1E0 0x684F # <CJK>
+0xD1E1 0x6816 # <CJK>
+0xD1E2 0x6831 # <CJK>
+0xD1E3 0x681C # <CJK>
+0xD1E4 0x6835 # <CJK>
+0xD1E5 0x682B # <CJK>
+0xD1E6 0x682D # <CJK>
+0xD1E7 0x682F # <CJK>
+0xD1E8 0x684E # <CJK>
+0xD1E9 0x6844 # <CJK>
+0xD1EA 0x6834 # <CJK>
+0xD1EB 0x681D # <CJK>
+0xD1EC 0x6812 # <CJK>
+0xD1ED 0x6814 # <CJK>
+0xD1EE 0x6826 # <CJK>
+0xD1EF 0x6828 # <CJK>
+0xD1F0 0x682E # <CJK>
+0xD1F1 0x684D # <CJK>
+0xD1F2 0x683A # <CJK>
+0xD1F3 0x6825 # <CJK>
+0xD1F4 0x6820 # <CJK>
+0xD1F5 0x6B2C # <CJK>
+0xD1F6 0x6B2F # <CJK>
+0xD1F7 0x6B2D # <CJK>
+0xD1F8 0x6B31 # <CJK>
+0xD1F9 0x6B34 # <CJK>
+0xD1FA 0x6B6D # <CJK>
+0xD1FB 0x8082 # <CJK>
+0xD1FC 0x6B88 # <CJK>
+0xD1FD 0x6BE6 # <CJK>
+0xD1FE 0x6BE4 # <CJK>
+0xD240 0x6BE8 # <CJK>
+0xD241 0x6BE3 # <CJK>
+0xD242 0x6BE2 # <CJK>
+0xD243 0x6BE7 # <CJK>
+0xD244 0x6C25 # <CJK>
+0xD245 0x6D7A # <CJK>
+0xD246 0x6D63 # <CJK>
+0xD247 0x6D64 # <CJK>
+0xD248 0x6D76 # <CJK>
+0xD249 0x6D0D # <CJK>
+0xD24A 0x6D61 # <CJK>
+0xD24B 0x6D92 # <CJK>
+0xD24C 0x6D58 # <CJK>
+0xD24D 0x6D62 # <CJK>
+0xD24E 0x6D6D # <CJK>
+0xD24F 0x6D6F # <CJK>
+0xD250 0x6D91 # <CJK>
+0xD251 0x6D8D # <CJK>
+0xD252 0x6DEF # <CJK>
+0xD253 0x6D7F # <CJK>
+0xD254 0x6D86 # <CJK>
+0xD255 0x6D5E # <CJK>
+0xD256 0x6D67 # <CJK>
+0xD257 0x6D60 # <CJK>
+0xD258 0x6D97 # <CJK>
+0xD259 0x6D70 # <CJK>
+0xD25A 0x6D7C # <CJK>
+0xD25B 0x6D5F # <CJK>
+0xD25C 0x6D82 # <CJK>
+0xD25D 0x6D98 # <CJK>
+0xD25E 0x6D2F # <CJK>
+0xD25F 0x6D68 # <CJK>
+0xD260 0x6D8B # <CJK>
+0xD261 0x6D7E # <CJK>
+0xD262 0x6D80 # <CJK>
+0xD263 0x6D84 # <CJK>
+0xD264 0x6D16 # <CJK>
+0xD265 0x6D83 # <CJK>
+0xD266 0x6D7B # <CJK>
+0xD267 0x6D7D # <CJK>
+0xD268 0x6D75 # <CJK>
+0xD269 0x6D90 # <CJK>
+0xD26A 0x70DC # <CJK>
+0xD26B 0x70D3 # <CJK>
+0xD26C 0x70D1 # <CJK>
+0xD26D 0x70DD # <CJK>
+0xD26E 0x70CB # <CJK>
+0xD26F 0x7F39 # <CJK>
+0xD270 0x70E2 # <CJK>
+0xD271 0x70D7 # <CJK>
+0xD272 0x70D2 # <CJK>
+0xD273 0x70DE # <CJK>
+0xD274 0x70E0 # <CJK>
+0xD275 0x70D4 # <CJK>
+0xD276 0x70CD # <CJK>
+0xD277 0x70C5 # <CJK>
+0xD278 0x70C6 # <CJK>
+0xD279 0x70C7 # <CJK>
+0xD27A 0x70DA # <CJK>
+0xD27B 0x70CE # <CJK>
+0xD27C 0x70E1 # <CJK>
+0xD27D 0x7242 # <CJK>
+0xD27E 0x7278 # <CJK>
+0xD2A1 0x7277 # <CJK>
+0xD2A2 0x7276 # <CJK>
+0xD2A3 0x7300 # <CJK>
+0xD2A4 0x72FA # <CJK>
+0xD2A5 0x72F4 # <CJK>
+0xD2A6 0x72FE # <CJK>
+0xD2A7 0x72F6 # <CJK>
+0xD2A8 0x72F3 # <CJK>
+0xD2A9 0x72FB # <CJK>
+0xD2AA 0x7301 # <CJK>
+0xD2AB 0x73D3 # <CJK>
+0xD2AC 0x73D9 # <CJK>
+0xD2AD 0x73E5 # <CJK>
+0xD2AE 0x73D6 # <CJK>
+0xD2AF 0x73BC # <CJK>
+0xD2B0 0x73E7 # <CJK>
+0xD2B1 0x73E3 # <CJK>
+0xD2B2 0x73E9 # <CJK>
+0xD2B3 0x73DC # <CJK>
+0xD2B4 0x73D2 # <CJK>
+0xD2B5 0x73DB # <CJK>
+0xD2B6 0x73D4 # <CJK>
+0xD2B7 0x73DD # <CJK>
+0xD2B8 0x73DA # <CJK>
+0xD2B9 0x73D7 # <CJK>
+0xD2BA 0x73D8 # <CJK>
+0xD2BB 0x73E8 # <CJK>
+0xD2BC 0x74DE # <CJK>
+0xD2BD 0x74DF # <CJK>
+0xD2BE 0x74F4 # <CJK>
+0xD2BF 0x74F5 # <CJK>
+0xD2C0 0x7521 # <CJK>
+0xD2C1 0x755B # <CJK>
+0xD2C2 0x755F # <CJK>
+0xD2C3 0x75B0 # <CJK>
+0xD2C4 0x75C1 # <CJK>
+0xD2C5 0x75BB # <CJK>
+0xD2C6 0x75C4 # <CJK>
+0xD2C7 0x75C0 # <CJK>
+0xD2C8 0x75BF # <CJK>
+0xD2C9 0x75B6 # <CJK>
+0xD2CA 0x75BA # <CJK>
+0xD2CB 0x768A # <CJK>
+0xD2CC 0x76C9 # <CJK>
+0xD2CD 0x771D # <CJK>
+0xD2CE 0x771B # <CJK>
+0xD2CF 0x7710 # <CJK>
+0xD2D0 0x7713 # <CJK>
+0xD2D1 0x7712 # <CJK>
+0xD2D2 0x7723 # <CJK>
+0xD2D3 0x7711 # <CJK>
+0xD2D4 0x7715 # <CJK>
+0xD2D5 0x7719 # <CJK>
+0xD2D6 0x771A # <CJK>
+0xD2D7 0x7722 # <CJK>
+0xD2D8 0x7727 # <CJK>
+0xD2D9 0x7823 # <CJK>
+0xD2DA 0x782C # <CJK>
+0xD2DB 0x7822 # <CJK>
+0xD2DC 0x7835 # <CJK>
+0xD2DD 0x782F # <CJK>
+0xD2DE 0x7828 # <CJK>
+0xD2DF 0x782E # <CJK>
+0xD2E0 0x782B # <CJK>
+0xD2E1 0x7821 # <CJK>
+0xD2E2 0x7829 # <CJK>
+0xD2E3 0x7833 # <CJK>
+0xD2E4 0x782A # <CJK>
+0xD2E5 0x7831 # <CJK>
+0xD2E6 0x7954 # <CJK>
+0xD2E7 0x795B # <CJK>
+0xD2E8 0x794F # <CJK>
+0xD2E9 0x795C # <CJK>
+0xD2EA 0x7953 # <CJK>
+0xD2EB 0x7952 # <CJK>
+0xD2EC 0x7951 # <CJK>
+0xD2ED 0x79EB # <CJK>
+0xD2EE 0x79EC # <CJK>
+0xD2EF 0x79E0 # <CJK>
+0xD2F0 0x79EE # <CJK>
+0xD2F1 0x79ED # <CJK>
+0xD2F2 0x79EA # <CJK>
+0xD2F3 0x79DC # <CJK>
+0xD2F4 0x79DE # <CJK>
+0xD2F5 0x79DD # <CJK>
+0xD2F6 0x7A86 # <CJK>
+0xD2F7 0x7A89 # <CJK>
+0xD2F8 0x7A85 # <CJK>
+0xD2F9 0x7A8B # <CJK>
+0xD2FA 0x7A8C # <CJK>
+0xD2FB 0x7A8A # <CJK>
+0xD2FC 0x7A87 # <CJK>
+0xD2FD 0x7AD8 # <CJK>
+0xD2FE 0x7B10 # <CJK>
+0xD340 0x7B04 # <CJK>
+0xD341 0x7B13 # <CJK>
+0xD342 0x7B05 # <CJK>
+0xD343 0x7B0F # <CJK>
+0xD344 0x7B08 # <CJK>
+0xD345 0x7B0A # <CJK>
+0xD346 0x7B0E # <CJK>
+0xD347 0x7B09 # <CJK>
+0xD348 0x7B12 # <CJK>
+0xD349 0x7C84 # <CJK>
+0xD34A 0x7C91 # <CJK>
+0xD34B 0x7C8A # <CJK>
+0xD34C 0x7C8C # <CJK>
+0xD34D 0x7C88 # <CJK>
+0xD34E 0x7C8D # <CJK>
+0xD34F 0x7C85 # <CJK>
+0xD350 0x7D1E # <CJK>
+0xD351 0x7D1D # <CJK>
+0xD352 0x7D11 # <CJK>
+0xD353 0x7D0E # <CJK>
+0xD354 0x7D18 # <CJK>
+0xD355 0x7D16 # <CJK>
+0xD356 0x7D13 # <CJK>
+0xD357 0x7D1F # <CJK>
+0xD358 0x7D12 # <CJK>
+0xD359 0x7D0F # <CJK>
+0xD35A 0x7D0C # <CJK>
+0xD35B 0x7F5C # <CJK>
+0xD35C 0x7F61 # <CJK>
+0xD35D 0x7F5E # <CJK>
+0xD35E 0x7F60 # <CJK>
+0xD35F 0x7F5D # <CJK>
+0xD360 0x7F5B # <CJK>
+0xD361 0x7F96 # <CJK>
+0xD362 0x7F92 # <CJK>
+0xD363 0x7FC3 # <CJK>
+0xD364 0x7FC2 # <CJK>
+0xD365 0x7FC0 # <CJK>
+0xD366 0x8016 # <CJK>
+0xD367 0x803E # <CJK>
+0xD368 0x8039 # <CJK>
+0xD369 0x80FA # <CJK>
+0xD36A 0x80F2 # <CJK>
+0xD36B 0x80F9 # <CJK>
+0xD36C 0x80F5 # <CJK>
+0xD36D 0x8101 # <CJK>
+0xD36E 0x80FB # <CJK>
+0xD36F 0x8100 # <CJK>
+0xD370 0x8201 # <CJK>
+0xD371 0x822F # <CJK>
+0xD372 0x8225 # <CJK>
+0xD373 0x8333 # <CJK>
+0xD374 0x832D # <CJK>
+0xD375 0x8344 # <CJK>
+0xD376 0x8319 # <CJK>
+0xD377 0x8351 # <CJK>
+0xD378 0x8325 # <CJK>
+0xD379 0x8356 # <CJK>
+0xD37A 0x833F # <CJK>
+0xD37B 0x8341 # <CJK>
+0xD37C 0x8326 # <CJK>
+0xD37D 0x831C # <CJK>
+0xD37E 0x8322 # <CJK>
+0xD3A1 0x8342 # <CJK>
+0xD3A2 0x834E # <CJK>
+0xD3A3 0x831B # <CJK>
+0xD3A4 0x832A # <CJK>
+0xD3A5 0x8308 # <CJK>
+0xD3A6 0x833C # <CJK>
+0xD3A7 0x834D # <CJK>
+0xD3A8 0x8316 # <CJK>
+0xD3A9 0x8324 # <CJK>
+0xD3AA 0x8320 # <CJK>
+0xD3AB 0x8337 # <CJK>
+0xD3AC 0x832F # <CJK>
+0xD3AD 0x8329 # <CJK>
+0xD3AE 0x8347 # <CJK>
+0xD3AF 0x8345 # <CJK>
+0xD3B0 0x834C # <CJK>
+0xD3B1 0x8353 # <CJK>
+0xD3B2 0x831E # <CJK>
+0xD3B3 0x832C # <CJK>
+0xD3B4 0x834B # <CJK>
+0xD3B5 0x8327 # <CJK>
+0xD3B6 0x8348 # <CJK>
+0xD3B7 0x8653 # <CJK>
+0xD3B8 0x8652 # <CJK>
+0xD3B9 0x86A2 # <CJK>
+0xD3BA 0x86A8 # <CJK>
+0xD3BB 0x8696 # <CJK>
+0xD3BC 0x868D # <CJK>
+0xD3BD 0x8691 # <CJK>
+0xD3BE 0x869E # <CJK>
+0xD3BF 0x8687 # <CJK>
+0xD3C0 0x8697 # <CJK>
+0xD3C1 0x8686 # <CJK>
+0xD3C2 0x868B # <CJK>
+0xD3C3 0x869A # <CJK>
+0xD3C4 0x8685 # <CJK>
+0xD3C5 0x86A5 # <CJK>
+0xD3C6 0x8699 # <CJK>
+0xD3C7 0x86A1 # <CJK>
+0xD3C8 0x86A7 # <CJK>
+0xD3C9 0x8695 # <CJK>
+0xD3CA 0x8698 # <CJK>
+0xD3CB 0x868E # <CJK>
+0xD3CC 0x869D # <CJK>
+0xD3CD 0x8690 # <CJK>
+0xD3CE 0x8694 # <CJK>
+0xD3CF 0x8843 # <CJK>
+0xD3D0 0x8844 # <CJK>
+0xD3D1 0x886D # <CJK>
+0xD3D2 0x8875 # <CJK>
+0xD3D3 0x8876 # <CJK>
+0xD3D4 0x8872 # <CJK>
+0xD3D5 0x8880 # <CJK>
+0xD3D6 0x8871 # <CJK>
+0xD3D7 0x887F # <CJK>
+0xD3D8 0x886F # <CJK>
+0xD3D9 0x8883 # <CJK>
+0xD3DA 0x887E # <CJK>
+0xD3DB 0x8874 # <CJK>
+0xD3DC 0x887C # <CJK>
+0xD3DD 0x8A12 # <CJK>
+0xD3DE 0x8C47 # <CJK>
+0xD3DF 0x8C57 # <CJK>
+0xD3E0 0x8C7B # <CJK>
+0xD3E1 0x8CA4 # <CJK>
+0xD3E2 0x8CA3 # <CJK>
+0xD3E3 0x8D76 # <CJK>
+0xD3E4 0x8D78 # <CJK>
+0xD3E5 0x8DB5 # <CJK>
+0xD3E6 0x8DB7 # <CJK>
+0xD3E7 0x8DB6 # <CJK>
+0xD3E8 0x8ED1 # <CJK>
+0xD3E9 0x8ED3 # <CJK>
+0xD3EA 0x8FFE # <CJK>
+0xD3EB 0x8FF5 # <CJK>
+0xD3EC 0x9002 # <CJK>
+0xD3ED 0x8FFF # <CJK>
+0xD3EE 0x8FFB # <CJK>
+0xD3EF 0x9004 # <CJK>
+0xD3F0 0x8FFC # <CJK>
+0xD3F1 0x8FF6 # <CJK>
+0xD3F2 0x90D6 # <CJK>
+0xD3F3 0x90E0 # <CJK>
+0xD3F4 0x90D9 # <CJK>
+0xD3F5 0x90DA # <CJK>
+0xD3F6 0x90E3 # <CJK>
+0xD3F7 0x90DF # <CJK>
+0xD3F8 0x90E5 # <CJK>
+0xD3F9 0x90D8 # <CJK>
+0xD3FA 0x90DB # <CJK>
+0xD3FB 0x90D7 # <CJK>
+0xD3FC 0x90DC # <CJK>
+0xD3FD 0x90E4 # <CJK>
+0xD3FE 0x9150 # <CJK>
+0xD440 0x914E # <CJK>
+0xD441 0x914F # <CJK>
+0xD442 0x91D5 # <CJK>
+0xD443 0x91E2 # <CJK>
+0xD444 0x91DA # <CJK>
+0xD445 0x965C # <CJK>
+0xD446 0x965F # <CJK>
+0xD447 0x96BC # <CJK>
+0xD448 0x98E3 # <CJK>
+0xD449 0x9ADF # <CJK>
+0xD44A 0x9B2F # <CJK>
+0xD44B 0x4E7F # <CJK>
+0xD44C 0x5070 # <CJK>
+0xD44D 0x506A # <CJK>
+0xD44E 0x5061 # <CJK>
+0xD44F 0x505E # <CJK>
+0xD450 0x5060 # <CJK>
+0xD451 0x5053 # <CJK>
+0xD452 0x504B # <CJK>
+0xD453 0x505D # <CJK>
+0xD454 0x5072 # <CJK>
+0xD455 0x5048 # <CJK>
+0xD456 0x504D # <CJK>
+0xD457 0x5041 # <CJK>
+0xD458 0x505B # <CJK>
+0xD459 0x504A # <CJK>
+0xD45A 0x5062 # <CJK>
+0xD45B 0x5015 # <CJK>
+0xD45C 0x5045 # <CJK>
+0xD45D 0x505F # <CJK>
+0xD45E 0x5069 # <CJK>
+0xD45F 0x506B # <CJK>
+0xD460 0x5063 # <CJK>
+0xD461 0x5064 # <CJK>
+0xD462 0x5046 # <CJK>
+0xD463 0x5040 # <CJK>
+0xD464 0x506E # <CJK>
+0xD465 0x5073 # <CJK>
+0xD466 0x5057 # <CJK>
+0xD467 0x5051 # <CJK>
+0xD468 0x51D0 # <CJK>
+0xD469 0x526B # <CJK>
+0xD46A 0x526D # <CJK>
+0xD46B 0x526C # <CJK>
+0xD46C 0x526E # <CJK>
+0xD46D 0x52D6 # <CJK>
+0xD46E 0x52D3 # <CJK>
+0xD46F 0x532D # <CJK>
+0xD470 0x539C # <CJK>
+0xD471 0x5575 # <CJK>
+0xD472 0x5576 # <CJK>
+0xD473 0x553C # <CJK>
+0xD474 0x554D # <CJK>
+0xD475 0x5550 # <CJK>
+0xD476 0x5534 # <CJK>
+0xD477 0x552A # <CJK>
+0xD478 0x5551 # <CJK>
+0xD479 0x5562 # <CJK>
+0xD47A 0x5536 # <CJK>
+0xD47B 0x5535 # <CJK>
+0xD47C 0x5530 # <CJK>
+0xD47D 0x5552 # <CJK>
+0xD47E 0x5545 # <CJK>
+0xD4A1 0x550C # <CJK>
+0xD4A2 0x5532 # <CJK>
+0xD4A3 0x5565 # <CJK>
+0xD4A4 0x554E # <CJK>
+0xD4A5 0x5539 # <CJK>
+0xD4A6 0x5548 # <CJK>
+0xD4A7 0x552D # <CJK>
+0xD4A8 0x553B # <CJK>
+0xD4A9 0x5540 # <CJK>
+0xD4AA 0x554B # <CJK>
+0xD4AB 0x570A # <CJK>
+0xD4AC 0x5707 # <CJK>
+0xD4AD 0x57FB # <CJK>
+0xD4AE 0x5814 # <CJK>
+0xD4AF 0x57E2 # <CJK>
+0xD4B0 0x57F6 # <CJK>
+0xD4B1 0x57DC # <CJK>
+0xD4B2 0x57F4 # <CJK>
+0xD4B3 0x5800 # <CJK>
+0xD4B4 0x57ED # <CJK>
+0xD4B5 0x57FD # <CJK>
+0xD4B6 0x5808 # <CJK>
+0xD4B7 0x57F8 # <CJK>
+0xD4B8 0x580B # <CJK>
+0xD4B9 0x57F3 # <CJK>
+0xD4BA 0x57CF # <CJK>
+0xD4BB 0x5807 # <CJK>
+0xD4BC 0x57EE # <CJK>
+0xD4BD 0x57E3 # <CJK>
+0xD4BE 0x57F2 # <CJK>
+0xD4BF 0x57E5 # <CJK>
+0xD4C0 0x57EC # <CJK>
+0xD4C1 0x57E1 # <CJK>
+0xD4C2 0x580E # <CJK>
+0xD4C3 0x57FC # <CJK>
+0xD4C4 0x5810 # <CJK>
+0xD4C5 0x57E7 # <CJK>
+0xD4C6 0x5801 # <CJK>
+0xD4C7 0x580C # <CJK>
+0xD4C8 0x57F1 # <CJK>
+0xD4C9 0x57E9 # <CJK>
+0xD4CA 0x57F0 # <CJK>
+0xD4CB 0x580D # <CJK>
+0xD4CC 0x5804 # <CJK>
+0xD4CD 0x595C # <CJK>
+0xD4CE 0x5A60 # <CJK>
+0xD4CF 0x5A58 # <CJK>
+0xD4D0 0x5A55 # <CJK>
+0xD4D1 0x5A67 # <CJK>
+0xD4D2 0x5A5E # <CJK>
+0xD4D3 0x5A38 # <CJK>
+0xD4D4 0x5A35 # <CJK>
+0xD4D5 0x5A6D # <CJK>
+0xD4D6 0x5A50 # <CJK>
+0xD4D7 0x5A5F # <CJK>
+0xD4D8 0x5A65 # <CJK>
+0xD4D9 0x5A6C # <CJK>
+0xD4DA 0x5A53 # <CJK>
+0xD4DB 0x5A64 # <CJK>
+0xD4DC 0x5A57 # <CJK>
+0xD4DD 0x5A43 # <CJK>
+0xD4DE 0x5A5D # <CJK>
+0xD4DF 0x5A52 # <CJK>
+0xD4E0 0x5A44 # <CJK>
+0xD4E1 0x5A5B # <CJK>
+0xD4E2 0x5A48 # <CJK>
+0xD4E3 0x5A8E # <CJK>
+0xD4E4 0x5A3E # <CJK>
+0xD4E5 0x5A4D # <CJK>
+0xD4E6 0x5A39 # <CJK>
+0xD4E7 0x5A4C # <CJK>
+0xD4E8 0x5A70 # <CJK>
+0xD4E9 0x5A69 # <CJK>
+0xD4EA 0x5A47 # <CJK>
+0xD4EB 0x5A51 # <CJK>
+0xD4EC 0x5A56 # <CJK>
+0xD4ED 0x5A42 # <CJK>
+0xD4EE 0x5A5C # <CJK>
+0xD4EF 0x5B72 # <CJK>
+0xD4F0 0x5B6E # <CJK>
+0xD4F1 0x5BC1 # <CJK>
+0xD4F2 0x5BC0 # <CJK>
+0xD4F3 0x5C59 # <CJK>
+0xD4F4 0x5D1E # <CJK>
+0xD4F5 0x5D0B # <CJK>
+0xD4F6 0x5D1D # <CJK>
+0xD4F7 0x5D1A # <CJK>
+0xD4F8 0x5D20 # <CJK>
+0xD4F9 0x5D0C # <CJK>
+0xD4FA 0x5D28 # <CJK>
+0xD4FB 0x5D0D # <CJK>
+0xD4FC 0x5D26 # <CJK>
+0xD4FD 0x5D25 # <CJK>
+0xD4FE 0x5D0F # <CJK>
+0xD540 0x5D30 # <CJK>
+0xD541 0x5D12 # <CJK>
+0xD542 0x5D23 # <CJK>
+0xD543 0x5D1F # <CJK>
+0xD544 0x5D2E # <CJK>
+0xD545 0x5E3E # <CJK>
+0xD546 0x5E34 # <CJK>
+0xD547 0x5EB1 # <CJK>
+0xD548 0x5EB4 # <CJK>
+0xD549 0x5EB9 # <CJK>
+0xD54A 0x5EB2 # <CJK>
+0xD54B 0x5EB3 # <CJK>
+0xD54C 0x5F36 # <CJK>
+0xD54D 0x5F38 # <CJK>
+0xD54E 0x5F9B # <CJK>
+0xD54F 0x5F96 # <CJK>
+0xD550 0x5F9F # <CJK>
+0xD551 0x608A # <CJK>
+0xD552 0x6090 # <CJK>
+0xD553 0x6086 # <CJK>
+0xD554 0x60BE # <CJK>
+0xD555 0x60B0 # <CJK>
+0xD556 0x60BA # <CJK>
+0xD557 0x60D3 # <CJK>
+0xD558 0x60D4 # <CJK>
+0xD559 0x60CF # <CJK>
+0xD55A 0x60E4 # <CJK>
+0xD55B 0x60D9 # <CJK>
+0xD55C 0x60DD # <CJK>
+0xD55D 0x60C8 # <CJK>
+0xD55E 0x60B1 # <CJK>
+0xD55F 0x60DB # <CJK>
+0xD560 0x60B7 # <CJK>
+0xD561 0x60CA # <CJK>
+0xD562 0x60BF # <CJK>
+0xD563 0x60C3 # <CJK>
+0xD564 0x60CD # <CJK>
+0xD565 0x60C0 # <CJK>
+0xD566 0x6332 # <CJK>
+0xD567 0x6365 # <CJK>
+0xD568 0x638A # <CJK>
+0xD569 0x6382 # <CJK>
+0xD56A 0x637D # <CJK>
+0xD56B 0x63BD # <CJK>
+0xD56C 0x639E # <CJK>
+0xD56D 0x63AD # <CJK>
+0xD56E 0x639D # <CJK>
+0xD56F 0x6397 # <CJK>
+0xD570 0x63AB # <CJK>
+0xD571 0x638E # <CJK>
+0xD572 0x636F # <CJK>
+0xD573 0x6387 # <CJK>
+0xD574 0x6390 # <CJK>
+0xD575 0x636E # <CJK>
+0xD576 0x63AF # <CJK>
+0xD577 0x6375 # <CJK>
+0xD578 0x639C # <CJK>
+0xD579 0x636D # <CJK>
+0xD57A 0x63AE # <CJK>
+0xD57B 0x637C # <CJK>
+0xD57C 0x63A4 # <CJK>
+0xD57D 0x633B # <CJK>
+0xD57E 0x639F # <CJK>
+0xD5A1 0x6378 # <CJK>
+0xD5A2 0x6385 # <CJK>
+0xD5A3 0x6381 # <CJK>
+0xD5A4 0x6391 # <CJK>
+0xD5A5 0x638D # <CJK>
+0xD5A6 0x6370 # <CJK>
+0xD5A7 0x6553 # <CJK>
+0xD5A8 0x65CD # <CJK>
+0xD5A9 0x6665 # <CJK>
+0xD5AA 0x6661 # <CJK>
+0xD5AB 0x665B # <CJK>
+0xD5AC 0x6659 # <CJK>
+0xD5AD 0x665C # <CJK>
+0xD5AE 0x6662 # <CJK>
+0xD5AF 0x6718 # <CJK>
+0xD5B0 0x6879 # <CJK>
+0xD5B1 0x6887 # <CJK>
+0xD5B2 0x6890 # <CJK>
+0xD5B3 0x689C # <CJK>
+0xD5B4 0x686D # <CJK>
+0xD5B5 0x686E # <CJK>
+0xD5B6 0x68AE # <CJK>
+0xD5B7 0x68AB # <CJK>
+0xD5B8 0x6956 # <CJK>
+0xD5B9 0x686F # <CJK>
+0xD5BA 0x68A3 # <CJK>
+0xD5BB 0x68AC # <CJK>
+0xD5BC 0x68A9 # <CJK>
+0xD5BD 0x6875 # <CJK>
+0xD5BE 0x6874 # <CJK>
+0xD5BF 0x68B2 # <CJK>
+0xD5C0 0x688F # <CJK>
+0xD5C1 0x6877 # <CJK>
+0xD5C2 0x6892 # <CJK>
+0xD5C3 0x687C # <CJK>
+0xD5C4 0x686B # <CJK>
+0xD5C5 0x6872 # <CJK>
+0xD5C6 0x68AA # <CJK>
+0xD5C7 0x6880 # <CJK>
+0xD5C8 0x6871 # <CJK>
+0xD5C9 0x687E # <CJK>
+0xD5CA 0x689B # <CJK>
+0xD5CB 0x6896 # <CJK>
+0xD5CC 0x688B # <CJK>
+0xD5CD 0x68A0 # <CJK>
+0xD5CE 0x6889 # <CJK>
+0xD5CF 0x68A4 # <CJK>
+0xD5D0 0x6878 # <CJK>
+0xD5D1 0x687B # <CJK>
+0xD5D2 0x6891 # <CJK>
+0xD5D3 0x688C # <CJK>
+0xD5D4 0x688A # <CJK>
+0xD5D5 0x687D # <CJK>
+0xD5D6 0x6B36 # <CJK>
+0xD5D7 0x6B33 # <CJK>
+0xD5D8 0x6B37 # <CJK>
+0xD5D9 0x6B38 # <CJK>
+0xD5DA 0x6B91 # <CJK>
+0xD5DB 0x6B8F # <CJK>
+0xD5DC 0x6B8D # <CJK>
+0xD5DD 0x6B8E # <CJK>
+0xD5DE 0x6B8C # <CJK>
+0xD5DF 0x6C2A # <CJK>
+0xD5E0 0x6DC0 # <CJK>
+0xD5E1 0x6DAB # <CJK>
+0xD5E2 0x6DB4 # <CJK>
+0xD5E3 0x6DB3 # <CJK>
+0xD5E4 0x6E74 # <CJK>
+0xD5E5 0x6DAC # <CJK>
+0xD5E6 0x6DE9 # <CJK>
+0xD5E7 0x6DE2 # <CJK>
+0xD5E8 0x6DB7 # <CJK>
+0xD5E9 0x6DF6 # <CJK>
+0xD5EA 0x6DD4 # <CJK>
+0xD5EB 0x6E00 # <CJK>
+0xD5EC 0x6DC8 # <CJK>
+0xD5ED 0x6DE0 # <CJK>
+0xD5EE 0x6DDF # <CJK>
+0xD5EF 0x6DD6 # <CJK>
+0xD5F0 0x6DBE # <CJK>
+0xD5F1 0x6DE5 # <CJK>
+0xD5F2 0x6DDC # <CJK>
+0xD5F3 0x6DDD # <CJK>
+0xD5F4 0x6DDB # <CJK>
+0xD5F5 0x6DF4 # <CJK>
+0xD5F6 0x6DCA # <CJK>
+0xD5F7 0x6DBD # <CJK>
+0xD5F8 0x6DED # <CJK>
+0xD5F9 0x6DF0 # <CJK>
+0xD5FA 0x6DBA # <CJK>
+0xD5FB 0x6DD5 # <CJK>
+0xD5FC 0x6DC2 # <CJK>
+0xD5FD 0x6DCF # <CJK>
+0xD5FE 0x6DC9 # <CJK>
+0xD640 0x6DD0 # <CJK>
+0xD641 0x6DF2 # <CJK>
+0xD642 0x6DD3 # <CJK>
+0xD643 0x6DFD # <CJK>
+0xD644 0x6DD7 # <CJK>
+0xD645 0x6DCD # <CJK>
+0xD646 0x6DE3 # <CJK>
+0xD647 0x6DBB # <CJK>
+0xD648 0x70FA # <CJK>
+0xD649 0x710D # <CJK>
+0xD64A 0x70F7 # <CJK>
+0xD64B 0x7117 # <CJK>
+0xD64C 0x70F4 # <CJK>
+0xD64D 0x710C # <CJK>
+0xD64E 0x70F0 # <CJK>
+0xD64F 0x7104 # <CJK>
+0xD650 0x70F3 # <CJK>
+0xD651 0x7110 # <CJK>
+0xD652 0x70FC # <CJK>
+0xD653 0x70FF # <CJK>
+0xD654 0x7106 # <CJK>
+0xD655 0x7113 # <CJK>
+0xD656 0x7100 # <CJK>
+0xD657 0x70F8 # <CJK>
+0xD658 0x70F6 # <CJK>
+0xD659 0x710B # <CJK>
+0xD65A 0x7102 # <CJK>
+0xD65B 0x710E # <CJK>
+0xD65C 0x727E # <CJK>
+0xD65D 0x727B # <CJK>
+0xD65E 0x727C # <CJK>
+0xD65F 0x727F # <CJK>
+0xD660 0x731D # <CJK>
+0xD661 0x7317 # <CJK>
+0xD662 0x7307 # <CJK>
+0xD663 0x7311 # <CJK>
+0xD664 0x7318 # <CJK>
+0xD665 0x730A # <CJK>
+0xD666 0x7308 # <CJK>
+0xD667 0x72FF # <CJK>
+0xD668 0x730F # <CJK>
+0xD669 0x731E # <CJK>
+0xD66A 0x7388 # <CJK>
+0xD66B 0x73F6 # <CJK>
+0xD66C 0x73F8 # <CJK>
+0xD66D 0x73F5 # <CJK>
+0xD66E 0x7404 # <CJK>
+0xD66F 0x7401 # <CJK>
+0xD670 0x73FD # <CJK>
+0xD671 0x7407 # <CJK>
+0xD672 0x7400 # <CJK>
+0xD673 0x73FA # <CJK>
+0xD674 0x73FC # <CJK>
+0xD675 0x73FF # <CJK>
+0xD676 0x740C # <CJK>
+0xD677 0x740B # <CJK>
+0xD678 0x73F4 # <CJK>
+0xD679 0x7408 # <CJK>
+0xD67A 0x7564 # <CJK>
+0xD67B 0x7563 # <CJK>
+0xD67C 0x75CE # <CJK>
+0xD67D 0x75D2 # <CJK>
+0xD67E 0x75CF # <CJK>
+0xD6A1 0x75CB # <CJK>
+0xD6A2 0x75CC # <CJK>
+0xD6A3 0x75D1 # <CJK>
+0xD6A4 0x75D0 # <CJK>
+0xD6A5 0x768F # <CJK>
+0xD6A6 0x7689 # <CJK>
+0xD6A7 0x76D3 # <CJK>
+0xD6A8 0x7739 # <CJK>
+0xD6A9 0x772F # <CJK>
+0xD6AA 0x772D # <CJK>
+0xD6AB 0x7731 # <CJK>
+0xD6AC 0x7732 # <CJK>
+0xD6AD 0x7734 # <CJK>
+0xD6AE 0x7733 # <CJK>
+0xD6AF 0x773D # <CJK>
+0xD6B0 0x7725 # <CJK>
+0xD6B1 0x773B # <CJK>
+0xD6B2 0x7735 # <CJK>
+0xD6B3 0x7848 # <CJK>
+0xD6B4 0x7852 # <CJK>
+0xD6B5 0x7849 # <CJK>
+0xD6B6 0x784D # <CJK>
+0xD6B7 0x784A # <CJK>
+0xD6B8 0x784C # <CJK>
+0xD6B9 0x7826 # <CJK>
+0xD6BA 0x7845 # <CJK>
+0xD6BB 0x7850 # <CJK>
+0xD6BC 0x7964 # <CJK>
+0xD6BD 0x7967 # <CJK>
+0xD6BE 0x7969 # <CJK>
+0xD6BF 0x796A # <CJK>
+0xD6C0 0x7963 # <CJK>
+0xD6C1 0x796B # <CJK>
+0xD6C2 0x7961 # <CJK>
+0xD6C3 0x79BB # <CJK>
+0xD6C4 0x79FA # <CJK>
+0xD6C5 0x79F8 # <CJK>
+0xD6C6 0x79F6 # <CJK>
+0xD6C7 0x79F7 # <CJK>
+0xD6C8 0x7A8F # <CJK>
+0xD6C9 0x7A94 # <CJK>
+0xD6CA 0x7A90 # <CJK>
+0xD6CB 0x7B35 # <CJK>
+0xD6CC 0x7B47 # <CJK>
+0xD6CD 0x7B34 # <CJK>
+0xD6CE 0x7B25 # <CJK>
+0xD6CF 0x7B30 # <CJK>
+0xD6D0 0x7B22 # <CJK>
+0xD6D1 0x7B24 # <CJK>
+0xD6D2 0x7B33 # <CJK>
+0xD6D3 0x7B18 # <CJK>
+0xD6D4 0x7B2A # <CJK>
+0xD6D5 0x7B1D # <CJK>
+0xD6D6 0x7B31 # <CJK>
+0xD6D7 0x7B2B # <CJK>
+0xD6D8 0x7B2D # <CJK>
+0xD6D9 0x7B2F # <CJK>
+0xD6DA 0x7B32 # <CJK>
+0xD6DB 0x7B38 # <CJK>
+0xD6DC 0x7B1A # <CJK>
+0xD6DD 0x7B23 # <CJK>
+0xD6DE 0x7C94 # <CJK>
+0xD6DF 0x7C98 # <CJK>
+0xD6E0 0x7C96 # <CJK>
+0xD6E1 0x7CA3 # <CJK>
+0xD6E2 0x7D35 # <CJK>
+0xD6E3 0x7D3D # <CJK>
+0xD6E4 0x7D38 # <CJK>
+0xD6E5 0x7D36 # <CJK>
+0xD6E6 0x7D3A # <CJK>
+0xD6E7 0x7D45 # <CJK>
+0xD6E8 0x7D2C # <CJK>
+0xD6E9 0x7D29 # <CJK>
+0xD6EA 0x7D41 # <CJK>
+0xD6EB 0x7D47 # <CJK>
+0xD6EC 0x7D3E # <CJK>
+0xD6ED 0x7D3F # <CJK>
+0xD6EE 0x7D4A # <CJK>
+0xD6EF 0x7D3B # <CJK>
+0xD6F0 0x7D28 # <CJK>
+0xD6F1 0x7F63 # <CJK>
+0xD6F2 0x7F95 # <CJK>
+0xD6F3 0x7F9C # <CJK>
+0xD6F4 0x7F9D # <CJK>
+0xD6F5 0x7F9B # <CJK>
+0xD6F6 0x7FCA # <CJK>
+0xD6F7 0x7FCB # <CJK>
+0xD6F8 0x7FCD # <CJK>
+0xD6F9 0x7FD0 # <CJK>
+0xD6FA 0x7FD1 # <CJK>
+0xD6FB 0x7FC7 # <CJK>
+0xD6FC 0x7FCF # <CJK>
+0xD6FD 0x7FC9 # <CJK>
+0xD6FE 0x801F # <CJK>
+0xD740 0x801E # <CJK>
+0xD741 0x801B # <CJK>
+0xD742 0x8047 # <CJK>
+0xD743 0x8043 # <CJK>
+0xD744 0x8048 # <CJK>
+0xD745 0x8118 # <CJK>
+0xD746 0x8125 # <CJK>
+0xD747 0x8119 # <CJK>
+0xD748 0x811B # <CJK>
+0xD749 0x812D # <CJK>
+0xD74A 0x811F # <CJK>
+0xD74B 0x812C # <CJK>
+0xD74C 0x811E # <CJK>
+0xD74D 0x8121 # <CJK>
+0xD74E 0x8115 # <CJK>
+0xD74F 0x8127 # <CJK>
+0xD750 0x811D # <CJK>
+0xD751 0x8122 # <CJK>
+0xD752 0x8211 # <CJK>
+0xD753 0x8238 # <CJK>
+0xD754 0x8233 # <CJK>
+0xD755 0x823A # <CJK>
+0xD756 0x8234 # <CJK>
+0xD757 0x8232 # <CJK>
+0xD758 0x8274 # <CJK>
+0xD759 0x8390 # <CJK>
+0xD75A 0x83A3 # <CJK>
+0xD75B 0x83A8 # <CJK>
+0xD75C 0x838D # <CJK>
+0xD75D 0x837A # <CJK>
+0xD75E 0x8373 # <CJK>
+0xD75F 0x83A4 # <CJK>
+0xD760 0x8374 # <CJK>
+0xD761 0x838F # <CJK>
+0xD762 0x8381 # <CJK>
+0xD763 0x8395 # <CJK>
+0xD764 0x8399 # <CJK>
+0xD765 0x8375 # <CJK>
+0xD766 0x8394 # <CJK>
+0xD767 0x83A9 # <CJK>
+0xD768 0x837D # <CJK>
+0xD769 0x8383 # <CJK>
+0xD76A 0x838C # <CJK>
+0xD76B 0x839D # <CJK>
+0xD76C 0x839B # <CJK>
+0xD76D 0x83AA # <CJK>
+0xD76E 0x838B # <CJK>
+0xD76F 0x837E # <CJK>
+0xD770 0x83A5 # <CJK>
+0xD771 0x83AF # <CJK>
+0xD772 0x8388 # <CJK>
+0xD773 0x8397 # <CJK>
+0xD774 0x83B0 # <CJK>
+0xD775 0x837F # <CJK>
+0xD776 0x83A6 # <CJK>
+0xD777 0x8387 # <CJK>
+0xD778 0x83AE # <CJK>
+0xD779 0x8376 # <CJK>
+0xD77A 0x839A # <CJK>
+0xD77B 0x8659 # <CJK>
+0xD77C 0x8656 # <CJK>
+0xD77D 0x86BF # <CJK>
+0xD77E 0x86B7 # <CJK>
+0xD7A1 0x86C2 # <CJK>
+0xD7A2 0x86C1 # <CJK>
+0xD7A3 0x86C5 # <CJK>
+0xD7A4 0x86BA # <CJK>
+0xD7A5 0x86B0 # <CJK>
+0xD7A6 0x86C8 # <CJK>
+0xD7A7 0x86B9 # <CJK>
+0xD7A8 0x86B3 # <CJK>
+0xD7A9 0x86B8 # <CJK>
+0xD7AA 0x86CC # <CJK>
+0xD7AB 0x86B4 # <CJK>
+0xD7AC 0x86BB # <CJK>
+0xD7AD 0x86BC # <CJK>
+0xD7AE 0x86C3 # <CJK>
+0xD7AF 0x86BD # <CJK>
+0xD7B0 0x86BE # <CJK>
+0xD7B1 0x8852 # <CJK>
+0xD7B2 0x8889 # <CJK>
+0xD7B3 0x8895 # <CJK>
+0xD7B4 0x88A8 # <CJK>
+0xD7B5 0x88A2 # <CJK>
+0xD7B6 0x88AA # <CJK>
+0xD7B7 0x889A # <CJK>
+0xD7B8 0x8891 # <CJK>
+0xD7B9 0x88A1 # <CJK>
+0xD7BA 0x889F # <CJK>
+0xD7BB 0x8898 # <CJK>
+0xD7BC 0x88A7 # <CJK>
+0xD7BD 0x8899 # <CJK>
+0xD7BE 0x889B # <CJK>
+0xD7BF 0x8897 # <CJK>
+0xD7C0 0x88A4 # <CJK>
+0xD7C1 0x88AC # <CJK>
+0xD7C2 0x888C # <CJK>
+0xD7C3 0x8893 # <CJK>
+0xD7C4 0x888E # <CJK>
+0xD7C5 0x8982 # <CJK>
+0xD7C6 0x89D6 # <CJK>
+0xD7C7 0x89D9 # <CJK>
+0xD7C8 0x89D5 # <CJK>
+0xD7C9 0x8A30 # <CJK>
+0xD7CA 0x8A27 # <CJK>
+0xD7CB 0x8A2C # <CJK>
+0xD7CC 0x8A1E # <CJK>
+0xD7CD 0x8C39 # <CJK>
+0xD7CE 0x8C3B # <CJK>
+0xD7CF 0x8C5C # <CJK>
+0xD7D0 0x8C5D # <CJK>
+0xD7D1 0x8C7D # <CJK>
+0xD7D2 0x8CA5 # <CJK>
+0xD7D3 0x8D7D # <CJK>
+0xD7D4 0x8D7B # <CJK>
+0xD7D5 0x8D79 # <CJK>
+0xD7D6 0x8DBC # <CJK>
+0xD7D7 0x8DC2 # <CJK>
+0xD7D8 0x8DB9 # <CJK>
+0xD7D9 0x8DBF # <CJK>
+0xD7DA 0x8DC1 # <CJK>
+0xD7DB 0x8ED8 # <CJK>
+0xD7DC 0x8EDE # <CJK>
+0xD7DD 0x8EDD # <CJK>
+0xD7DE 0x8EDC # <CJK>
+0xD7DF 0x8ED7 # <CJK>
+0xD7E0 0x8EE0 # <CJK>
+0xD7E1 0x8EE1 # <CJK>
+0xD7E2 0x9024 # <CJK>
+0xD7E3 0x900B # <CJK>
+0xD7E4 0x9011 # <CJK>
+0xD7E5 0x901C # <CJK>
+0xD7E6 0x900C # <CJK>
+0xD7E7 0x9021 # <CJK>
+0xD7E8 0x90EF # <CJK>
+0xD7E9 0x90EA # <CJK>
+0xD7EA 0x90F0 # <CJK>
+0xD7EB 0x90F4 # <CJK>
+0xD7EC 0x90F2 # <CJK>
+0xD7ED 0x90F3 # <CJK>
+0xD7EE 0x90D4 # <CJK>
+0xD7EF 0x90EB # <CJK>
+0xD7F0 0x90EC # <CJK>
+0xD7F1 0x90E9 # <CJK>
+0xD7F2 0x9156 # <CJK>
+0xD7F3 0x9158 # <CJK>
+0xD7F4 0x915A # <CJK>
+0xD7F5 0x9153 # <CJK>
+0xD7F6 0x9155 # <CJK>
+0xD7F7 0x91EC # <CJK>
+0xD7F8 0x91F4 # <CJK>
+0xD7F9 0x91F1 # <CJK>
+0xD7FA 0x91F3 # <CJK>
+0xD7FB 0x91F8 # <CJK>
+0xD7FC 0x91E4 # <CJK>
+0xD7FD 0x91F9 # <CJK>
+0xD7FE 0x91EA # <CJK>
+0xD840 0x91EB # <CJK>
+0xD841 0x91F7 # <CJK>
+0xD842 0x91E8 # <CJK>
+0xD843 0x91EE # <CJK>
+0xD844 0x957A # <CJK>
+0xD845 0x9586 # <CJK>
+0xD846 0x9588 # <CJK>
+0xD847 0x967C # <CJK>
+0xD848 0x966D # <CJK>
+0xD849 0x966B # <CJK>
+0xD84A 0x9671 # <CJK>
+0xD84B 0x966F # <CJK>
+0xD84C 0x96BF # <CJK>
+0xD84D 0x976A # <CJK>
+0xD84E 0x9804 # <CJK>
+0xD84F 0x98E5 # <CJK>
+0xD850 0x9997 # <CJK>
+0xD851 0x509B # <CJK>
+0xD852 0x5095 # <CJK>
+0xD853 0x5094 # <CJK>
+0xD854 0x509E # <CJK>
+0xD855 0x508B # <CJK>
+0xD856 0x50A3 # <CJK>
+0xD857 0x5083 # <CJK>
+0xD858 0x508C # <CJK>
+0xD859 0x508E # <CJK>
+0xD85A 0x509D # <CJK>
+0xD85B 0x5068 # <CJK>
+0xD85C 0x509C # <CJK>
+0xD85D 0x5092 # <CJK>
+0xD85E 0x5082 # <CJK>
+0xD85F 0x5087 # <CJK>
+0xD860 0x515F # <CJK>
+0xD861 0x51D4 # <CJK>
+0xD862 0x5312 # <CJK>
+0xD863 0x5311 # <CJK>
+0xD864 0x53A4 # <CJK>
+0xD865 0x53A7 # <CJK>
+0xD866 0x5591 # <CJK>
+0xD867 0x55A8 # <CJK>
+0xD868 0x55A5 # <CJK>
+0xD869 0x55AD # <CJK>
+0xD86A 0x5577 # <CJK>
+0xD86B 0x5645 # <CJK>
+0xD86C 0x55A2 # <CJK>
+0xD86D 0x5593 # <CJK>
+0xD86E 0x5588 # <CJK>
+0xD86F 0x558F # <CJK>
+0xD870 0x55B5 # <CJK>
+0xD871 0x5581 # <CJK>
+0xD872 0x55A3 # <CJK>
+0xD873 0x5592 # <CJK>
+0xD874 0x55A4 # <CJK>
+0xD875 0x557D # <CJK>
+0xD876 0x558C # <CJK>
+0xD877 0x55A6 # <CJK>
+0xD878 0x557F # <CJK>
+0xD879 0x5595 # <CJK>
+0xD87A 0x55A1 # <CJK>
+0xD87B 0x558E # <CJK>
+0xD87C 0x570C # <CJK>
+0xD87D 0x5829 # <CJK>
+0xD87E 0x5837 # <CJK>
+0xD8A1 0x5819 # <CJK>
+0xD8A2 0x581E # <CJK>
+0xD8A3 0x5827 # <CJK>
+0xD8A4 0x5823 # <CJK>
+0xD8A5 0x5828 # <CJK>
+0xD8A6 0x57F5 # <CJK>
+0xD8A7 0x5848 # <CJK>
+0xD8A8 0x5825 # <CJK>
+0xD8A9 0x581C # <CJK>
+0xD8AA 0x581B # <CJK>
+0xD8AB 0x5833 # <CJK>
+0xD8AC 0x583F # <CJK>
+0xD8AD 0x5836 # <CJK>
+0xD8AE 0x582E # <CJK>
+0xD8AF 0x5839 # <CJK>
+0xD8B0 0x5838 # <CJK>
+0xD8B1 0x582D # <CJK>
+0xD8B2 0x582C # <CJK>
+0xD8B3 0x583B # <CJK>
+0xD8B4 0x5961 # <CJK>
+0xD8B5 0x5AAF # <CJK>
+0xD8B6 0x5A94 # <CJK>
+0xD8B7 0x5A9F # <CJK>
+0xD8B8 0x5A7A # <CJK>
+0xD8B9 0x5AA2 # <CJK>
+0xD8BA 0x5A9E # <CJK>
+0xD8BB 0x5A78 # <CJK>
+0xD8BC 0x5AA6 # <CJK>
+0xD8BD 0x5A7C # <CJK>
+0xD8BE 0x5AA5 # <CJK>
+0xD8BF 0x5AAC # <CJK>
+0xD8C0 0x5A95 # <CJK>
+0xD8C1 0x5AAE # <CJK>
+0xD8C2 0x5A37 # <CJK>
+0xD8C3 0x5A84 # <CJK>
+0xD8C4 0x5A8A # <CJK>
+0xD8C5 0x5A97 # <CJK>
+0xD8C6 0x5A83 # <CJK>
+0xD8C7 0x5A8B # <CJK>
+0xD8C8 0x5AA9 # <CJK>
+0xD8C9 0x5A7B # <CJK>
+0xD8CA 0x5A7D # <CJK>
+0xD8CB 0x5A8C # <CJK>
+0xD8CC 0x5A9C # <CJK>
+0xD8CD 0x5A8F # <CJK>
+0xD8CE 0x5A93 # <CJK>
+0xD8CF 0x5A9D # <CJK>
+0xD8D0 0x5BEA # <CJK>
+0xD8D1 0x5BCD # <CJK>
+0xD8D2 0x5BCB # <CJK>
+0xD8D3 0x5BD4 # <CJK>
+0xD8D4 0x5BD1 # <CJK>
+0xD8D5 0x5BCA # <CJK>
+0xD8D6 0x5BCE # <CJK>
+0xD8D7 0x5C0C # <CJK>
+0xD8D8 0x5C30 # <CJK>
+0xD8D9 0x5D37 # <CJK>
+0xD8DA 0x5D43 # <CJK>
+0xD8DB 0x5D6B # <CJK>
+0xD8DC 0x5D41 # <CJK>
+0xD8DD 0x5D4B # <CJK>
+0xD8DE 0x5D3F # <CJK>
+0xD8DF 0x5D35 # <CJK>
+0xD8E0 0x5D51 # <CJK>
+0xD8E1 0x5D4E # <CJK>
+0xD8E2 0x5D55 # <CJK>
+0xD8E3 0x5D33 # <CJK>
+0xD8E4 0x5D3A # <CJK>
+0xD8E5 0x5D52 # <CJK>
+0xD8E6 0x5D3D # <CJK>
+0xD8E7 0x5D31 # <CJK>
+0xD8E8 0x5D59 # <CJK>
+0xD8E9 0x5D42 # <CJK>
+0xD8EA 0x5D39 # <CJK>
+0xD8EB 0x5D49 # <CJK>
+0xD8EC 0x5D38 # <CJK>
+0xD8ED 0x5D3C # <CJK>
+0xD8EE 0x5D32 # <CJK>
+0xD8EF 0x5D36 # <CJK>
+0xD8F0 0x5D40 # <CJK>
+0xD8F1 0x5D45 # <CJK>
+0xD8F2 0x5E44 # <CJK>
+0xD8F3 0x5E41 # <CJK>
+0xD8F4 0x5F58 # <CJK>
+0xD8F5 0x5FA6 # <CJK>
+0xD8F6 0x5FA5 # <CJK>
+0xD8F7 0x5FAB # <CJK>
+0xD8F8 0x60C9 # <CJK>
+0xD8F9 0x60B9 # <CJK>
+0xD8FA 0x60CC # <CJK>
+0xD8FB 0x60E2 # <CJK>
+0xD8FC 0x60CE # <CJK>
+0xD8FD 0x60C4 # <CJK>
+0xD8FE 0x6114 # <CJK>
+0xD940 0x60F2 # <CJK>
+0xD941 0x610A # <CJK>
+0xD942 0x6116 # <CJK>
+0xD943 0x6105 # <CJK>
+0xD944 0x60F5 # <CJK>
+0xD945 0x6113 # <CJK>
+0xD946 0x60F8 # <CJK>
+0xD947 0x60FC # <CJK>
+0xD948 0x60FE # <CJK>
+0xD949 0x60C1 # <CJK>
+0xD94A 0x6103 # <CJK>
+0xD94B 0x6118 # <CJK>
+0xD94C 0x611D # <CJK>
+0xD94D 0x6110 # <CJK>
+0xD94E 0x60FF # <CJK>
+0xD94F 0x6104 # <CJK>
+0xD950 0x610B # <CJK>
+0xD951 0x624A # <CJK>
+0xD952 0x6394 # <CJK>
+0xD953 0x63B1 # <CJK>
+0xD954 0x63B0 # <CJK>
+0xD955 0x63CE # <CJK>
+0xD956 0x63E5 # <CJK>
+0xD957 0x63E8 # <CJK>
+0xD958 0x63EF # <CJK>
+0xD959 0x63C3 # <CJK>
+0xD95A 0x649D # <CJK>
+0xD95B 0x63F3 # <CJK>
+0xD95C 0x63CA # <CJK>
+0xD95D 0x63E0 # <CJK>
+0xD95E 0x63F6 # <CJK>
+0xD95F 0x63D5 # <CJK>
+0xD960 0x63F2 # <CJK>
+0xD961 0x63F5 # <CJK>
+0xD962 0x6461 # <CJK>
+0xD963 0x63DF # <CJK>
+0xD964 0x63BE # <CJK>
+0xD965 0x63DD # <CJK>
+0xD966 0x63DC # <CJK>
+0xD967 0x63C4 # <CJK>
+0xD968 0x63D8 # <CJK>
+0xD969 0x63D3 # <CJK>
+0xD96A 0x63C2 # <CJK>
+0xD96B 0x63C7 # <CJK>
+0xD96C 0x63CC # <CJK>
+0xD96D 0x63CB # <CJK>
+0xD96E 0x63C8 # <CJK>
+0xD96F 0x63F0 # <CJK>
+0xD970 0x63D7 # <CJK>
+0xD971 0x63D9 # <CJK>
+0xD972 0x6532 # <CJK>
+0xD973 0x6567 # <CJK>
+0xD974 0x656A # <CJK>
+0xD975 0x6564 # <CJK>
+0xD976 0x655C # <CJK>
+0xD977 0x6568 # <CJK>
+0xD978 0x6565 # <CJK>
+0xD979 0x658C # <CJK>
+0xD97A 0x659D # <CJK>
+0xD97B 0x659E # <CJK>
+0xD97C 0x65AE # <CJK>
+0xD97D 0x65D0 # <CJK>
+0xD97E 0x65D2 # <CJK>
+0xD9A1 0x667C # <CJK>
+0xD9A2 0x666C # <CJK>
+0xD9A3 0x667B # <CJK>
+0xD9A4 0x6680 # <CJK>
+0xD9A5 0x6671 # <CJK>
+0xD9A6 0x6679 # <CJK>
+0xD9A7 0x666A # <CJK>
+0xD9A8 0x6672 # <CJK>
+0xD9A9 0x6701 # <CJK>
+0xD9AA 0x690C # <CJK>
+0xD9AB 0x68D3 # <CJK>
+0xD9AC 0x6904 # <CJK>
+0xD9AD 0x68DC # <CJK>
+0xD9AE 0x692A # <CJK>
+0xD9AF 0x68EC # <CJK>
+0xD9B0 0x68EA # <CJK>
+0xD9B1 0x68F1 # <CJK>
+0xD9B2 0x690F # <CJK>
+0xD9B3 0x68D6 # <CJK>
+0xD9B4 0x68F7 # <CJK>
+0xD9B5 0x68EB # <CJK>
+0xD9B6 0x68E4 # <CJK>
+0xD9B7 0x68F6 # <CJK>
+0xD9B8 0x6913 # <CJK>
+0xD9B9 0x6910 # <CJK>
+0xD9BA 0x68F3 # <CJK>
+0xD9BB 0x68E1 # <CJK>
+0xD9BC 0x6907 # <CJK>
+0xD9BD 0x68CC # <CJK>
+0xD9BE 0x6908 # <CJK>
+0xD9BF 0x6970 # <CJK>
+0xD9C0 0x68B4 # <CJK>
+0xD9C1 0x6911 # <CJK>
+0xD9C2 0x68EF # <CJK>
+0xD9C3 0x68C6 # <CJK>
+0xD9C4 0x6914 # <CJK>
+0xD9C5 0x68F8 # <CJK>
+0xD9C6 0x68D0 # <CJK>
+0xD9C7 0x68FD # <CJK>
+0xD9C8 0x68FC # <CJK>
+0xD9C9 0x68E8 # <CJK>
+0xD9CA 0x690B # <CJK>
+0xD9CB 0x690A # <CJK>
+0xD9CC 0x6917 # <CJK>
+0xD9CD 0x68CE # <CJK>
+0xD9CE 0x68C8 # <CJK>
+0xD9CF 0x68DD # <CJK>
+0xD9D0 0x68DE # <CJK>
+0xD9D1 0x68E6 # <CJK>
+0xD9D2 0x68F4 # <CJK>
+0xD9D3 0x68D1 # <CJK>
+0xD9D4 0x6906 # <CJK>
+0xD9D5 0x68D4 # <CJK>
+0xD9D6 0x68E9 # <CJK>
+0xD9D7 0x6915 # <CJK>
+0xD9D8 0x6925 # <CJK>
+0xD9D9 0x68C7 # <CJK>
+0xD9DA 0x6B39 # <CJK>
+0xD9DB 0x6B3B # <CJK>
+0xD9DC 0x6B3F # <CJK>
+0xD9DD 0x6B3C # <CJK>
+0xD9DE 0x6B94 # <CJK>
+0xD9DF 0x6B97 # <CJK>
+0xD9E0 0x6B99 # <CJK>
+0xD9E1 0x6B95 # <CJK>
+0xD9E2 0x6BBD # <CJK>
+0xD9E3 0x6BF0 # <CJK>
+0xD9E4 0x6BF2 # <CJK>
+0xD9E5 0x6BF3 # <CJK>
+0xD9E6 0x6C30 # <CJK>
+0xD9E7 0x6DFC # <CJK>
+0xD9E8 0x6E46 # <CJK>
+0xD9E9 0x6E47 # <CJK>
+0xD9EA 0x6E1F # <CJK>
+0xD9EB 0x6E49 # <CJK>
+0xD9EC 0x6E88 # <CJK>
+0xD9ED 0x6E3C # <CJK>
+0xD9EE 0x6E3D # <CJK>
+0xD9EF 0x6E45 # <CJK>
+0xD9F0 0x6E62 # <CJK>
+0xD9F1 0x6E2B # <CJK>
+0xD9F2 0x6E3F # <CJK>
+0xD9F3 0x6E41 # <CJK>
+0xD9F4 0x6E5D # <CJK>
+0xD9F5 0x6E73 # <CJK>
+0xD9F6 0x6E1C # <CJK>
+0xD9F7 0x6E33 # <CJK>
+0xD9F8 0x6E4B # <CJK>
+0xD9F9 0x6E40 # <CJK>
+0xD9FA 0x6E51 # <CJK>
+0xD9FB 0x6E3B # <CJK>
+0xD9FC 0x6E03 # <CJK>
+0xD9FD 0x6E2E # <CJK>
+0xD9FE 0x6E5E # <CJK>
+0xDA40 0x6E68 # <CJK>
+0xDA41 0x6E5C # <CJK>
+0xDA42 0x6E61 # <CJK>
+0xDA43 0x6E31 # <CJK>
+0xDA44 0x6E28 # <CJK>
+0xDA45 0x6E60 # <CJK>
+0xDA46 0x6E71 # <CJK>
+0xDA47 0x6E6B # <CJK>
+0xDA48 0x6E39 # <CJK>
+0xDA49 0x6E22 # <CJK>
+0xDA4A 0x6E30 # <CJK>
+0xDA4B 0x6E53 # <CJK>
+0xDA4C 0x6E65 # <CJK>
+0xDA4D 0x6E27 # <CJK>
+0xDA4E 0x6E78 # <CJK>
+0xDA4F 0x6E64 # <CJK>
+0xDA50 0x6E77 # <CJK>
+0xDA51 0x6E55 # <CJK>
+0xDA52 0x6E79 # <CJK>
+0xDA53 0x6E52 # <CJK>
+0xDA54 0x6E66 # <CJK>
+0xDA55 0x6E35 # <CJK>
+0xDA56 0x6E36 # <CJK>
+0xDA57 0x6E5A # <CJK>
+0xDA58 0x7120 # <CJK>
+0xDA59 0x711E # <CJK>
+0xDA5A 0x712F # <CJK>
+0xDA5B 0x70FB # <CJK>
+0xDA5C 0x712E # <CJK>
+0xDA5D 0x7131 # <CJK>
+0xDA5E 0x7123 # <CJK>
+0xDA5F 0x7125 # <CJK>
+0xDA60 0x7122 # <CJK>
+0xDA61 0x7132 # <CJK>
+0xDA62 0x711F # <CJK>
+0xDA63 0x7128 # <CJK>
+0xDA64 0x713A # <CJK>
+0xDA65 0x711B # <CJK>
+0xDA66 0x724B # <CJK>
+0xDA67 0x725A # <CJK>
+0xDA68 0x7288 # <CJK>
+0xDA69 0x7289 # <CJK>
+0xDA6A 0x7286 # <CJK>
+0xDA6B 0x7285 # <CJK>
+0xDA6C 0x728B # <CJK>
+0xDA6D 0x7312 # <CJK>
+0xDA6E 0x730B # <CJK>
+0xDA6F 0x7330 # <CJK>
+0xDA70 0x7322 # <CJK>
+0xDA71 0x7331 # <CJK>
+0xDA72 0x7333 # <CJK>
+0xDA73 0x7327 # <CJK>
+0xDA74 0x7332 # <CJK>
+0xDA75 0x732D # <CJK>
+0xDA76 0x7326 # <CJK>
+0xDA77 0x7323 # <CJK>
+0xDA78 0x7335 # <CJK>
+0xDA79 0x730C # <CJK>
+0xDA7A 0x742E # <CJK>
+0xDA7B 0x742C # <CJK>
+0xDA7C 0x7430 # <CJK>
+0xDA7D 0x742B # <CJK>
+0xDA7E 0x7416 # <CJK>
+0xDAA1 0x741A # <CJK>
+0xDAA2 0x7421 # <CJK>
+0xDAA3 0x742D # <CJK>
+0xDAA4 0x7431 # <CJK>
+0xDAA5 0x7424 # <CJK>
+0xDAA6 0x7423 # <CJK>
+0xDAA7 0x741D # <CJK>
+0xDAA8 0x7429 # <CJK>
+0xDAA9 0x7420 # <CJK>
+0xDAAA 0x7432 # <CJK>
+0xDAAB 0x74FB # <CJK>
+0xDAAC 0x752F # <CJK>
+0xDAAD 0x756F # <CJK>
+0xDAAE 0x756C # <CJK>
+0xDAAF 0x75E7 # <CJK>
+0xDAB0 0x75DA # <CJK>
+0xDAB1 0x75E1 # <CJK>
+0xDAB2 0x75E6 # <CJK>
+0xDAB3 0x75DD # <CJK>
+0xDAB4 0x75DF # <CJK>
+0xDAB5 0x75E4 # <CJK>
+0xDAB6 0x75D7 # <CJK>
+0xDAB7 0x7695 # <CJK>
+0xDAB8 0x7692 # <CJK>
+0xDAB9 0x76DA # <CJK>
+0xDABA 0x7746 # <CJK>
+0xDABB 0x7747 # <CJK>
+0xDABC 0x7744 # <CJK>
+0xDABD 0x774D # <CJK>
+0xDABE 0x7745 # <CJK>
+0xDABF 0x774A # <CJK>
+0xDAC0 0x774E # <CJK>
+0xDAC1 0x774B # <CJK>
+0xDAC2 0x774C # <CJK>
+0xDAC3 0x77DE # <CJK>
+0xDAC4 0x77EC # <CJK>
+0xDAC5 0x7860 # <CJK>
+0xDAC6 0x7864 # <CJK>
+0xDAC7 0x7865 # <CJK>
+0xDAC8 0x785C # <CJK>
+0xDAC9 0x786D # <CJK>
+0xDACA 0x7871 # <CJK>
+0xDACB 0x786A # <CJK>
+0xDACC 0x786E # <CJK>
+0xDACD 0x7870 # <CJK>
+0xDACE 0x7869 # <CJK>
+0xDACF 0x7868 # <CJK>
+0xDAD0 0x785E # <CJK>
+0xDAD1 0x7862 # <CJK>
+0xDAD2 0x7974 # <CJK>
+0xDAD3 0x7973 # <CJK>
+0xDAD4 0x7972 # <CJK>
+0xDAD5 0x7970 # <CJK>
+0xDAD6 0x7A02 # <CJK>
+0xDAD7 0x7A0A # <CJK>
+0xDAD8 0x7A03 # <CJK>
+0xDAD9 0x7A0C # <CJK>
+0xDADA 0x7A04 # <CJK>
+0xDADB 0x7A99 # <CJK>
+0xDADC 0x7AE6 # <CJK>
+0xDADD 0x7AE4 # <CJK>
+0xDADE 0x7B4A # <CJK>
+0xDADF 0x7B3B # <CJK>
+0xDAE0 0x7B44 # <CJK>
+0xDAE1 0x7B48 # <CJK>
+0xDAE2 0x7B4C # <CJK>
+0xDAE3 0x7B4E # <CJK>
+0xDAE4 0x7B40 # <CJK>
+0xDAE5 0x7B58 # <CJK>
+0xDAE6 0x7B45 # <CJK>
+0xDAE7 0x7CA2 # <CJK>
+0xDAE8 0x7C9E # <CJK>
+0xDAE9 0x7CA8 # <CJK>
+0xDAEA 0x7CA1 # <CJK>
+0xDAEB 0x7D58 # <CJK>
+0xDAEC 0x7D6F # <CJK>
+0xDAED 0x7D63 # <CJK>
+0xDAEE 0x7D53 # <CJK>
+0xDAEF 0x7D56 # <CJK>
+0xDAF0 0x7D67 # <CJK>
+0xDAF1 0x7D6A # <CJK>
+0xDAF2 0x7D4F # <CJK>
+0xDAF3 0x7D6D # <CJK>
+0xDAF4 0x7D5C # <CJK>
+0xDAF5 0x7D6B # <CJK>
+0xDAF6 0x7D52 # <CJK>
+0xDAF7 0x7D54 # <CJK>
+0xDAF8 0x7D69 # <CJK>
+0xDAF9 0x7D51 # <CJK>
+0xDAFA 0x7D5F # <CJK>
+0xDAFB 0x7D4E # <CJK>
+0xDAFC 0x7F3E # <CJK>
+0xDAFD 0x7F3F # <CJK>
+0xDAFE 0x7F65 # <CJK>
+0xDB40 0x7F66 # <CJK>
+0xDB41 0x7FA2 # <CJK>
+0xDB42 0x7FA0 # <CJK>
+0xDB43 0x7FA1 # <CJK>
+0xDB44 0x7FD7 # <CJK>
+0xDB45 0x8051 # <CJK>
+0xDB46 0x804F # <CJK>
+0xDB47 0x8050 # <CJK>
+0xDB48 0x80FE # <CJK>
+0xDB49 0x80D4 # <CJK>
+0xDB4A 0x8143 # <CJK>
+0xDB4B 0x814A # <CJK>
+0xDB4C 0x8152 # <CJK>
+0xDB4D 0x814F # <CJK>
+0xDB4E 0x8147 # <CJK>
+0xDB4F 0x813D # <CJK>
+0xDB50 0x814D # <CJK>
+0xDB51 0x813A # <CJK>
+0xDB52 0x81E6 # <CJK>
+0xDB53 0x81EE # <CJK>
+0xDB54 0x81F7 # <CJK>
+0xDB55 0x81F8 # <CJK>
+0xDB56 0x81F9 # <CJK>
+0xDB57 0x8204 # <CJK>
+0xDB58 0x823C # <CJK>
+0xDB59 0x823D # <CJK>
+0xDB5A 0x823F # <CJK>
+0xDB5B 0x8275 # <CJK>
+0xDB5C 0x833B # <CJK>
+0xDB5D 0x83CF # <CJK>
+0xDB5E 0x83F9 # <CJK>
+0xDB5F 0x8423 # <CJK>
+0xDB60 0x83C0 # <CJK>
+0xDB61 0x83E8 # <CJK>
+0xDB62 0x8412 # <CJK>
+0xDB63 0x83E7 # <CJK>
+0xDB64 0x83E4 # <CJK>
+0xDB65 0x83FC # <CJK>
+0xDB66 0x83F6 # <CJK>
+0xDB67 0x8410 # <CJK>
+0xDB68 0x83C6 # <CJK>
+0xDB69 0x83C8 # <CJK>
+0xDB6A 0x83EB # <CJK>
+0xDB6B 0x83E3 # <CJK>
+0xDB6C 0x83BF # <CJK>
+0xDB6D 0x8401 # <CJK>
+0xDB6E 0x83DD # <CJK>
+0xDB6F 0x83E5 # <CJK>
+0xDB70 0x83D8 # <CJK>
+0xDB71 0x83FF # <CJK>
+0xDB72 0x83E1 # <CJK>
+0xDB73 0x83CB # <CJK>
+0xDB74 0x83CE # <CJK>
+0xDB75 0x83D6 # <CJK>
+0xDB76 0x83F5 # <CJK>
+0xDB77 0x83C9 # <CJK>
+0xDB78 0x8409 # <CJK>
+0xDB79 0x840F # <CJK>
+0xDB7A 0x83DE # <CJK>
+0xDB7B 0x8411 # <CJK>
+0xDB7C 0x8406 # <CJK>
+0xDB7D 0x83C2 # <CJK>
+0xDB7E 0x83F3 # <CJK>
+0xDBA1 0x83D5 # <CJK>
+0xDBA2 0x83FA # <CJK>
+0xDBA3 0x83C7 # <CJK>
+0xDBA4 0x83D1 # <CJK>
+0xDBA5 0x83EA # <CJK>
+0xDBA6 0x8413 # <CJK>
+0xDBA7 0x83C3 # <CJK>
+0xDBA8 0x83EC # <CJK>
+0xDBA9 0x83EE # <CJK>
+0xDBAA 0x83C4 # <CJK>
+0xDBAB 0x83FB # <CJK>
+0xDBAC 0x83D7 # <CJK>
+0xDBAD 0x83E2 # <CJK>
+0xDBAE 0x841B # <CJK>
+0xDBAF 0x83DB # <CJK>
+0xDBB0 0x83FE # <CJK>
+0xDBB1 0x86D8 # <CJK>
+0xDBB2 0x86E2 # <CJK>
+0xDBB3 0x86E6 # <CJK>
+0xDBB4 0x86D3 # <CJK>
+0xDBB5 0x86E3 # <CJK>
+0xDBB6 0x86DA # <CJK>
+0xDBB7 0x86EA # <CJK>
+0xDBB8 0x86DD # <CJK>
+0xDBB9 0x86EB # <CJK>
+0xDBBA 0x86DC # <CJK>
+0xDBBB 0x86EC # <CJK>
+0xDBBC 0x86E9 # <CJK>
+0xDBBD 0x86D7 # <CJK>
+0xDBBE 0x86E8 # <CJK>
+0xDBBF 0x86D1 # <CJK>
+0xDBC0 0x8848 # <CJK>
+0xDBC1 0x8856 # <CJK>
+0xDBC2 0x8855 # <CJK>
+0xDBC3 0x88BA # <CJK>
+0xDBC4 0x88D7 # <CJK>
+0xDBC5 0x88B9 # <CJK>
+0xDBC6 0x88B8 # <CJK>
+0xDBC7 0x88C0 # <CJK>
+0xDBC8 0x88BE # <CJK>
+0xDBC9 0x88B6 # <CJK>
+0xDBCA 0x88BC # <CJK>
+0xDBCB 0x88B7 # <CJK>
+0xDBCC 0x88BD # <CJK>
+0xDBCD 0x88B2 # <CJK>
+0xDBCE 0x8901 # <CJK>
+0xDBCF 0x88C9 # <CJK>
+0xDBD0 0x8995 # <CJK>
+0xDBD1 0x8998 # <CJK>
+0xDBD2 0x8997 # <CJK>
+0xDBD3 0x89DD # <CJK>
+0xDBD4 0x89DA # <CJK>
+0xDBD5 0x89DB # <CJK>
+0xDBD6 0x8A4E # <CJK>
+0xDBD7 0x8A4D # <CJK>
+0xDBD8 0x8A39 # <CJK>
+0xDBD9 0x8A59 # <CJK>
+0xDBDA 0x8A40 # <CJK>
+0xDBDB 0x8A57 # <CJK>
+0xDBDC 0x8A58 # <CJK>
+0xDBDD 0x8A44 # <CJK>
+0xDBDE 0x8A45 # <CJK>
+0xDBDF 0x8A52 # <CJK>
+0xDBE0 0x8A48 # <CJK>
+0xDBE1 0x8A51 # <CJK>
+0xDBE2 0x8A4A # <CJK>
+0xDBE3 0x8A4C # <CJK>
+0xDBE4 0x8A4F # <CJK>
+0xDBE5 0x8C5F # <CJK>
+0xDBE6 0x8C81 # <CJK>
+0xDBE7 0x8C80 # <CJK>
+0xDBE8 0x8CBA # <CJK>
+0xDBE9 0x8CBE # <CJK>
+0xDBEA 0x8CB0 # <CJK>
+0xDBEB 0x8CB9 # <CJK>
+0xDBEC 0x8CB5 # <CJK>
+0xDBED 0x8D84 # <CJK>
+0xDBEE 0x8D80 # <CJK>
+0xDBEF 0x8D89 # <CJK>
+0xDBF0 0x8DD8 # <CJK>
+0xDBF1 0x8DD3 # <CJK>
+0xDBF2 0x8DCD # <CJK>
+0xDBF3 0x8DC7 # <CJK>
+0xDBF4 0x8DD6 # <CJK>
+0xDBF5 0x8DDC # <CJK>
+0xDBF6 0x8DCF # <CJK>
+0xDBF7 0x8DD5 # <CJK>
+0xDBF8 0x8DD9 # <CJK>
+0xDBF9 0x8DC8 # <CJK>
+0xDBFA 0x8DD7 # <CJK>
+0xDBFB 0x8DC5 # <CJK>
+0xDBFC 0x8EEF # <CJK>
+0xDBFD 0x8EF7 # <CJK>
+0xDBFE 0x8EFA # <CJK>
+0xDC40 0x8EF9 # <CJK>
+0xDC41 0x8EE6 # <CJK>
+0xDC42 0x8EEE # <CJK>
+0xDC43 0x8EE5 # <CJK>
+0xDC44 0x8EF5 # <CJK>
+0xDC45 0x8EE7 # <CJK>
+0xDC46 0x8EE8 # <CJK>
+0xDC47 0x8EF6 # <CJK>
+0xDC48 0x8EEB # <CJK>
+0xDC49 0x8EF1 # <CJK>
+0xDC4A 0x8EEC # <CJK>
+0xDC4B 0x8EF4 # <CJK>
+0xDC4C 0x8EE9 # <CJK>
+0xDC4D 0x902D # <CJK>
+0xDC4E 0x9034 # <CJK>
+0xDC4F 0x902F # <CJK>
+0xDC50 0x9106 # <CJK>
+0xDC51 0x912C # <CJK>
+0xDC52 0x9104 # <CJK>
+0xDC53 0x90FF # <CJK>
+0xDC54 0x90FC # <CJK>
+0xDC55 0x9108 # <CJK>
+0xDC56 0x90F9 # <CJK>
+0xDC57 0x90FB # <CJK>
+0xDC58 0x9101 # <CJK>
+0xDC59 0x9100 # <CJK>
+0xDC5A 0x9107 # <CJK>
+0xDC5B 0x9105 # <CJK>
+0xDC5C 0x9103 # <CJK>
+0xDC5D 0x9161 # <CJK>
+0xDC5E 0x9164 # <CJK>
+0xDC5F 0x915F # <CJK>
+0xDC60 0x9162 # <CJK>
+0xDC61 0x9160 # <CJK>
+0xDC62 0x9201 # <CJK>
+0xDC63 0x920A # <CJK>
+0xDC64 0x9225 # <CJK>
+0xDC65 0x9203 # <CJK>
+0xDC66 0x921A # <CJK>
+0xDC67 0x9226 # <CJK>
+0xDC68 0x920F # <CJK>
+0xDC69 0x920C # <CJK>
+0xDC6A 0x9200 # <CJK>
+0xDC6B 0x9212 # <CJK>
+0xDC6C 0x91FF # <CJK>
+0xDC6D 0x91FD # <CJK>
+0xDC6E 0x9206 # <CJK>
+0xDC6F 0x9204 # <CJK>
+0xDC70 0x9227 # <CJK>
+0xDC71 0x9202 # <CJK>
+0xDC72 0x921C # <CJK>
+0xDC73 0x9224 # <CJK>
+0xDC74 0x9219 # <CJK>
+0xDC75 0x9217 # <CJK>
+0xDC76 0x9205 # <CJK>
+0xDC77 0x9216 # <CJK>
+0xDC78 0x957B # <CJK>
+0xDC79 0x958D # <CJK>
+0xDC7A 0x958C # <CJK>
+0xDC7B 0x9590 # <CJK>
+0xDC7C 0x9687 # <CJK>
+0xDC7D 0x967E # <CJK>
+0xDC7E 0x9688 # <CJK>
+0xDCA1 0x9689 # <CJK>
+0xDCA2 0x9683 # <CJK>
+0xDCA3 0x9680 # <CJK>
+0xDCA4 0x96C2 # <CJK>
+0xDCA5 0x96C8 # <CJK>
+0xDCA6 0x96C3 # <CJK>
+0xDCA7 0x96F1 # <CJK>
+0xDCA8 0x96F0 # <CJK>
+0xDCA9 0x976C # <CJK>
+0xDCAA 0x9770 # <CJK>
+0xDCAB 0x976E # <CJK>
+0xDCAC 0x9807 # <CJK>
+0xDCAD 0x98A9 # <CJK>
+0xDCAE 0x98EB # <CJK>
+0xDCAF 0x9CE6 # <CJK>
+0xDCB0 0x9EF9 # <CJK>
+0xDCB1 0x4E83 # <CJK>
+0xDCB2 0x4E84 # <CJK>
+0xDCB3 0x4EB6 # <CJK>
+0xDCB4 0x50BD # <CJK>
+0xDCB5 0x50BF # <CJK>
+0xDCB6 0x50C6 # <CJK>
+0xDCB7 0x50AE # <CJK>
+0xDCB8 0x50C4 # <CJK>
+0xDCB9 0x50CA # <CJK>
+0xDCBA 0x50B4 # <CJK>
+0xDCBB 0x50C8 # <CJK>
+0xDCBC 0x50C2 # <CJK>
+0xDCBD 0x50B0 # <CJK>
+0xDCBE 0x50C1 # <CJK>
+0xDCBF 0x50BA # <CJK>
+0xDCC0 0x50B1 # <CJK>
+0xDCC1 0x50CB # <CJK>
+0xDCC2 0x50C9 # <CJK>
+0xDCC3 0x50B6 # <CJK>
+0xDCC4 0x50B8 # <CJK>
+0xDCC5 0x51D7 # <CJK>
+0xDCC6 0x527A # <CJK>
+0xDCC7 0x5278 # <CJK>
+0xDCC8 0x527B # <CJK>
+0xDCC9 0x527C # <CJK>
+0xDCCA 0x55C3 # <CJK>
+0xDCCB 0x55DB # <CJK>
+0xDCCC 0x55CC # <CJK>
+0xDCCD 0x55D0 # <CJK>
+0xDCCE 0x55CB # <CJK>
+0xDCCF 0x55CA # <CJK>
+0xDCD0 0x55DD # <CJK>
+0xDCD1 0x55C0 # <CJK>
+0xDCD2 0x55D4 # <CJK>
+0xDCD3 0x55C4 # <CJK>
+0xDCD4 0x55E9 # <CJK>
+0xDCD5 0x55BF # <CJK>
+0xDCD6 0x55D2 # <CJK>
+0xDCD7 0x558D # <CJK>
+0xDCD8 0x55CF # <CJK>
+0xDCD9 0x55D5 # <CJK>
+0xDCDA 0x55E2 # <CJK>
+0xDCDB 0x55D6 # <CJK>
+0xDCDC 0x55C8 # <CJK>
+0xDCDD 0x55F2 # <CJK>
+0xDCDE 0x55CD # <CJK>
+0xDCDF 0x55D9 # <CJK>
+0xDCE0 0x55C2 # <CJK>
+0xDCE1 0x5714 # <CJK>
+0xDCE2 0x5853 # <CJK>
+0xDCE3 0x5868 # <CJK>
+0xDCE4 0x5864 # <CJK>
+0xDCE5 0x584F # <CJK>
+0xDCE6 0x584D # <CJK>
+0xDCE7 0x5849 # <CJK>
+0xDCE8 0x586F # <CJK>
+0xDCE9 0x5855 # <CJK>
+0xDCEA 0x584E # <CJK>
+0xDCEB 0x585D # <CJK>
+0xDCEC 0x5859 # <CJK>
+0xDCED 0x5865 # <CJK>
+0xDCEE 0x585B # <CJK>
+0xDCEF 0x583D # <CJK>
+0xDCF0 0x5863 # <CJK>
+0xDCF1 0x5871 # <CJK>
+0xDCF2 0x58FC # <CJK>
+0xDCF3 0x5AC7 # <CJK>
+0xDCF4 0x5AC4 # <CJK>
+0xDCF5 0x5ACB # <CJK>
+0xDCF6 0x5ABA # <CJK>
+0xDCF7 0x5AB8 # <CJK>
+0xDCF8 0x5AB1 # <CJK>
+0xDCF9 0x5AB5 # <CJK>
+0xDCFA 0x5AB0 # <CJK>
+0xDCFB 0x5ABF # <CJK>
+0xDCFC 0x5AC8 # <CJK>
+0xDCFD 0x5ABB # <CJK>
+0xDCFE 0x5AC6 # <CJK>
+0xDD40 0x5AB7 # <CJK>
+0xDD41 0x5AC0 # <CJK>
+0xDD42 0x5ACA # <CJK>
+0xDD43 0x5AB4 # <CJK>
+0xDD44 0x5AB6 # <CJK>
+0xDD45 0x5ACD # <CJK>
+0xDD46 0x5AB9 # <CJK>
+0xDD47 0x5A90 # <CJK>
+0xDD48 0x5BD6 # <CJK>
+0xDD49 0x5BD8 # <CJK>
+0xDD4A 0x5BD9 # <CJK>
+0xDD4B 0x5C1F # <CJK>
+0xDD4C 0x5C33 # <CJK>
+0xDD4D 0x5D71 # <CJK>
+0xDD4E 0x5D63 # <CJK>
+0xDD4F 0x5D4A # <CJK>
+0xDD50 0x5D65 # <CJK>
+0xDD51 0x5D72 # <CJK>
+0xDD52 0x5D6C # <CJK>
+0xDD53 0x5D5E # <CJK>
+0xDD54 0x5D68 # <CJK>
+0xDD55 0x5D67 # <CJK>
+0xDD56 0x5D62 # <CJK>
+0xDD57 0x5DF0 # <CJK>
+0xDD58 0x5E4F # <CJK>
+0xDD59 0x5E4E # <CJK>
+0xDD5A 0x5E4A # <CJK>
+0xDD5B 0x5E4D # <CJK>
+0xDD5C 0x5E4B # <CJK>
+0xDD5D 0x5EC5 # <CJK>
+0xDD5E 0x5ECC # <CJK>
+0xDD5F 0x5EC6 # <CJK>
+0xDD60 0x5ECB # <CJK>
+0xDD61 0x5EC7 # <CJK>
+0xDD62 0x5F40 # <CJK>
+0xDD63 0x5FAF # <CJK>
+0xDD64 0x5FAD # <CJK>
+0xDD65 0x60F7 # <CJK>
+0xDD66 0x6149 # <CJK>
+0xDD67 0x614A # <CJK>
+0xDD68 0x612B # <CJK>
+0xDD69 0x6145 # <CJK>
+0xDD6A 0x6136 # <CJK>
+0xDD6B 0x6132 # <CJK>
+0xDD6C 0x612E # <CJK>
+0xDD6D 0x6146 # <CJK>
+0xDD6E 0x612F # <CJK>
+0xDD6F 0x614F # <CJK>
+0xDD70 0x6129 # <CJK>
+0xDD71 0x6140 # <CJK>
+0xDD72 0x6220 # <CJK>
+0xDD73 0x9168 # <CJK>
+0xDD74 0x6223 # <CJK>
+0xDD75 0x6225 # <CJK>
+0xDD76 0x6224 # <CJK>
+0xDD77 0x63C5 # <CJK>
+0xDD78 0x63F1 # <CJK>
+0xDD79 0x63EB # <CJK>
+0xDD7A 0x6410 # <CJK>
+0xDD7B 0x6412 # <CJK>
+0xDD7C 0x6409 # <CJK>
+0xDD7D 0x6420 # <CJK>
+0xDD7E 0x6424 # <CJK>
+0xDDA1 0x6433 # <CJK>
+0xDDA2 0x6443 # <CJK>
+0xDDA3 0x641F # <CJK>
+0xDDA4 0x6415 # <CJK>
+0xDDA5 0x6418 # <CJK>
+0xDDA6 0x6439 # <CJK>
+0xDDA7 0x6437 # <CJK>
+0xDDA8 0x6422 # <CJK>
+0xDDA9 0x6423 # <CJK>
+0xDDAA 0x640C # <CJK>
+0xDDAB 0x6426 # <CJK>
+0xDDAC 0x6430 # <CJK>
+0xDDAD 0x6428 # <CJK>
+0xDDAE 0x6441 # <CJK>
+0xDDAF 0x6435 # <CJK>
+0xDDB0 0x642F # <CJK>
+0xDDB1 0x640A # <CJK>
+0xDDB2 0x641A # <CJK>
+0xDDB3 0x6440 # <CJK>
+0xDDB4 0x6425 # <CJK>
+0xDDB5 0x6427 # <CJK>
+0xDDB6 0x640B # <CJK>
+0xDDB7 0x63E7 # <CJK>
+0xDDB8 0x641B # <CJK>
+0xDDB9 0x642E # <CJK>
+0xDDBA 0x6421 # <CJK>
+0xDDBB 0x640E # <CJK>
+0xDDBC 0x656F # <CJK>
+0xDDBD 0x6592 # <CJK>
+0xDDBE 0x65D3 # <CJK>
+0xDDBF 0x6686 # <CJK>
+0xDDC0 0x668C # <CJK>
+0xDDC1 0x6695 # <CJK>
+0xDDC2 0x6690 # <CJK>
+0xDDC3 0x668B # <CJK>
+0xDDC4 0x668A # <CJK>
+0xDDC5 0x6699 # <CJK>
+0xDDC6 0x6694 # <CJK>
+0xDDC7 0x6678 # <CJK>
+0xDDC8 0x6720 # <CJK>
+0xDDC9 0x6966 # <CJK>
+0xDDCA 0x695F # <CJK>
+0xDDCB 0x6938 # <CJK>
+0xDDCC 0x694E # <CJK>
+0xDDCD 0x6962 # <CJK>
+0xDDCE 0x6971 # <CJK>
+0xDDCF 0x693F # <CJK>
+0xDDD0 0x6945 # <CJK>
+0xDDD1 0x696A # <CJK>
+0xDDD2 0x6939 # <CJK>
+0xDDD3 0x6942 # <CJK>
+0xDDD4 0x6957 # <CJK>
+0xDDD5 0x6959 # <CJK>
+0xDDD6 0x697A # <CJK>
+0xDDD7 0x6948 # <CJK>
+0xDDD8 0x6949 # <CJK>
+0xDDD9 0x6935 # <CJK>
+0xDDDA 0x696C # <CJK>
+0xDDDB 0x6933 # <CJK>
+0xDDDC 0x693D # <CJK>
+0xDDDD 0x6965 # <CJK>
+0xDDDE 0x68F0 # <CJK>
+0xDDDF 0x6978 # <CJK>
+0xDDE0 0x6934 # <CJK>
+0xDDE1 0x6969 # <CJK>
+0xDDE2 0x6940 # <CJK>
+0xDDE3 0x696F # <CJK>
+0xDDE4 0x6944 # <CJK>
+0xDDE5 0x6976 # <CJK>
+0xDDE6 0x6958 # <CJK>
+0xDDE7 0x6941 # <CJK>
+0xDDE8 0x6974 # <CJK>
+0xDDE9 0x694C # <CJK>
+0xDDEA 0x693B # <CJK>
+0xDDEB 0x694B # <CJK>
+0xDDEC 0x6937 # <CJK>
+0xDDED 0x695C # <CJK>
+0xDDEE 0x694F # <CJK>
+0xDDEF 0x6951 # <CJK>
+0xDDF0 0x6932 # <CJK>
+0xDDF1 0x6952 # <CJK>
+0xDDF2 0x692F # <CJK>
+0xDDF3 0x697B # <CJK>
+0xDDF4 0x693C # <CJK>
+0xDDF5 0x6B46 # <CJK>
+0xDDF6 0x6B45 # <CJK>
+0xDDF7 0x6B43 # <CJK>
+0xDDF8 0x6B42 # <CJK>
+0xDDF9 0x6B48 # <CJK>
+0xDDFA 0x6B41 # <CJK>
+0xDDFB 0x6B9B # <CJK>
+0xDDFC 0xFA0D # CJK COMPATIBILITY IDEOGRAPH-FA0D
+0xDDFD 0x6BFB # <CJK>
+0xDDFE 0x6BFC # <CJK>
+0xDE40 0x6BF9 # <CJK>
+0xDE41 0x6BF7 # <CJK>
+0xDE42 0x6BF8 # <CJK>
+0xDE43 0x6E9B # <CJK>
+0xDE44 0x6ED6 # <CJK>
+0xDE45 0x6EC8 # <CJK>
+0xDE46 0x6E8F # <CJK>
+0xDE47 0x6EC0 # <CJK>
+0xDE48 0x6E9F # <CJK>
+0xDE49 0x6E93 # <CJK>
+0xDE4A 0x6E94 # <CJK>
+0xDE4B 0x6EA0 # <CJK>
+0xDE4C 0x6EB1 # <CJK>
+0xDE4D 0x6EB9 # <CJK>
+0xDE4E 0x6EC6 # <CJK>
+0xDE4F 0x6ED2 # <CJK>
+0xDE50 0x6EBD # <CJK>
+0xDE51 0x6EC1 # <CJK>
+0xDE52 0x6E9E # <CJK>
+0xDE53 0x6EC9 # <CJK>
+0xDE54 0x6EB7 # <CJK>
+0xDE55 0x6EB0 # <CJK>
+0xDE56 0x6ECD # <CJK>
+0xDE57 0x6EA6 # <CJK>
+0xDE58 0x6ECF # <CJK>
+0xDE59 0x6EB2 # <CJK>
+0xDE5A 0x6EBE # <CJK>
+0xDE5B 0x6EC3 # <CJK>
+0xDE5C 0x6EDC # <CJK>
+0xDE5D 0x6ED8 # <CJK>
+0xDE5E 0x6E99 # <CJK>
+0xDE5F 0x6E92 # <CJK>
+0xDE60 0x6E8E # <CJK>
+0xDE61 0x6E8D # <CJK>
+0xDE62 0x6EA4 # <CJK>
+0xDE63 0x6EA1 # <CJK>
+0xDE64 0x6EBF # <CJK>
+0xDE65 0x6EB3 # <CJK>
+0xDE66 0x6ED0 # <CJK>
+0xDE67 0x6ECA # <CJK>
+0xDE68 0x6E97 # <CJK>
+0xDE69 0x6EAE # <CJK>
+0xDE6A 0x6EA3 # <CJK>
+0xDE6B 0x7147 # <CJK>
+0xDE6C 0x7154 # <CJK>
+0xDE6D 0x7152 # <CJK>
+0xDE6E 0x7163 # <CJK>
+0xDE6F 0x7160 # <CJK>
+0xDE70 0x7141 # <CJK>
+0xDE71 0x715D # <CJK>
+0xDE72 0x7162 # <CJK>
+0xDE73 0x7172 # <CJK>
+0xDE74 0x7178 # <CJK>
+0xDE75 0x716A # <CJK>
+0xDE76 0x7161 # <CJK>
+0xDE77 0x7142 # <CJK>
+0xDE78 0x7158 # <CJK>
+0xDE79 0x7143 # <CJK>
+0xDE7A 0x714B # <CJK>
+0xDE7B 0x7170 # <CJK>
+0xDE7C 0x715F # <CJK>
+0xDE7D 0x7150 # <CJK>
+0xDE7E 0x7153 # <CJK>
+0xDEA1 0x7144 # <CJK>
+0xDEA2 0x714D # <CJK>
+0xDEA3 0x715A # <CJK>
+0xDEA4 0x724F # <CJK>
+0xDEA5 0x728D # <CJK>
+0xDEA6 0x728C # <CJK>
+0xDEA7 0x7291 # <CJK>
+0xDEA8 0x7290 # <CJK>
+0xDEA9 0x728E # <CJK>
+0xDEAA 0x733C # <CJK>
+0xDEAB 0x7342 # <CJK>
+0xDEAC 0x733B # <CJK>
+0xDEAD 0x733A # <CJK>
+0xDEAE 0x7340 # <CJK>
+0xDEAF 0x734A # <CJK>
+0xDEB0 0x7349 # <CJK>
+0xDEB1 0x7444 # <CJK>
+0xDEB2 0x744A # <CJK>
+0xDEB3 0x744B # <CJK>
+0xDEB4 0x7452 # <CJK>
+0xDEB5 0x7451 # <CJK>
+0xDEB6 0x7457 # <CJK>
+0xDEB7 0x7440 # <CJK>
+0xDEB8 0x744F # <CJK>
+0xDEB9 0x7450 # <CJK>
+0xDEBA 0x744E # <CJK>
+0xDEBB 0x7442 # <CJK>
+0xDEBC 0x7446 # <CJK>
+0xDEBD 0x744D # <CJK>
+0xDEBE 0x7454 # <CJK>
+0xDEBF 0x74E1 # <CJK>
+0xDEC0 0x74FF # <CJK>
+0xDEC1 0x74FE # <CJK>
+0xDEC2 0x74FD # <CJK>
+0xDEC3 0x751D # <CJK>
+0xDEC4 0x7579 # <CJK>
+0xDEC5 0x7577 # <CJK>
+0xDEC6 0x6983 # <CJK>
+0xDEC7 0x75EF # <CJK>
+0xDEC8 0x760F # <CJK>
+0xDEC9 0x7603 # <CJK>
+0xDECA 0x75F7 # <CJK>
+0xDECB 0x75FE # <CJK>
+0xDECC 0x75FC # <CJK>
+0xDECD 0x75F9 # <CJK>
+0xDECE 0x75F8 # <CJK>
+0xDECF 0x7610 # <CJK>
+0xDED0 0x75FB # <CJK>
+0xDED1 0x75F6 # <CJK>
+0xDED2 0x75ED # <CJK>
+0xDED3 0x75F5 # <CJK>
+0xDED4 0x75FD # <CJK>
+0xDED5 0x7699 # <CJK>
+0xDED6 0x76B5 # <CJK>
+0xDED7 0x76DD # <CJK>
+0xDED8 0x7755 # <CJK>
+0xDED9 0x775F # <CJK>
+0xDEDA 0x7760 # <CJK>
+0xDEDB 0x7752 # <CJK>
+0xDEDC 0x7756 # <CJK>
+0xDEDD 0x775A # <CJK>
+0xDEDE 0x7769 # <CJK>
+0xDEDF 0x7767 # <CJK>
+0xDEE0 0x7754 # <CJK>
+0xDEE1 0x7759 # <CJK>
+0xDEE2 0x776D # <CJK>
+0xDEE3 0x77E0 # <CJK>
+0xDEE4 0x7887 # <CJK>
+0xDEE5 0x789A # <CJK>
+0xDEE6 0x7894 # <CJK>
+0xDEE7 0x788F # <CJK>
+0xDEE8 0x7884 # <CJK>
+0xDEE9 0x7895 # <CJK>
+0xDEEA 0x7885 # <CJK>
+0xDEEB 0x7886 # <CJK>
+0xDEEC 0x78A1 # <CJK>
+0xDEED 0x7883 # <CJK>
+0xDEEE 0x7879 # <CJK>
+0xDEEF 0x7899 # <CJK>
+0xDEF0 0x7880 # <CJK>
+0xDEF1 0x7896 # <CJK>
+0xDEF2 0x787B # <CJK>
+0xDEF3 0x797C # <CJK>
+0xDEF4 0x7982 # <CJK>
+0xDEF5 0x797D # <CJK>
+0xDEF6 0x7979 # <CJK>
+0xDEF7 0x7A11 # <CJK>
+0xDEF8 0x7A18 # <CJK>
+0xDEF9 0x7A19 # <CJK>
+0xDEFA 0x7A12 # <CJK>
+0xDEFB 0x7A17 # <CJK>
+0xDEFC 0x7A15 # <CJK>
+0xDEFD 0x7A22 # <CJK>
+0xDEFE 0x7A13 # <CJK>
+0xDF40 0x7A1B # <CJK>
+0xDF41 0x7A10 # <CJK>
+0xDF42 0x7AA3 # <CJK>
+0xDF43 0x7AA2 # <CJK>
+0xDF44 0x7A9E # <CJK>
+0xDF45 0x7AEB # <CJK>
+0xDF46 0x7B66 # <CJK>
+0xDF47 0x7B64 # <CJK>
+0xDF48 0x7B6D # <CJK>
+0xDF49 0x7B74 # <CJK>
+0xDF4A 0x7B69 # <CJK>
+0xDF4B 0x7B72 # <CJK>
+0xDF4C 0x7B65 # <CJK>
+0xDF4D 0x7B73 # <CJK>
+0xDF4E 0x7B71 # <CJK>
+0xDF4F 0x7B70 # <CJK>
+0xDF50 0x7B61 # <CJK>
+0xDF51 0x7B78 # <CJK>
+0xDF52 0x7B76 # <CJK>
+0xDF53 0x7B63 # <CJK>
+0xDF54 0x7CB2 # <CJK>
+0xDF55 0x7CB4 # <CJK>
+0xDF56 0x7CAF # <CJK>
+0xDF57 0x7D88 # <CJK>
+0xDF58 0x7D86 # <CJK>
+0xDF59 0x7D80 # <CJK>
+0xDF5A 0x7D8D # <CJK>
+0xDF5B 0x7D7F # <CJK>
+0xDF5C 0x7D85 # <CJK>
+0xDF5D 0x7D7A # <CJK>
+0xDF5E 0x7D8E # <CJK>
+0xDF5F 0x7D7B # <CJK>
+0xDF60 0x7D83 # <CJK>
+0xDF61 0x7D7C # <CJK>
+0xDF62 0x7D8C # <CJK>
+0xDF63 0x7D94 # <CJK>
+0xDF64 0x7D84 # <CJK>
+0xDF65 0x7D7D # <CJK>
+0xDF66 0x7D92 # <CJK>
+0xDF67 0x7F6D # <CJK>
+0xDF68 0x7F6B # <CJK>
+0xDF69 0x7F67 # <CJK>
+0xDF6A 0x7F68 # <CJK>
+0xDF6B 0x7F6C # <CJK>
+0xDF6C 0x7FA6 # <CJK>
+0xDF6D 0x7FA5 # <CJK>
+0xDF6E 0x7FA7 # <CJK>
+0xDF6F 0x7FDB # <CJK>
+0xDF70 0x7FDC # <CJK>
+0xDF71 0x8021 # <CJK>
+0xDF72 0x8164 # <CJK>
+0xDF73 0x8160 # <CJK>
+0xDF74 0x8177 # <CJK>
+0xDF75 0x815C # <CJK>
+0xDF76 0x8169 # <CJK>
+0xDF77 0x815B # <CJK>
+0xDF78 0x8162 # <CJK>
+0xDF79 0x8172 # <CJK>
+0xDF7A 0x6721 # <CJK>
+0xDF7B 0x815E # <CJK>
+0xDF7C 0x8176 # <CJK>
+0xDF7D 0x8167 # <CJK>
+0xDF7E 0x816F # <CJK>
+0xDFA1 0x8144 # <CJK>
+0xDFA2 0x8161 # <CJK>
+0xDFA3 0x821D # <CJK>
+0xDFA4 0x8249 # <CJK>
+0xDFA5 0x8244 # <CJK>
+0xDFA6 0x8240 # <CJK>
+0xDFA7 0x8242 # <CJK>
+0xDFA8 0x8245 # <CJK>
+0xDFA9 0x84F1 # <CJK>
+0xDFAA 0x843F # <CJK>
+0xDFAB 0x8456 # <CJK>
+0xDFAC 0x8476 # <CJK>
+0xDFAD 0x8479 # <CJK>
+0xDFAE 0x848F # <CJK>
+0xDFAF 0x848D # <CJK>
+0xDFB0 0x8465 # <CJK>
+0xDFB1 0x8451 # <CJK>
+0xDFB2 0x8440 # <CJK>
+0xDFB3 0x8486 # <CJK>
+0xDFB4 0x8467 # <CJK>
+0xDFB5 0x8430 # <CJK>
+0xDFB6 0x844D # <CJK>
+0xDFB7 0x847D # <CJK>
+0xDFB8 0x845A # <CJK>
+0xDFB9 0x8459 # <CJK>
+0xDFBA 0x8474 # <CJK>
+0xDFBB 0x8473 # <CJK>
+0xDFBC 0x845D # <CJK>
+0xDFBD 0x8507 # <CJK>
+0xDFBE 0x845E # <CJK>
+0xDFBF 0x8437 # <CJK>
+0xDFC0 0x843A # <CJK>
+0xDFC1 0x8434 # <CJK>
+0xDFC2 0x847A # <CJK>
+0xDFC3 0x8443 # <CJK>
+0xDFC4 0x8478 # <CJK>
+0xDFC5 0x8432 # <CJK>
+0xDFC6 0x8445 # <CJK>
+0xDFC7 0x8429 # <CJK>
+0xDFC8 0x83D9 # <CJK>
+0xDFC9 0x844B # <CJK>
+0xDFCA 0x842F # <CJK>
+0xDFCB 0x8442 # <CJK>
+0xDFCC 0x842D # <CJK>
+0xDFCD 0x845F # <CJK>
+0xDFCE 0x8470 # <CJK>
+0xDFCF 0x8439 # <CJK>
+0xDFD0 0x844E # <CJK>
+0xDFD1 0x844C # <CJK>
+0xDFD2 0x8452 # <CJK>
+0xDFD3 0x846F # <CJK>
+0xDFD4 0x84C5 # <CJK>
+0xDFD5 0x848E # <CJK>
+0xDFD6 0x843B # <CJK>
+0xDFD7 0x8447 # <CJK>
+0xDFD8 0x8436 # <CJK>
+0xDFD9 0x8433 # <CJK>
+0xDFDA 0x8468 # <CJK>
+0xDFDB 0x847E # <CJK>
+0xDFDC 0x8444 # <CJK>
+0xDFDD 0x842B # <CJK>
+0xDFDE 0x8460 # <CJK>
+0xDFDF 0x8454 # <CJK>
+0xDFE0 0x846E # <CJK>
+0xDFE1 0x8450 # <CJK>
+0xDFE2 0x870B # <CJK>
+0xDFE3 0x8704 # <CJK>
+0xDFE4 0x86F7 # <CJK>
+0xDFE5 0x870C # <CJK>
+0xDFE6 0x86FA # <CJK>
+0xDFE7 0x86D6 # <CJK>
+0xDFE8 0x86F5 # <CJK>
+0xDFE9 0x874D # <CJK>
+0xDFEA 0x86F8 # <CJK>
+0xDFEB 0x870E # <CJK>
+0xDFEC 0x8709 # <CJK>
+0xDFED 0x8701 # <CJK>
+0xDFEE 0x86F6 # <CJK>
+0xDFEF 0x870D # <CJK>
+0xDFF0 0x8705 # <CJK>
+0xDFF1 0x88D6 # <CJK>
+0xDFF2 0x88CB # <CJK>
+0xDFF3 0x88CD # <CJK>
+0xDFF4 0x88CE # <CJK>
+0xDFF5 0x88DE # <CJK>
+0xDFF6 0x88DB # <CJK>
+0xDFF7 0x88DA # <CJK>
+0xDFF8 0x88CC # <CJK>
+0xDFF9 0x88D0 # <CJK>
+0xDFFA 0x8985 # <CJK>
+0xDFFB 0x899B # <CJK>
+0xDFFC 0x89DF # <CJK>
+0xDFFD 0x89E5 # <CJK>
+0xDFFE 0x89E4 # <CJK>
+0xE040 0x89E1 # <CJK>
+0xE041 0x89E0 # <CJK>
+0xE042 0x89E2 # <CJK>
+0xE043 0x89DC # <CJK>
+0xE044 0x89E6 # <CJK>
+0xE045 0x8A76 # <CJK>
+0xE046 0x8A86 # <CJK>
+0xE047 0x8A7F # <CJK>
+0xE048 0x8A61 # <CJK>
+0xE049 0x8A3F # <CJK>
+0xE04A 0x8A77 # <CJK>
+0xE04B 0x8A82 # <CJK>
+0xE04C 0x8A84 # <CJK>
+0xE04D 0x8A75 # <CJK>
+0xE04E 0x8A83 # <CJK>
+0xE04F 0x8A81 # <CJK>
+0xE050 0x8A74 # <CJK>
+0xE051 0x8A7A # <CJK>
+0xE052 0x8C3C # <CJK>
+0xE053 0x8C4B # <CJK>
+0xE054 0x8C4A # <CJK>
+0xE055 0x8C65 # <CJK>
+0xE056 0x8C64 # <CJK>
+0xE057 0x8C66 # <CJK>
+0xE058 0x8C86 # <CJK>
+0xE059 0x8C84 # <CJK>
+0xE05A 0x8C85 # <CJK>
+0xE05B 0x8CCC # <CJK>
+0xE05C 0x8D68 # <CJK>
+0xE05D 0x8D69 # <CJK>
+0xE05E 0x8D91 # <CJK>
+0xE05F 0x8D8C # <CJK>
+0xE060 0x8D8E # <CJK>
+0xE061 0x8D8F # <CJK>
+0xE062 0x8D8D # <CJK>
+0xE063 0x8D93 # <CJK>
+0xE064 0x8D94 # <CJK>
+0xE065 0x8D90 # <CJK>
+0xE066 0x8D92 # <CJK>
+0xE067 0x8DF0 # <CJK>
+0xE068 0x8DE0 # <CJK>
+0xE069 0x8DEC # <CJK>
+0xE06A 0x8DF1 # <CJK>
+0xE06B 0x8DEE # <CJK>
+0xE06C 0x8DD0 # <CJK>
+0xE06D 0x8DE9 # <CJK>
+0xE06E 0x8DE3 # <CJK>
+0xE06F 0x8DE2 # <CJK>
+0xE070 0x8DE7 # <CJK>
+0xE071 0x8DF2 # <CJK>
+0xE072 0x8DEB # <CJK>
+0xE073 0x8DF4 # <CJK>
+0xE074 0x8F06 # <CJK>
+0xE075 0x8EFF # <CJK>
+0xE076 0x8F01 # <CJK>
+0xE077 0x8F00 # <CJK>
+0xE078 0x8F05 # <CJK>
+0xE079 0x8F07 # <CJK>
+0xE07A 0x8F08 # <CJK>
+0xE07B 0x8F02 # <CJK>
+0xE07C 0x8F0B # <CJK>
+0xE07D 0x9052 # <CJK>
+0xE07E 0x903F # <CJK>
+0xE0A1 0x9044 # <CJK>
+0xE0A2 0x9049 # <CJK>
+0xE0A3 0x903D # <CJK>
+0xE0A4 0x9110 # <CJK>
+0xE0A5 0x910D # <CJK>
+0xE0A6 0x910F # <CJK>
+0xE0A7 0x9111 # <CJK>
+0xE0A8 0x9116 # <CJK>
+0xE0A9 0x9114 # <CJK>
+0xE0AA 0x910B # <CJK>
+0xE0AB 0x910E # <CJK>
+0xE0AC 0x916E # <CJK>
+0xE0AD 0x916F # <CJK>
+0xE0AE 0x9248 # <CJK>
+0xE0AF 0x9252 # <CJK>
+0xE0B0 0x9230 # <CJK>
+0xE0B1 0x923A # <CJK>
+0xE0B2 0x9266 # <CJK>
+0xE0B3 0x9233 # <CJK>
+0xE0B4 0x9265 # <CJK>
+0xE0B5 0x925E # <CJK>
+0xE0B6 0x9283 # <CJK>
+0xE0B7 0x922E # <CJK>
+0xE0B8 0x924A # <CJK>
+0xE0B9 0x9246 # <CJK>
+0xE0BA 0x926D # <CJK>
+0xE0BB 0x926C # <CJK>
+0xE0BC 0x924F # <CJK>
+0xE0BD 0x9260 # <CJK>
+0xE0BE 0x9267 # <CJK>
+0xE0BF 0x926F # <CJK>
+0xE0C0 0x9236 # <CJK>
+0xE0C1 0x9261 # <CJK>
+0xE0C2 0x9270 # <CJK>
+0xE0C3 0x9231 # <CJK>
+0xE0C4 0x9254 # <CJK>
+0xE0C5 0x9263 # <CJK>
+0xE0C6 0x9250 # <CJK>
+0xE0C7 0x9272 # <CJK>
+0xE0C8 0x924E # <CJK>
+0xE0C9 0x9253 # <CJK>
+0xE0CA 0x924C # <CJK>
+0xE0CB 0x9256 # <CJK>
+0xE0CC 0x9232 # <CJK>
+0xE0CD 0x959F # <CJK>
+0xE0CE 0x959C # <CJK>
+0xE0CF 0x959E # <CJK>
+0xE0D0 0x959B # <CJK>
+0xE0D1 0x9692 # <CJK>
+0xE0D2 0x9693 # <CJK>
+0xE0D3 0x9691 # <CJK>
+0xE0D4 0x9697 # <CJK>
+0xE0D5 0x96CE # <CJK>
+0xE0D6 0x96FA # <CJK>
+0xE0D7 0x96FD # <CJK>
+0xE0D8 0x96F8 # <CJK>
+0xE0D9 0x96F5 # <CJK>
+0xE0DA 0x9773 # <CJK>
+0xE0DB 0x9777 # <CJK>
+0xE0DC 0x9778 # <CJK>
+0xE0DD 0x9772 # <CJK>
+0xE0DE 0x980F # <CJK>
+0xE0DF 0x980D # <CJK>
+0xE0E0 0x980E # <CJK>
+0xE0E1 0x98AC # <CJK>
+0xE0E2 0x98F6 # <CJK>
+0xE0E3 0x98F9 # <CJK>
+0xE0E4 0x99AF # <CJK>
+0xE0E5 0x99B2 # <CJK>
+0xE0E6 0x99B0 # <CJK>
+0xE0E7 0x99B5 # <CJK>
+0xE0E8 0x9AAD # <CJK>
+0xE0E9 0x9AAB # <CJK>
+0xE0EA 0x9B5B # <CJK>
+0xE0EB 0x9CEA # <CJK>
+0xE0EC 0x9CED # <CJK>
+0xE0ED 0x9CE7 # <CJK>
+0xE0EE 0x9E80 # <CJK>
+0xE0EF 0x9EFD # <CJK>
+0xE0F0 0x50E6 # <CJK>
+0xE0F1 0x50D4 # <CJK>
+0xE0F2 0x50D7 # <CJK>
+0xE0F3 0x50E8 # <CJK>
+0xE0F4 0x50F3 # <CJK>
+0xE0F5 0x50DB # <CJK>
+0xE0F6 0x50EA # <CJK>
+0xE0F7 0x50DD # <CJK>
+0xE0F8 0x50E4 # <CJK>
+0xE0F9 0x50D3 # <CJK>
+0xE0FA 0x50EC # <CJK>
+0xE0FB 0x50F0 # <CJK>
+0xE0FC 0x50EF # <CJK>
+0xE0FD 0x50E3 # <CJK>
+0xE0FE 0x50E0 # <CJK>
+0xE140 0x51D8 # <CJK>
+0xE141 0x5280 # <CJK>
+0xE142 0x5281 # <CJK>
+0xE143 0x52E9 # <CJK>
+0xE144 0x52EB # <CJK>
+0xE145 0x5330 # <CJK>
+0xE146 0x53AC # <CJK>
+0xE147 0x5627 # <CJK>
+0xE148 0x5615 # <CJK>
+0xE149 0x560C # <CJK>
+0xE14A 0x5612 # <CJK>
+0xE14B 0x55FC # <CJK>
+0xE14C 0x560F # <CJK>
+0xE14D 0x561C # <CJK>
+0xE14E 0x5601 # <CJK>
+0xE14F 0x5613 # <CJK>
+0xE150 0x5602 # <CJK>
+0xE151 0x55FA # <CJK>
+0xE152 0x561D # <CJK>
+0xE153 0x5604 # <CJK>
+0xE154 0x55FF # <CJK>
+0xE155 0x55F9 # <CJK>
+0xE156 0x5889 # <CJK>
+0xE157 0x587C # <CJK>
+0xE158 0x5890 # <CJK>
+0xE159 0x5898 # <CJK>
+0xE15A 0x5886 # <CJK>
+0xE15B 0x5881 # <CJK>
+0xE15C 0x587F # <CJK>
+0xE15D 0x5874 # <CJK>
+0xE15E 0x588B # <CJK>
+0xE15F 0x587A # <CJK>
+0xE160 0x5887 # <CJK>
+0xE161 0x5891 # <CJK>
+0xE162 0x588E # <CJK>
+0xE163 0x5876 # <CJK>
+0xE164 0x5882 # <CJK>
+0xE165 0x5888 # <CJK>
+0xE166 0x587B # <CJK>
+0xE167 0x5894 # <CJK>
+0xE168 0x588F # <CJK>
+0xE169 0x58FE # <CJK>
+0xE16A 0x596B # <CJK>
+0xE16B 0x5ADC # <CJK>
+0xE16C 0x5AEE # <CJK>
+0xE16D 0x5AE5 # <CJK>
+0xE16E 0x5AD5 # <CJK>
+0xE16F 0x5AEA # <CJK>
+0xE170 0x5ADA # <CJK>
+0xE171 0x5AED # <CJK>
+0xE172 0x5AEB # <CJK>
+0xE173 0x5AF3 # <CJK>
+0xE174 0x5AE2 # <CJK>
+0xE175 0x5AE0 # <CJK>
+0xE176 0x5ADB # <CJK>
+0xE177 0x5AEC # <CJK>
+0xE178 0x5ADE # <CJK>
+0xE179 0x5ADD # <CJK>
+0xE17A 0x5AD9 # <CJK>
+0xE17B 0x5AE8 # <CJK>
+0xE17C 0x5ADF # <CJK>
+0xE17D 0x5B77 # <CJK>
+0xE17E 0x5BE0 # <CJK>
+0xE1A1 0x5BE3 # <CJK>
+0xE1A2 0x5C63 # <CJK>
+0xE1A3 0x5D82 # <CJK>
+0xE1A4 0x5D80 # <CJK>
+0xE1A5 0x5D7D # <CJK>
+0xE1A6 0x5D86 # <CJK>
+0xE1A7 0x5D7A # <CJK>
+0xE1A8 0x5D81 # <CJK>
+0xE1A9 0x5D77 # <CJK>
+0xE1AA 0x5D8A # <CJK>
+0xE1AB 0x5D89 # <CJK>
+0xE1AC 0x5D88 # <CJK>
+0xE1AD 0x5D7E # <CJK>
+0xE1AE 0x5D7C # <CJK>
+0xE1AF 0x5D8D # <CJK>
+0xE1B0 0x5D79 # <CJK>
+0xE1B1 0x5D7F # <CJK>
+0xE1B2 0x5E58 # <CJK>
+0xE1B3 0x5E59 # <CJK>
+0xE1B4 0x5E53 # <CJK>
+0xE1B5 0x5ED8 # <CJK>
+0xE1B6 0x5ED1 # <CJK>
+0xE1B7 0x5ED7 # <CJK>
+0xE1B8 0x5ECE # <CJK>
+0xE1B9 0x5EDC # <CJK>
+0xE1BA 0x5ED5 # <CJK>
+0xE1BB 0x5ED9 # <CJK>
+0xE1BC 0x5ED2 # <CJK>
+0xE1BD 0x5ED4 # <CJK>
+0xE1BE 0x5F44 # <CJK>
+0xE1BF 0x5F43 # <CJK>
+0xE1C0 0x5F6F # <CJK>
+0xE1C1 0x5FB6 # <CJK>
+0xE1C2 0x612C # <CJK>
+0xE1C3 0x6128 # <CJK>
+0xE1C4 0x6141 # <CJK>
+0xE1C5 0x615E # <CJK>
+0xE1C6 0x6171 # <CJK>
+0xE1C7 0x6173 # <CJK>
+0xE1C8 0x6152 # <CJK>
+0xE1C9 0x6153 # <CJK>
+0xE1CA 0x6172 # <CJK>
+0xE1CB 0x616C # <CJK>
+0xE1CC 0x6180 # <CJK>
+0xE1CD 0x6174 # <CJK>
+0xE1CE 0x6154 # <CJK>
+0xE1CF 0x617A # <CJK>
+0xE1D0 0x615B # <CJK>
+0xE1D1 0x6165 # <CJK>
+0xE1D2 0x613B # <CJK>
+0xE1D3 0x616A # <CJK>
+0xE1D4 0x6161 # <CJK>
+0xE1D5 0x6156 # <CJK>
+0xE1D6 0x6229 # <CJK>
+0xE1D7 0x6227 # <CJK>
+0xE1D8 0x622B # <CJK>
+0xE1D9 0x642B # <CJK>
+0xE1DA 0x644D # <CJK>
+0xE1DB 0x645B # <CJK>
+0xE1DC 0x645D # <CJK>
+0xE1DD 0x6474 # <CJK>
+0xE1DE 0x6476 # <CJK>
+0xE1DF 0x6472 # <CJK>
+0xE1E0 0x6473 # <CJK>
+0xE1E1 0x647D # <CJK>
+0xE1E2 0x6475 # <CJK>
+0xE1E3 0x6466 # <CJK>
+0xE1E4 0x64A6 # <CJK>
+0xE1E5 0x644E # <CJK>
+0xE1E6 0x6482 # <CJK>
+0xE1E7 0x645E # <CJK>
+0xE1E8 0x645C # <CJK>
+0xE1E9 0x644B # <CJK>
+0xE1EA 0x6453 # <CJK>
+0xE1EB 0x6460 # <CJK>
+0xE1EC 0x6450 # <CJK>
+0xE1ED 0x647F # <CJK>
+0xE1EE 0x643F # <CJK>
+0xE1EF 0x646C # <CJK>
+0xE1F0 0x646B # <CJK>
+0xE1F1 0x6459 # <CJK>
+0xE1F2 0x6465 # <CJK>
+0xE1F3 0x6477 # <CJK>
+0xE1F4 0x6573 # <CJK>
+0xE1F5 0x65A0 # <CJK>
+0xE1F6 0x66A1 # <CJK>
+0xE1F7 0x66A0 # <CJK>
+0xE1F8 0x669F # <CJK>
+0xE1F9 0x6705 # <CJK>
+0xE1FA 0x6704 # <CJK>
+0xE1FB 0x6722 # <CJK>
+0xE1FC 0x69B1 # <CJK>
+0xE1FD 0x69B6 # <CJK>
+0xE1FE 0x69C9 # <CJK>
+0xE240 0x69A0 # <CJK>
+0xE241 0x69CE # <CJK>
+0xE242 0x6996 # <CJK>
+0xE243 0x69B0 # <CJK>
+0xE244 0x69AC # <CJK>
+0xE245 0x69BC # <CJK>
+0xE246 0x6991 # <CJK>
+0xE247 0x6999 # <CJK>
+0xE248 0x698E # <CJK>
+0xE249 0x69A7 # <CJK>
+0xE24A 0x698D # <CJK>
+0xE24B 0x69A9 # <CJK>
+0xE24C 0x69BE # <CJK>
+0xE24D 0x69AF # <CJK>
+0xE24E 0x69BF # <CJK>
+0xE24F 0x69C4 # <CJK>
+0xE250 0x69BD # <CJK>
+0xE251 0x69A4 # <CJK>
+0xE252 0x69D4 # <CJK>
+0xE253 0x69B9 # <CJK>
+0xE254 0x69CA # <CJK>
+0xE255 0x699A # <CJK>
+0xE256 0x69CF # <CJK>
+0xE257 0x69B3 # <CJK>
+0xE258 0x6993 # <CJK>
+0xE259 0x69AA # <CJK>
+0xE25A 0x69A1 # <CJK>
+0xE25B 0x699E # <CJK>
+0xE25C 0x69D9 # <CJK>
+0xE25D 0x6997 # <CJK>
+0xE25E 0x6990 # <CJK>
+0xE25F 0x69C2 # <CJK>
+0xE260 0x69B5 # <CJK>
+0xE261 0x69A5 # <CJK>
+0xE262 0x69C6 # <CJK>
+0xE263 0x6B4A # <CJK>
+0xE264 0x6B4D # <CJK>
+0xE265 0x6B4B # <CJK>
+0xE266 0x6B9E # <CJK>
+0xE267 0x6B9F # <CJK>
+0xE268 0x6BA0 # <CJK>
+0xE269 0x6BC3 # <CJK>
+0xE26A 0x6BC4 # <CJK>
+0xE26B 0x6BFE # <CJK>
+0xE26C 0x6ECE # <CJK>
+0xE26D 0x6EF5 # <CJK>
+0xE26E 0x6EF1 # <CJK>
+0xE26F 0x6F03 # <CJK>
+0xE270 0x6F25 # <CJK>
+0xE271 0x6EF8 # <CJK>
+0xE272 0x6F37 # <CJK>
+0xE273 0x6EFB # <CJK>
+0xE274 0x6F2E # <CJK>
+0xE275 0x6F09 # <CJK>
+0xE276 0x6F4E # <CJK>
+0xE277 0x6F19 # <CJK>
+0xE278 0x6F1A # <CJK>
+0xE279 0x6F27 # <CJK>
+0xE27A 0x6F18 # <CJK>
+0xE27B 0x6F3B # <CJK>
+0xE27C 0x6F12 # <CJK>
+0xE27D 0x6EED # <CJK>
+0xE27E 0x6F0A # <CJK>
+0xE2A1 0x6F36 # <CJK>
+0xE2A2 0x6F73 # <CJK>
+0xE2A3 0x6EF9 # <CJK>
+0xE2A4 0x6EEE # <CJK>
+0xE2A5 0x6F2D # <CJK>
+0xE2A6 0x6F40 # <CJK>
+0xE2A7 0x6F30 # <CJK>
+0xE2A8 0x6F3C # <CJK>
+0xE2A9 0x6F35 # <CJK>
+0xE2AA 0x6EEB # <CJK>
+0xE2AB 0x6F07 # <CJK>
+0xE2AC 0x6F0E # <CJK>
+0xE2AD 0x6F43 # <CJK>
+0xE2AE 0x6F05 # <CJK>
+0xE2AF 0x6EFD # <CJK>
+0xE2B0 0x6EF6 # <CJK>
+0xE2B1 0x6F39 # <CJK>
+0xE2B2 0x6F1C # <CJK>
+0xE2B3 0x6EFC # <CJK>
+0xE2B4 0x6F3A # <CJK>
+0xE2B5 0x6F1F # <CJK>
+0xE2B6 0x6F0D # <CJK>
+0xE2B7 0x6F1E # <CJK>
+0xE2B8 0x6F08 # <CJK>
+0xE2B9 0x6F21 # <CJK>
+0xE2BA 0x7187 # <CJK>
+0xE2BB 0x7190 # <CJK>
+0xE2BC 0x7189 # <CJK>
+0xE2BD 0x7180 # <CJK>
+0xE2BE 0x7185 # <CJK>
+0xE2BF 0x7182 # <CJK>
+0xE2C0 0x718F # <CJK>
+0xE2C1 0x717B # <CJK>
+0xE2C2 0x7186 # <CJK>
+0xE2C3 0x7181 # <CJK>
+0xE2C4 0x7197 # <CJK>
+0xE2C5 0x7244 # <CJK>
+0xE2C6 0x7253 # <CJK>
+0xE2C7 0x7297 # <CJK>
+0xE2C8 0x7295 # <CJK>
+0xE2C9 0x7293 # <CJK>
+0xE2CA 0x7343 # <CJK>
+0xE2CB 0x734D # <CJK>
+0xE2CC 0x7351 # <CJK>
+0xE2CD 0x734C # <CJK>
+0xE2CE 0x7462 # <CJK>
+0xE2CF 0x7473 # <CJK>
+0xE2D0 0x7471 # <CJK>
+0xE2D1 0x7475 # <CJK>
+0xE2D2 0x7472 # <CJK>
+0xE2D3 0x7467 # <CJK>
+0xE2D4 0x746E # <CJK>
+0xE2D5 0x7500 # <CJK>
+0xE2D6 0x7502 # <CJK>
+0xE2D7 0x7503 # <CJK>
+0xE2D8 0x757D # <CJK>
+0xE2D9 0x7590 # <CJK>
+0xE2DA 0x7616 # <CJK>
+0xE2DB 0x7608 # <CJK>
+0xE2DC 0x760C # <CJK>
+0xE2DD 0x7615 # <CJK>
+0xE2DE 0x7611 # <CJK>
+0xE2DF 0x760A # <CJK>
+0xE2E0 0x7614 # <CJK>
+0xE2E1 0x76B8 # <CJK>
+0xE2E2 0x7781 # <CJK>
+0xE2E3 0x777C # <CJK>
+0xE2E4 0x7785 # <CJK>
+0xE2E5 0x7782 # <CJK>
+0xE2E6 0x776E # <CJK>
+0xE2E7 0x7780 # <CJK>
+0xE2E8 0x776F # <CJK>
+0xE2E9 0x777E # <CJK>
+0xE2EA 0x7783 # <CJK>
+0xE2EB 0x78B2 # <CJK>
+0xE2EC 0x78AA # <CJK>
+0xE2ED 0x78B4 # <CJK>
+0xE2EE 0x78AD # <CJK>
+0xE2EF 0x78A8 # <CJK>
+0xE2F0 0x787E # <CJK>
+0xE2F1 0x78AB # <CJK>
+0xE2F2 0x789E # <CJK>
+0xE2F3 0x78A5 # <CJK>
+0xE2F4 0x78A0 # <CJK>
+0xE2F5 0x78AC # <CJK>
+0xE2F6 0x78A2 # <CJK>
+0xE2F7 0x78A4 # <CJK>
+0xE2F8 0x7998 # <CJK>
+0xE2F9 0x798A # <CJK>
+0xE2FA 0x798B # <CJK>
+0xE2FB 0x7996 # <CJK>
+0xE2FC 0x7995 # <CJK>
+0xE2FD 0x7994 # <CJK>
+0xE2FE 0x7993 # <CJK>
+0xE340 0x7997 # <CJK>
+0xE341 0x7988 # <CJK>
+0xE342 0x7992 # <CJK>
+0xE343 0x7990 # <CJK>
+0xE344 0x7A2B # <CJK>
+0xE345 0x7A4A # <CJK>
+0xE346 0x7A30 # <CJK>
+0xE347 0x7A2F # <CJK>
+0xE348 0x7A28 # <CJK>
+0xE349 0x7A26 # <CJK>
+0xE34A 0x7AA8 # <CJK>
+0xE34B 0x7AAB # <CJK>
+0xE34C 0x7AAC # <CJK>
+0xE34D 0x7AEE # <CJK>
+0xE34E 0x7B88 # <CJK>
+0xE34F 0x7B9C # <CJK>
+0xE350 0x7B8A # <CJK>
+0xE351 0x7B91 # <CJK>
+0xE352 0x7B90 # <CJK>
+0xE353 0x7B96 # <CJK>
+0xE354 0x7B8D # <CJK>
+0xE355 0x7B8C # <CJK>
+0xE356 0x7B9B # <CJK>
+0xE357 0x7B8E # <CJK>
+0xE358 0x7B85 # <CJK>
+0xE359 0x7B98 # <CJK>
+0xE35A 0x5284 # <CJK>
+0xE35B 0x7B99 # <CJK>
+0xE35C 0x7BA4 # <CJK>
+0xE35D 0x7B82 # <CJK>
+0xE35E 0x7CBB # <CJK>
+0xE35F 0x7CBF # <CJK>
+0xE360 0x7CBC # <CJK>
+0xE361 0x7CBA # <CJK>
+0xE362 0x7DA7 # <CJK>
+0xE363 0x7DB7 # <CJK>
+0xE364 0x7DC2 # <CJK>
+0xE365 0x7DA3 # <CJK>
+0xE366 0x7DAA # <CJK>
+0xE367 0x7DC1 # <CJK>
+0xE368 0x7DC0 # <CJK>
+0xE369 0x7DC5 # <CJK>
+0xE36A 0x7D9D # <CJK>
+0xE36B 0x7DCE # <CJK>
+0xE36C 0x7DC4 # <CJK>
+0xE36D 0x7DC6 # <CJK>
+0xE36E 0x7DCB # <CJK>
+0xE36F 0x7DCC # <CJK>
+0xE370 0x7DAF # <CJK>
+0xE371 0x7DB9 # <CJK>
+0xE372 0x7D96 # <CJK>
+0xE373 0x7DBC # <CJK>
+0xE374 0x7D9F # <CJK>
+0xE375 0x7DA6 # <CJK>
+0xE376 0x7DAE # <CJK>
+0xE377 0x7DA9 # <CJK>
+0xE378 0x7DA1 # <CJK>
+0xE379 0x7DC9 # <CJK>
+0xE37A 0x7F73 # <CJK>
+0xE37B 0x7FE2 # <CJK>
+0xE37C 0x7FE3 # <CJK>
+0xE37D 0x7FE5 # <CJK>
+0xE37E 0x7FDE # <CJK>
+0xE3A1 0x8024 # <CJK>
+0xE3A2 0x805D # <CJK>
+0xE3A3 0x805C # <CJK>
+0xE3A4 0x8189 # <CJK>
+0xE3A5 0x8186 # <CJK>
+0xE3A6 0x8183 # <CJK>
+0xE3A7 0x8187 # <CJK>
+0xE3A8 0x818D # <CJK>
+0xE3A9 0x818C # <CJK>
+0xE3AA 0x818B # <CJK>
+0xE3AB 0x8215 # <CJK>
+0xE3AC 0x8497 # <CJK>
+0xE3AD 0x84A4 # <CJK>
+0xE3AE 0x84A1 # <CJK>
+0xE3AF 0x849F # <CJK>
+0xE3B0 0x84BA # <CJK>
+0xE3B1 0x84CE # <CJK>
+0xE3B2 0x84C2 # <CJK>
+0xE3B3 0x84AC # <CJK>
+0xE3B4 0x84AE # <CJK>
+0xE3B5 0x84AB # <CJK>
+0xE3B6 0x84B9 # <CJK>
+0xE3B7 0x84B4 # <CJK>
+0xE3B8 0x84C1 # <CJK>
+0xE3B9 0x84CD # <CJK>
+0xE3BA 0x84AA # <CJK>
+0xE3BB 0x849A # <CJK>
+0xE3BC 0x84B1 # <CJK>
+0xE3BD 0x84D0 # <CJK>
+0xE3BE 0x849D # <CJK>
+0xE3BF 0x84A7 # <CJK>
+0xE3C0 0x84BB # <CJK>
+0xE3C1 0x84A2 # <CJK>
+0xE3C2 0x8494 # <CJK>
+0xE3C3 0x84C7 # <CJK>
+0xE3C4 0x84CC # <CJK>
+0xE3C5 0x849B # <CJK>
+0xE3C6 0x84A9 # <CJK>
+0xE3C7 0x84AF # <CJK>
+0xE3C8 0x84A8 # <CJK>
+0xE3C9 0x84D6 # <CJK>
+0xE3CA 0x8498 # <CJK>
+0xE3CB 0x84B6 # <CJK>
+0xE3CC 0x84CF # <CJK>
+0xE3CD 0x84A0 # <CJK>
+0xE3CE 0x84D7 # <CJK>
+0xE3CF 0x84D4 # <CJK>
+0xE3D0 0x84D2 # <CJK>
+0xE3D1 0x84DB # <CJK>
+0xE3D2 0x84B0 # <CJK>
+0xE3D3 0x8491 # <CJK>
+0xE3D4 0x8661 # <CJK>
+0xE3D5 0x8733 # <CJK>
+0xE3D6 0x8723 # <CJK>
+0xE3D7 0x8728 # <CJK>
+0xE3D8 0x876B # <CJK>
+0xE3D9 0x8740 # <CJK>
+0xE3DA 0x872E # <CJK>
+0xE3DB 0x871E # <CJK>
+0xE3DC 0x8721 # <CJK>
+0xE3DD 0x8719 # <CJK>
+0xE3DE 0x871B # <CJK>
+0xE3DF 0x8743 # <CJK>
+0xE3E0 0x872C # <CJK>
+0xE3E1 0x8741 # <CJK>
+0xE3E2 0x873E # <CJK>
+0xE3E3 0x8746 # <CJK>
+0xE3E4 0x8720 # <CJK>
+0xE3E5 0x8732 # <CJK>
+0xE3E6 0x872A # <CJK>
+0xE3E7 0x872D # <CJK>
+0xE3E8 0x873C # <CJK>
+0xE3E9 0x8712 # <CJK>
+0xE3EA 0x873A # <CJK>
+0xE3EB 0x8731 # <CJK>
+0xE3EC 0x8735 # <CJK>
+0xE3ED 0x8742 # <CJK>
+0xE3EE 0x8726 # <CJK>
+0xE3EF 0x8727 # <CJK>
+0xE3F0 0x8738 # <CJK>
+0xE3F1 0x8724 # <CJK>
+0xE3F2 0x871A # <CJK>
+0xE3F3 0x8730 # <CJK>
+0xE3F4 0x8711 # <CJK>
+0xE3F5 0x88F7 # <CJK>
+0xE3F6 0x88E7 # <CJK>
+0xE3F7 0x88F1 # <CJK>
+0xE3F8 0x88F2 # <CJK>
+0xE3F9 0x88FA # <CJK>
+0xE3FA 0x88FE # <CJK>
+0xE3FB 0x88EE # <CJK>
+0xE3FC 0x88FC # <CJK>
+0xE3FD 0x88F6 # <CJK>
+0xE3FE 0x88FB # <CJK>
+0xE440 0x88F0 # <CJK>
+0xE441 0x88EC # <CJK>
+0xE442 0x88EB # <CJK>
+0xE443 0x899D # <CJK>
+0xE444 0x89A1 # <CJK>
+0xE445 0x899F # <CJK>
+0xE446 0x899E # <CJK>
+0xE447 0x89E9 # <CJK>
+0xE448 0x89EB # <CJK>
+0xE449 0x89E8 # <CJK>
+0xE44A 0x8AAB # <CJK>
+0xE44B 0x8A99 # <CJK>
+0xE44C 0x8A8B # <CJK>
+0xE44D 0x8A92 # <CJK>
+0xE44E 0x8A8F # <CJK>
+0xE44F 0x8A96 # <CJK>
+0xE450 0x8C3D # <CJK>
+0xE451 0x8C68 # <CJK>
+0xE452 0x8C69 # <CJK>
+0xE453 0x8CD5 # <CJK>
+0xE454 0x8CCF # <CJK>
+0xE455 0x8CD7 # <CJK>
+0xE456 0x8D96 # <CJK>
+0xE457 0x8E09 # <CJK>
+0xE458 0x8E02 # <CJK>
+0xE459 0x8DFF # <CJK>
+0xE45A 0x8E0D # <CJK>
+0xE45B 0x8DFD # <CJK>
+0xE45C 0x8E0A # <CJK>
+0xE45D 0x8E03 # <CJK>
+0xE45E 0x8E07 # <CJK>
+0xE45F 0x8E06 # <CJK>
+0xE460 0x8E05 # <CJK>
+0xE461 0x8DFE # <CJK>
+0xE462 0x8E00 # <CJK>
+0xE463 0x8E04 # <CJK>
+0xE464 0x8F10 # <CJK>
+0xE465 0x8F11 # <CJK>
+0xE466 0x8F0E # <CJK>
+0xE467 0x8F0D # <CJK>
+0xE468 0x9123 # <CJK>
+0xE469 0x911C # <CJK>
+0xE46A 0x9120 # <CJK>
+0xE46B 0x9122 # <CJK>
+0xE46C 0x911F # <CJK>
+0xE46D 0x911D # <CJK>
+0xE46E 0x911A # <CJK>
+0xE46F 0x9124 # <CJK>
+0xE470 0x9121 # <CJK>
+0xE471 0x911B # <CJK>
+0xE472 0x917A # <CJK>
+0xE473 0x9172 # <CJK>
+0xE474 0x9179 # <CJK>
+0xE475 0x9173 # <CJK>
+0xE476 0x92A5 # <CJK>
+0xE477 0x92A4 # <CJK>
+0xE478 0x9276 # <CJK>
+0xE479 0x929B # <CJK>
+0xE47A 0x927A # <CJK>
+0xE47B 0x92A0 # <CJK>
+0xE47C 0x9294 # <CJK>
+0xE47D 0x92AA # <CJK>
+0xE47E 0x928D # <CJK>
+0xE4A1 0x92A6 # <CJK>
+0xE4A2 0x929A # <CJK>
+0xE4A3 0x92AB # <CJK>
+0xE4A4 0x9279 # <CJK>
+0xE4A5 0x9297 # <CJK>
+0xE4A6 0x927F # <CJK>
+0xE4A7 0x92A3 # <CJK>
+0xE4A8 0x92EE # <CJK>
+0xE4A9 0x928E # <CJK>
+0xE4AA 0x9282 # <CJK>
+0xE4AB 0x9295 # <CJK>
+0xE4AC 0x92A2 # <CJK>
+0xE4AD 0x927D # <CJK>
+0xE4AE 0x9288 # <CJK>
+0xE4AF 0x92A1 # <CJK>
+0xE4B0 0x928A # <CJK>
+0xE4B1 0x9286 # <CJK>
+0xE4B2 0x928C # <CJK>
+0xE4B3 0x9299 # <CJK>
+0xE4B4 0x92A7 # <CJK>
+0xE4B5 0x927E # <CJK>
+0xE4B6 0x9287 # <CJK>
+0xE4B7 0x92A9 # <CJK>
+0xE4B8 0x929D # <CJK>
+0xE4B9 0x928B # <CJK>
+0xE4BA 0x922D # <CJK>
+0xE4BB 0x969E # <CJK>
+0xE4BC 0x96A1 # <CJK>
+0xE4BD 0x96FF # <CJK>
+0xE4BE 0x9758 # <CJK>
+0xE4BF 0x977D # <CJK>
+0xE4C0 0x977A # <CJK>
+0xE4C1 0x977E # <CJK>
+0xE4C2 0x9783 # <CJK>
+0xE4C3 0x9780 # <CJK>
+0xE4C4 0x9782 # <CJK>
+0xE4C5 0x977B # <CJK>
+0xE4C6 0x9784 # <CJK>
+0xE4C7 0x9781 # <CJK>
+0xE4C8 0x977F # <CJK>
+0xE4C9 0x97CE # <CJK>
+0xE4CA 0x97CD # <CJK>
+0xE4CB 0x9816 # <CJK>
+0xE4CC 0x98AD # <CJK>
+0xE4CD 0x98AE # <CJK>
+0xE4CE 0x9902 # <CJK>
+0xE4CF 0x9900 # <CJK>
+0xE4D0 0x9907 # <CJK>
+0xE4D1 0x999D # <CJK>
+0xE4D2 0x999C # <CJK>
+0xE4D3 0x99C3 # <CJK>
+0xE4D4 0x99B9 # <CJK>
+0xE4D5 0x99BB # <CJK>
+0xE4D6 0x99BA # <CJK>
+0xE4D7 0x99C2 # <CJK>
+0xE4D8 0x99BD # <CJK>
+0xE4D9 0x99C7 # <CJK>
+0xE4DA 0x9AB1 # <CJK>
+0xE4DB 0x9AE3 # <CJK>
+0xE4DC 0x9AE7 # <CJK>
+0xE4DD 0x9B3E # <CJK>
+0xE4DE 0x9B3F # <CJK>
+0xE4DF 0x9B60 # <CJK>
+0xE4E0 0x9B61 # <CJK>
+0xE4E1 0x9B5F # <CJK>
+0xE4E2 0x9CF1 # <CJK>
+0xE4E3 0x9CF2 # <CJK>
+0xE4E4 0x9CF5 # <CJK>
+0xE4E5 0x9EA7 # <CJK>
+0xE4E6 0x50FF # <CJK>
+0xE4E7 0x5103 # <CJK>
+0xE4E8 0x5130 # <CJK>
+0xE4E9 0x50F8 # <CJK>
+0xE4EA 0x5106 # <CJK>
+0xE4EB 0x5107 # <CJK>
+0xE4EC 0x50F6 # <CJK>
+0xE4ED 0x50FE # <CJK>
+0xE4EE 0x510B # <CJK>
+0xE4EF 0x510C # <CJK>
+0xE4F0 0x50FD # <CJK>
+0xE4F1 0x510A # <CJK>
+0xE4F2 0x528B # <CJK>
+0xE4F3 0x528C # <CJK>
+0xE4F4 0x52F1 # <CJK>
+0xE4F5 0x52EF # <CJK>
+0xE4F6 0x5648 # <CJK>
+0xE4F7 0x5642 # <CJK>
+0xE4F8 0x564C # <CJK>
+0xE4F9 0x5635 # <CJK>
+0xE4FA 0x5641 # <CJK>
+0xE4FB 0x564A # <CJK>
+0xE4FC 0x5649 # <CJK>
+0xE4FD 0x5646 # <CJK>
+0xE4FE 0x5658 # <CJK>
+0xE540 0x565A # <CJK>
+0xE541 0x5640 # <CJK>
+0xE542 0x5633 # <CJK>
+0xE543 0x563D # <CJK>
+0xE544 0x562C # <CJK>
+0xE545 0x563E # <CJK>
+0xE546 0x5638 # <CJK>
+0xE547 0x562A # <CJK>
+0xE548 0x563A # <CJK>
+0xE549 0x571A # <CJK>
+0xE54A 0x58AB # <CJK>
+0xE54B 0x589D # <CJK>
+0xE54C 0x58B1 # <CJK>
+0xE54D 0x58A0 # <CJK>
+0xE54E 0x58A3 # <CJK>
+0xE54F 0x58AF # <CJK>
+0xE550 0x58AC # <CJK>
+0xE551 0x58A5 # <CJK>
+0xE552 0x58A1 # <CJK>
+0xE553 0x58FF # <CJK>
+0xE554 0x5AFF # <CJK>
+0xE555 0x5AF4 # <CJK>
+0xE556 0x5AFD # <CJK>
+0xE557 0x5AF7 # <CJK>
+0xE558 0x5AF6 # <CJK>
+0xE559 0x5B03 # <CJK>
+0xE55A 0x5AF8 # <CJK>
+0xE55B 0x5B02 # <CJK>
+0xE55C 0x5AF9 # <CJK>
+0xE55D 0x5B01 # <CJK>
+0xE55E 0x5B07 # <CJK>
+0xE55F 0x5B05 # <CJK>
+0xE560 0x5B0F # <CJK>
+0xE561 0x5C67 # <CJK>
+0xE562 0x5D99 # <CJK>
+0xE563 0x5D97 # <CJK>
+0xE564 0x5D9F # <CJK>
+0xE565 0x5D92 # <CJK>
+0xE566 0x5DA2 # <CJK>
+0xE567 0x5D93 # <CJK>
+0xE568 0x5D95 # <CJK>
+0xE569 0x5DA0 # <CJK>
+0xE56A 0x5D9C # <CJK>
+0xE56B 0x5DA1 # <CJK>
+0xE56C 0x5D9A # <CJK>
+0xE56D 0x5D9E # <CJK>
+0xE56E 0x5E69 # <CJK>
+0xE56F 0x5E5D # <CJK>
+0xE570 0x5E60 # <CJK>
+0xE571 0x5E5C # <CJK>
+0xE572 0x7DF3 # <CJK>
+0xE573 0x5EDB # <CJK>
+0xE574 0x5EDE # <CJK>
+0xE575 0x5EE1 # <CJK>
+0xE576 0x5F49 # <CJK>
+0xE577 0x5FB2 # <CJK>
+0xE578 0x618B # <CJK>
+0xE579 0x6183 # <CJK>
+0xE57A 0x6179 # <CJK>
+0xE57B 0x61B1 # <CJK>
+0xE57C 0x61B0 # <CJK>
+0xE57D 0x61A2 # <CJK>
+0xE57E 0x6189 # <CJK>
+0xE5A1 0x619B # <CJK>
+0xE5A2 0x6193 # <CJK>
+0xE5A3 0x61AF # <CJK>
+0xE5A4 0x61AD # <CJK>
+0xE5A5 0x619F # <CJK>
+0xE5A6 0x6192 # <CJK>
+0xE5A7 0x61AA # <CJK>
+0xE5A8 0x61A1 # <CJK>
+0xE5A9 0x618D # <CJK>
+0xE5AA 0x6166 # <CJK>
+0xE5AB 0x61B3 # <CJK>
+0xE5AC 0x622D # <CJK>
+0xE5AD 0x646E # <CJK>
+0xE5AE 0x6470 # <CJK>
+0xE5AF 0x6496 # <CJK>
+0xE5B0 0x64A0 # <CJK>
+0xE5B1 0x6485 # <CJK>
+0xE5B2 0x6497 # <CJK>
+0xE5B3 0x649C # <CJK>
+0xE5B4 0x648F # <CJK>
+0xE5B5 0x648B # <CJK>
+0xE5B6 0x648A # <CJK>
+0xE5B7 0x648C # <CJK>
+0xE5B8 0x64A3 # <CJK>
+0xE5B9 0x649F # <CJK>
+0xE5BA 0x6468 # <CJK>
+0xE5BB 0x64B1 # <CJK>
+0xE5BC 0x6498 # <CJK>
+0xE5BD 0x6576 # <CJK>
+0xE5BE 0x657A # <CJK>
+0xE5BF 0x6579 # <CJK>
+0xE5C0 0x657B # <CJK>
+0xE5C1 0x65B2 # <CJK>
+0xE5C2 0x65B3 # <CJK>
+0xE5C3 0x66B5 # <CJK>
+0xE5C4 0x66B0 # <CJK>
+0xE5C5 0x66A9 # <CJK>
+0xE5C6 0x66B2 # <CJK>
+0xE5C7 0x66B7 # <CJK>
+0xE5C8 0x66AA # <CJK>
+0xE5C9 0x66AF # <CJK>
+0xE5CA 0x6A00 # <CJK>
+0xE5CB 0x6A06 # <CJK>
+0xE5CC 0x6A17 # <CJK>
+0xE5CD 0x69E5 # <CJK>
+0xE5CE 0x69F8 # <CJK>
+0xE5CF 0x6A15 # <CJK>
+0xE5D0 0x69F1 # <CJK>
+0xE5D1 0x69E4 # <CJK>
+0xE5D2 0x6A20 # <CJK>
+0xE5D3 0x69FF # <CJK>
+0xE5D4 0x69EC # <CJK>
+0xE5D5 0x69E2 # <CJK>
+0xE5D6 0x6A1B # <CJK>
+0xE5D7 0x6A1D # <CJK>
+0xE5D8 0x69FE # <CJK>
+0xE5D9 0x6A27 # <CJK>
+0xE5DA 0x69F2 # <CJK>
+0xE5DB 0x69EE # <CJK>
+0xE5DC 0x6A14 # <CJK>
+0xE5DD 0x69F7 # <CJK>
+0xE5DE 0x69E7 # <CJK>
+0xE5DF 0x6A40 # <CJK>
+0xE5E0 0x6A08 # <CJK>
+0xE5E1 0x69E6 # <CJK>
+0xE5E2 0x69FB # <CJK>
+0xE5E3 0x6A0D # <CJK>
+0xE5E4 0x69FC # <CJK>
+0xE5E5 0x69EB # <CJK>
+0xE5E6 0x6A09 # <CJK>
+0xE5E7 0x6A04 # <CJK>
+0xE5E8 0x6A18 # <CJK>
+0xE5E9 0x6A25 # <CJK>
+0xE5EA 0x6A0F # <CJK>
+0xE5EB 0x69F6 # <CJK>
+0xE5EC 0x6A26 # <CJK>
+0xE5ED 0x6A07 # <CJK>
+0xE5EE 0x69F4 # <CJK>
+0xE5EF 0x6A16 # <CJK>
+0xE5F0 0x6B51 # <CJK>
+0xE5F1 0x6BA5 # <CJK>
+0xE5F2 0x6BA3 # <CJK>
+0xE5F3 0x6BA2 # <CJK>
+0xE5F4 0x6BA6 # <CJK>
+0xE5F5 0x6C01 # <CJK>
+0xE5F6 0x6C00 # <CJK>
+0xE5F7 0x6BFF # <CJK>
+0xE5F8 0x6C02 # <CJK>
+0xE5F9 0x6F41 # <CJK>
+0xE5FA 0x6F26 # <CJK>
+0xE5FB 0x6F7E # <CJK>
+0xE5FC 0x6F87 # <CJK>
+0xE5FD 0x6FC6 # <CJK>
+0xE5FE 0x6F92 # <CJK>
+0xE640 0x6F8D # <CJK>
+0xE641 0x6F89 # <CJK>
+0xE642 0x6F8C # <CJK>
+0xE643 0x6F62 # <CJK>
+0xE644 0x6F4F # <CJK>
+0xE645 0x6F85 # <CJK>
+0xE646 0x6F5A # <CJK>
+0xE647 0x6F96 # <CJK>
+0xE648 0x6F76 # <CJK>
+0xE649 0x6F6C # <CJK>
+0xE64A 0x6F82 # <CJK>
+0xE64B 0x6F55 # <CJK>
+0xE64C 0x6F72 # <CJK>
+0xE64D 0x6F52 # <CJK>
+0xE64E 0x6F50 # <CJK>
+0xE64F 0x6F57 # <CJK>
+0xE650 0x6F94 # <CJK>
+0xE651 0x6F93 # <CJK>
+0xE652 0x6F5D # <CJK>
+0xE653 0x6F00 # <CJK>
+0xE654 0x6F61 # <CJK>
+0xE655 0x6F6B # <CJK>
+0xE656 0x6F7D # <CJK>
+0xE657 0x6F67 # <CJK>
+0xE658 0x6F90 # <CJK>
+0xE659 0x6F53 # <CJK>
+0xE65A 0x6F8B # <CJK>
+0xE65B 0x6F69 # <CJK>
+0xE65C 0x6F7F # <CJK>
+0xE65D 0x6F95 # <CJK>
+0xE65E 0x6F63 # <CJK>
+0xE65F 0x6F77 # <CJK>
+0xE660 0x6F6A # <CJK>
+0xE661 0x6F7B # <CJK>
+0xE662 0x71B2 # <CJK>
+0xE663 0x71AF # <CJK>
+0xE664 0x719B # <CJK>
+0xE665 0x71B0 # <CJK>
+0xE666 0x71A0 # <CJK>
+0xE667 0x719A # <CJK>
+0xE668 0x71A9 # <CJK>
+0xE669 0x71B5 # <CJK>
+0xE66A 0x719D # <CJK>
+0xE66B 0x71A5 # <CJK>
+0xE66C 0x719E # <CJK>
+0xE66D 0x71A4 # <CJK>
+0xE66E 0x71A1 # <CJK>
+0xE66F 0x71AA # <CJK>
+0xE670 0x719C # <CJK>
+0xE671 0x71A7 # <CJK>
+0xE672 0x71B3 # <CJK>
+0xE673 0x7298 # <CJK>
+0xE674 0x729A # <CJK>
+0xE675 0x7358 # <CJK>
+0xE676 0x7352 # <CJK>
+0xE677 0x735E # <CJK>
+0xE678 0x735F # <CJK>
+0xE679 0x7360 # <CJK>
+0xE67A 0x735D # <CJK>
+0xE67B 0x735B # <CJK>
+0xE67C 0x7361 # <CJK>
+0xE67D 0x735A # <CJK>
+0xE67E 0x7359 # <CJK>
+0xE6A1 0x7362 # <CJK>
+0xE6A2 0x7487 # <CJK>
+0xE6A3 0x7489 # <CJK>
+0xE6A4 0x748A # <CJK>
+0xE6A5 0x7486 # <CJK>
+0xE6A6 0x7481 # <CJK>
+0xE6A7 0x747D # <CJK>
+0xE6A8 0x7485 # <CJK>
+0xE6A9 0x7488 # <CJK>
+0xE6AA 0x747C # <CJK>
+0xE6AB 0x7479 # <CJK>
+0xE6AC 0x7508 # <CJK>
+0xE6AD 0x7507 # <CJK>
+0xE6AE 0x757E # <CJK>
+0xE6AF 0x7625 # <CJK>
+0xE6B0 0x761E # <CJK>
+0xE6B1 0x7619 # <CJK>
+0xE6B2 0x761D # <CJK>
+0xE6B3 0x761C # <CJK>
+0xE6B4 0x7623 # <CJK>
+0xE6B5 0x761A # <CJK>
+0xE6B6 0x7628 # <CJK>
+0xE6B7 0x761B # <CJK>
+0xE6B8 0x769C # <CJK>
+0xE6B9 0x769D # <CJK>
+0xE6BA 0x769E # <CJK>
+0xE6BB 0x769B # <CJK>
+0xE6BC 0x778D # <CJK>
+0xE6BD 0x778F # <CJK>
+0xE6BE 0x7789 # <CJK>
+0xE6BF 0x7788 # <CJK>
+0xE6C0 0x78CD # <CJK>
+0xE6C1 0x78BB # <CJK>
+0xE6C2 0x78CF # <CJK>
+0xE6C3 0x78CC # <CJK>
+0xE6C4 0x78D1 # <CJK>
+0xE6C5 0x78CE # <CJK>
+0xE6C6 0x78D4 # <CJK>
+0xE6C7 0x78C8 # <CJK>
+0xE6C8 0x78C3 # <CJK>
+0xE6C9 0x78C4 # <CJK>
+0xE6CA 0x78C9 # <CJK>
+0xE6CB 0x799A # <CJK>
+0xE6CC 0x79A1 # <CJK>
+0xE6CD 0x79A0 # <CJK>
+0xE6CE 0x799C # <CJK>
+0xE6CF 0x79A2 # <CJK>
+0xE6D0 0x799B # <CJK>
+0xE6D1 0x6B76 # <CJK>
+0xE6D2 0x7A39 # <CJK>
+0xE6D3 0x7AB2 # <CJK>
+0xE6D4 0x7AB4 # <CJK>
+0xE6D5 0x7AB3 # <CJK>
+0xE6D6 0x7BB7 # <CJK>
+0xE6D7 0x7BCB # <CJK>
+0xE6D8 0x7BBE # <CJK>
+0xE6D9 0x7BAC # <CJK>
+0xE6DA 0x7BCE # <CJK>
+0xE6DB 0x7BAF # <CJK>
+0xE6DC 0x7BB9 # <CJK>
+0xE6DD 0x7BCA # <CJK>
+0xE6DE 0x7BB5 # <CJK>
+0xE6DF 0x7CC5 # <CJK>
+0xE6E0 0x7CC8 # <CJK>
+0xE6E1 0x7CCC # <CJK>
+0xE6E2 0x7CCB # <CJK>
+0xE6E3 0x7DF7 # <CJK>
+0xE6E4 0x7DDB # <CJK>
+0xE6E5 0x7DEA # <CJK>
+0xE6E6 0x7DE7 # <CJK>
+0xE6E7 0x7DD7 # <CJK>
+0xE6E8 0x7DE1 # <CJK>
+0xE6E9 0x7E03 # <CJK>
+0xE6EA 0x7DFA # <CJK>
+0xE6EB 0x7DE6 # <CJK>
+0xE6EC 0x7DF6 # <CJK>
+0xE6ED 0x7DF1 # <CJK>
+0xE6EE 0x7DF0 # <CJK>
+0xE6EF 0x7DEE # <CJK>
+0xE6F0 0x7DDF # <CJK>
+0xE6F1 0x7F76 # <CJK>
+0xE6F2 0x7FAC # <CJK>
+0xE6F3 0x7FB0 # <CJK>
+0xE6F4 0x7FAD # <CJK>
+0xE6F5 0x7FED # <CJK>
+0xE6F6 0x7FEB # <CJK>
+0xE6F7 0x7FEA # <CJK>
+0xE6F8 0x7FEC # <CJK>
+0xE6F9 0x7FE6 # <CJK>
+0xE6FA 0x7FE8 # <CJK>
+0xE6FB 0x8064 # <CJK>
+0xE6FC 0x8067 # <CJK>
+0xE6FD 0x81A3 # <CJK>
+0xE6FE 0x819F # <CJK>
+0xE740 0x819E # <CJK>
+0xE741 0x8195 # <CJK>
+0xE742 0x81A2 # <CJK>
+0xE743 0x8199 # <CJK>
+0xE744 0x8197 # <CJK>
+0xE745 0x8216 # <CJK>
+0xE746 0x824F # <CJK>
+0xE747 0x8253 # <CJK>
+0xE748 0x8252 # <CJK>
+0xE749 0x8250 # <CJK>
+0xE74A 0x824E # <CJK>
+0xE74B 0x8251 # <CJK>
+0xE74C 0x8524 # <CJK>
+0xE74D 0x853B # <CJK>
+0xE74E 0x850F # <CJK>
+0xE74F 0x8500 # <CJK>
+0xE750 0x8529 # <CJK>
+0xE751 0x850E # <CJK>
+0xE752 0x8509 # <CJK>
+0xE753 0x850D # <CJK>
+0xE754 0x851F # <CJK>
+0xE755 0x850A # <CJK>
+0xE756 0x8527 # <CJK>
+0xE757 0x851C # <CJK>
+0xE758 0x84FB # <CJK>
+0xE759 0x852B # <CJK>
+0xE75A 0x84FA # <CJK>
+0xE75B 0x8508 # <CJK>
+0xE75C 0x850C # <CJK>
+0xE75D 0x84F4 # <CJK>
+0xE75E 0x852A # <CJK>
+0xE75F 0x84F2 # <CJK>
+0xE760 0x8515 # <CJK>
+0xE761 0x84F7 # <CJK>
+0xE762 0x84EB # <CJK>
+0xE763 0x84F3 # <CJK>
+0xE764 0x84FC # <CJK>
+0xE765 0x8512 # <CJK>
+0xE766 0x84EA # <CJK>
+0xE767 0x84E9 # <CJK>
+0xE768 0x8516 # <CJK>
+0xE769 0x84FE # <CJK>
+0xE76A 0x8528 # <CJK>
+0xE76B 0x851D # <CJK>
+0xE76C 0x852E # <CJK>
+0xE76D 0x8502 # <CJK>
+0xE76E 0x84FD # <CJK>
+0xE76F 0x851E # <CJK>
+0xE770 0x84F6 # <CJK>
+0xE771 0x8531 # <CJK>
+0xE772 0x8526 # <CJK>
+0xE773 0x84E7 # <CJK>
+0xE774 0x84E8 # <CJK>
+0xE775 0x84F0 # <CJK>
+0xE776 0x84EF # <CJK>
+0xE777 0x84F9 # <CJK>
+0xE778 0x8518 # <CJK>
+0xE779 0x8520 # <CJK>
+0xE77A 0x8530 # <CJK>
+0xE77B 0x850B # <CJK>
+0xE77C 0x8519 # <CJK>
+0xE77D 0x852F # <CJK>
+0xE77E 0x8662 # <CJK>
+0xE7A1 0x8756 # <CJK>
+0xE7A2 0x8763 # <CJK>
+0xE7A3 0x8764 # <CJK>
+0xE7A4 0x8777 # <CJK>
+0xE7A5 0x87E1 # <CJK>
+0xE7A6 0x8773 # <CJK>
+0xE7A7 0x8758 # <CJK>
+0xE7A8 0x8754 # <CJK>
+0xE7A9 0x875B # <CJK>
+0xE7AA 0x8752 # <CJK>
+0xE7AB 0x8761 # <CJK>
+0xE7AC 0x875A # <CJK>
+0xE7AD 0x8751 # <CJK>
+0xE7AE 0x875E # <CJK>
+0xE7AF 0x876D # <CJK>
+0xE7B0 0x876A # <CJK>
+0xE7B1 0x8750 # <CJK>
+0xE7B2 0x874E # <CJK>
+0xE7B3 0x875F # <CJK>
+0xE7B4 0x875D # <CJK>
+0xE7B5 0x876F # <CJK>
+0xE7B6 0x876C # <CJK>
+0xE7B7 0x877A # <CJK>
+0xE7B8 0x876E # <CJK>
+0xE7B9 0x875C # <CJK>
+0xE7BA 0x8765 # <CJK>
+0xE7BB 0x874F # <CJK>
+0xE7BC 0x877B # <CJK>
+0xE7BD 0x8775 # <CJK>
+0xE7BE 0x8762 # <CJK>
+0xE7BF 0x8767 # <CJK>
+0xE7C0 0x8769 # <CJK>
+0xE7C1 0x885A # <CJK>
+0xE7C2 0x8905 # <CJK>
+0xE7C3 0x890C # <CJK>
+0xE7C4 0x8914 # <CJK>
+0xE7C5 0x890B # <CJK>
+0xE7C6 0x8917 # <CJK>
+0xE7C7 0x8918 # <CJK>
+0xE7C8 0x8919 # <CJK>
+0xE7C9 0x8906 # <CJK>
+0xE7CA 0x8916 # <CJK>
+0xE7CB 0x8911 # <CJK>
+0xE7CC 0x890E # <CJK>
+0xE7CD 0x8909 # <CJK>
+0xE7CE 0x89A2 # <CJK>
+0xE7CF 0x89A4 # <CJK>
+0xE7D0 0x89A3 # <CJK>
+0xE7D1 0x89ED # <CJK>
+0xE7D2 0x89F0 # <CJK>
+0xE7D3 0x89EC # <CJK>
+0xE7D4 0x8ACF # <CJK>
+0xE7D5 0x8AC6 # <CJK>
+0xE7D6 0x8AB8 # <CJK>
+0xE7D7 0x8AD3 # <CJK>
+0xE7D8 0x8AD1 # <CJK>
+0xE7D9 0x8AD4 # <CJK>
+0xE7DA 0x8AD5 # <CJK>
+0xE7DB 0x8ABB # <CJK>
+0xE7DC 0x8AD7 # <CJK>
+0xE7DD 0x8ABE # <CJK>
+0xE7DE 0x8AC0 # <CJK>
+0xE7DF 0x8AC5 # <CJK>
+0xE7E0 0x8AD8 # <CJK>
+0xE7E1 0x8AC3 # <CJK>
+0xE7E2 0x8ABA # <CJK>
+0xE7E3 0x8ABD # <CJK>
+0xE7E4 0x8AD9 # <CJK>
+0xE7E5 0x8C3E # <CJK>
+0xE7E6 0x8C4D # <CJK>
+0xE7E7 0x8C8F # <CJK>
+0xE7E8 0x8CE5 # <CJK>
+0xE7E9 0x8CDF # <CJK>
+0xE7EA 0x8CD9 # <CJK>
+0xE7EB 0x8CE8 # <CJK>
+0xE7EC 0x8CDA # <CJK>
+0xE7ED 0x8CDD # <CJK>
+0xE7EE 0x8CE7 # <CJK>
+0xE7EF 0x8DA0 # <CJK>
+0xE7F0 0x8D9C # <CJK>
+0xE7F1 0x8DA1 # <CJK>
+0xE7F2 0x8D9B # <CJK>
+0xE7F3 0x8E20 # <CJK>
+0xE7F4 0x8E23 # <CJK>
+0xE7F5 0x8E25 # <CJK>
+0xE7F6 0x8E24 # <CJK>
+0xE7F7 0x8E2E # <CJK>
+0xE7F8 0x8E15 # <CJK>
+0xE7F9 0x8E1B # <CJK>
+0xE7FA 0x8E16 # <CJK>
+0xE7FB 0x8E11 # <CJK>
+0xE7FC 0x8E19 # <CJK>
+0xE7FD 0x8E26 # <CJK>
+0xE7FE 0x8E27 # <CJK>
+0xE840 0x8E14 # <CJK>
+0xE841 0x8E12 # <CJK>
+0xE842 0x8E18 # <CJK>
+0xE843 0x8E13 # <CJK>
+0xE844 0x8E1C # <CJK>
+0xE845 0x8E17 # <CJK>
+0xE846 0x8E1A # <CJK>
+0xE847 0x8F2C # <CJK>
+0xE848 0x8F24 # <CJK>
+0xE849 0x8F18 # <CJK>
+0xE84A 0x8F1A # <CJK>
+0xE84B 0x8F20 # <CJK>
+0xE84C 0x8F23 # <CJK>
+0xE84D 0x8F16 # <CJK>
+0xE84E 0x8F17 # <CJK>
+0xE84F 0x9073 # <CJK>
+0xE850 0x9070 # <CJK>
+0xE851 0x906F # <CJK>
+0xE852 0x9067 # <CJK>
+0xE853 0x906B # <CJK>
+0xE854 0x912F # <CJK>
+0xE855 0x912B # <CJK>
+0xE856 0x9129 # <CJK>
+0xE857 0x912A # <CJK>
+0xE858 0x9132 # <CJK>
+0xE859 0x9126 # <CJK>
+0xE85A 0x912E # <CJK>
+0xE85B 0x9185 # <CJK>
+0xE85C 0x9186 # <CJK>
+0xE85D 0x918A # <CJK>
+0xE85E 0x9181 # <CJK>
+0xE85F 0x9182 # <CJK>
+0xE860 0x9184 # <CJK>
+0xE861 0x9180 # <CJK>
+0xE862 0x92D0 # <CJK>
+0xE863 0x92C3 # <CJK>
+0xE864 0x92C4 # <CJK>
+0xE865 0x92C0 # <CJK>
+0xE866 0x92D9 # <CJK>
+0xE867 0x92B6 # <CJK>
+0xE868 0x92CF # <CJK>
+0xE869 0x92F1 # <CJK>
+0xE86A 0x92DF # <CJK>
+0xE86B 0x92D8 # <CJK>
+0xE86C 0x92E9 # <CJK>
+0xE86D 0x92D7 # <CJK>
+0xE86E 0x92DD # <CJK>
+0xE86F 0x92CC # <CJK>
+0xE870 0x92EF # <CJK>
+0xE871 0x92C2 # <CJK>
+0xE872 0x92E8 # <CJK>
+0xE873 0x92CA # <CJK>
+0xE874 0x92C8 # <CJK>
+0xE875 0x92CE # <CJK>
+0xE876 0x92E6 # <CJK>
+0xE877 0x92CD # <CJK>
+0xE878 0x92D5 # <CJK>
+0xE879 0x92C9 # <CJK>
+0xE87A 0x92E0 # <CJK>
+0xE87B 0x92DE # <CJK>
+0xE87C 0x92E7 # <CJK>
+0xE87D 0x92D1 # <CJK>
+0xE87E 0x92D3 # <CJK>
+0xE8A1 0x92B5 # <CJK>
+0xE8A2 0x92E1 # <CJK>
+0xE8A3 0x92C6 # <CJK>
+0xE8A4 0x92B4 # <CJK>
+0xE8A5 0x957C # <CJK>
+0xE8A6 0x95AC # <CJK>
+0xE8A7 0x95AB # <CJK>
+0xE8A8 0x95AE # <CJK>
+0xE8A9 0x95B0 # <CJK>
+0xE8AA 0x96A4 # <CJK>
+0xE8AB 0x96A2 # <CJK>
+0xE8AC 0x96D3 # <CJK>
+0xE8AD 0x9705 # <CJK>
+0xE8AE 0x9708 # <CJK>
+0xE8AF 0x9702 # <CJK>
+0xE8B0 0x975A # <CJK>
+0xE8B1 0x978A # <CJK>
+0xE8B2 0x978E # <CJK>
+0xE8B3 0x9788 # <CJK>
+0xE8B4 0x97D0 # <CJK>
+0xE8B5 0x97CF # <CJK>
+0xE8B6 0x981E # <CJK>
+0xE8B7 0x981D # <CJK>
+0xE8B8 0x9826 # <CJK>
+0xE8B9 0x9829 # <CJK>
+0xE8BA 0x9828 # <CJK>
+0xE8BB 0x9820 # <CJK>
+0xE8BC 0x981B # <CJK>
+0xE8BD 0x9827 # <CJK>
+0xE8BE 0x98B2 # <CJK>
+0xE8BF 0x9908 # <CJK>
+0xE8C0 0x98FA # <CJK>
+0xE8C1 0x9911 # <CJK>
+0xE8C2 0x9914 # <CJK>
+0xE8C3 0x9916 # <CJK>
+0xE8C4 0x9917 # <CJK>
+0xE8C5 0x9915 # <CJK>
+0xE8C6 0x99DC # <CJK>
+0xE8C7 0x99CD # <CJK>
+0xE8C8 0x99CF # <CJK>
+0xE8C9 0x99D3 # <CJK>
+0xE8CA 0x99D4 # <CJK>
+0xE8CB 0x99CE # <CJK>
+0xE8CC 0x99C9 # <CJK>
+0xE8CD 0x99D6 # <CJK>
+0xE8CE 0x99D8 # <CJK>
+0xE8CF 0x99CB # <CJK>
+0xE8D0 0x99D7 # <CJK>
+0xE8D1 0x99CC # <CJK>
+0xE8D2 0x9AB3 # <CJK>
+0xE8D3 0x9AEC # <CJK>
+0xE8D4 0x9AEB # <CJK>
+0xE8D5 0x9AF3 # <CJK>
+0xE8D6 0x9AF2 # <CJK>
+0xE8D7 0x9AF1 # <CJK>
+0xE8D8 0x9B46 # <CJK>
+0xE8D9 0x9B43 # <CJK>
+0xE8DA 0x9B67 # <CJK>
+0xE8DB 0x9B74 # <CJK>
+0xE8DC 0x9B71 # <CJK>
+0xE8DD 0x9B66 # <CJK>
+0xE8DE 0x9B76 # <CJK>
+0xE8DF 0x9B75 # <CJK>
+0xE8E0 0x9B70 # <CJK>
+0xE8E1 0x9B68 # <CJK>
+0xE8E2 0x9B64 # <CJK>
+0xE8E3 0x9B6C # <CJK>
+0xE8E4 0x9CFC # <CJK>
+0xE8E5 0x9CFA # <CJK>
+0xE8E6 0x9CFD # <CJK>
+0xE8E7 0x9CFF # <CJK>
+0xE8E8 0x9CF7 # <CJK>
+0xE8E9 0x9D07 # <CJK>
+0xE8EA 0x9D00 # <CJK>
+0xE8EB 0x9CF9 # <CJK>
+0xE8EC 0x9CFB # <CJK>
+0xE8ED 0x9D08 # <CJK>
+0xE8EE 0x9D05 # <CJK>
+0xE8EF 0x9D04 # <CJK>
+0xE8F0 0x9E83 # <CJK>
+0xE8F1 0x9ED3 # <CJK>
+0xE8F2 0x9F0F # <CJK>
+0xE8F3 0x9F10 # <CJK>
+0xE8F4 0x511C # <CJK>
+0xE8F5 0x5113 # <CJK>
+0xE8F6 0x5117 # <CJK>
+0xE8F7 0x511A # <CJK>
+0xE8F8 0x5111 # <CJK>
+0xE8F9 0x51DE # <CJK>
+0xE8FA 0x5334 # <CJK>
+0xE8FB 0x53E1 # <CJK>
+0xE8FC 0x5670 # <CJK>
+0xE8FD 0x5660 # <CJK>
+0xE8FE 0x566E # <CJK>
+0xE940 0x5673 # <CJK>
+0xE941 0x5666 # <CJK>
+0xE942 0x5663 # <CJK>
+0xE943 0x566D # <CJK>
+0xE944 0x5672 # <CJK>
+0xE945 0x565E # <CJK>
+0xE946 0x5677 # <CJK>
+0xE947 0x571C # <CJK>
+0xE948 0x571B # <CJK>
+0xE949 0x58C8 # <CJK>
+0xE94A 0x58BD # <CJK>
+0xE94B 0x58C9 # <CJK>
+0xE94C 0x58BF # <CJK>
+0xE94D 0x58BA # <CJK>
+0xE94E 0x58C2 # <CJK>
+0xE94F 0x58BC # <CJK>
+0xE950 0x58C6 # <CJK>
+0xE951 0x5B17 # <CJK>
+0xE952 0x5B19 # <CJK>
+0xE953 0x5B1B # <CJK>
+0xE954 0x5B21 # <CJK>
+0xE955 0x5B14 # <CJK>
+0xE956 0x5B13 # <CJK>
+0xE957 0x5B10 # <CJK>
+0xE958 0x5B16 # <CJK>
+0xE959 0x5B28 # <CJK>
+0xE95A 0x5B1A # <CJK>
+0xE95B 0x5B20 # <CJK>
+0xE95C 0x5B1E # <CJK>
+0xE95D 0x5BEF # <CJK>
+0xE95E 0x5DAC # <CJK>
+0xE95F 0x5DB1 # <CJK>
+0xE960 0x5DA9 # <CJK>
+0xE961 0x5DA7 # <CJK>
+0xE962 0x5DB5 # <CJK>
+0xE963 0x5DB0 # <CJK>
+0xE964 0x5DAE # <CJK>
+0xE965 0x5DAA # <CJK>
+0xE966 0x5DA8 # <CJK>
+0xE967 0x5DB2 # <CJK>
+0xE968 0x5DAD # <CJK>
+0xE969 0x5DAF # <CJK>
+0xE96A 0x5DB4 # <CJK>
+0xE96B 0x5E67 # <CJK>
+0xE96C 0x5E68 # <CJK>
+0xE96D 0x5E66 # <CJK>
+0xE96E 0x5E6F # <CJK>
+0xE96F 0x5EE9 # <CJK>
+0xE970 0x5EE7 # <CJK>
+0xE971 0x5EE6 # <CJK>
+0xE972 0x5EE8 # <CJK>
+0xE973 0x5EE5 # <CJK>
+0xE974 0x5F4B # <CJK>
+0xE975 0x5FBC # <CJK>
+0xE976 0x619D # <CJK>
+0xE977 0x61A8 # <CJK>
+0xE978 0x6196 # <CJK>
+0xE979 0x61C5 # <CJK>
+0xE97A 0x61B4 # <CJK>
+0xE97B 0x61C6 # <CJK>
+0xE97C 0x61C1 # <CJK>
+0xE97D 0x61CC # <CJK>
+0xE97E 0x61BA # <CJK>
+0xE9A1 0x61BF # <CJK>
+0xE9A2 0x61B8 # <CJK>
+0xE9A3 0x618C # <CJK>
+0xE9A4 0x64D7 # <CJK>
+0xE9A5 0x64D6 # <CJK>
+0xE9A6 0x64D0 # <CJK>
+0xE9A7 0x64CF # <CJK>
+0xE9A8 0x64C9 # <CJK>
+0xE9A9 0x64BD # <CJK>
+0xE9AA 0x6489 # <CJK>
+0xE9AB 0x64C3 # <CJK>
+0xE9AC 0x64DB # <CJK>
+0xE9AD 0x64F3 # <CJK>
+0xE9AE 0x64D9 # <CJK>
+0xE9AF 0x6533 # <CJK>
+0xE9B0 0x657F # <CJK>
+0xE9B1 0x657C # <CJK>
+0xE9B2 0x65A2 # <CJK>
+0xE9B3 0x66C8 # <CJK>
+0xE9B4 0x66BE # <CJK>
+0xE9B5 0x66C0 # <CJK>
+0xE9B6 0x66CA # <CJK>
+0xE9B7 0x66CB # <CJK>
+0xE9B8 0x66CF # <CJK>
+0xE9B9 0x66BD # <CJK>
+0xE9BA 0x66BB # <CJK>
+0xE9BB 0x66BA # <CJK>
+0xE9BC 0x66CC # <CJK>
+0xE9BD 0x6723 # <CJK>
+0xE9BE 0x6A34 # <CJK>
+0xE9BF 0x6A66 # <CJK>
+0xE9C0 0x6A49 # <CJK>
+0xE9C1 0x6A67 # <CJK>
+0xE9C2 0x6A32 # <CJK>
+0xE9C3 0x6A68 # <CJK>
+0xE9C4 0x6A3E # <CJK>
+0xE9C5 0x6A5D # <CJK>
+0xE9C6 0x6A6D # <CJK>
+0xE9C7 0x6A76 # <CJK>
+0xE9C8 0x6A5B # <CJK>
+0xE9C9 0x6A51 # <CJK>
+0xE9CA 0x6A28 # <CJK>
+0xE9CB 0x6A5A # <CJK>
+0xE9CC 0x6A3B # <CJK>
+0xE9CD 0x6A3F # <CJK>
+0xE9CE 0x6A41 # <CJK>
+0xE9CF 0x6A6A # <CJK>
+0xE9D0 0x6A64 # <CJK>
+0xE9D1 0x6A50 # <CJK>
+0xE9D2 0x6A4F # <CJK>
+0xE9D3 0x6A54 # <CJK>
+0xE9D4 0x6A6F # <CJK>
+0xE9D5 0x6A69 # <CJK>
+0xE9D6 0x6A60 # <CJK>
+0xE9D7 0x6A3C # <CJK>
+0xE9D8 0x6A5E # <CJK>
+0xE9D9 0x6A56 # <CJK>
+0xE9DA 0x6A55 # <CJK>
+0xE9DB 0x6A4D # <CJK>
+0xE9DC 0x6A4E # <CJK>
+0xE9DD 0x6A46 # <CJK>
+0xE9DE 0x6B55 # <CJK>
+0xE9DF 0x6B54 # <CJK>
+0xE9E0 0x6B56 # <CJK>
+0xE9E1 0x6BA7 # <CJK>
+0xE9E2 0x6BAA # <CJK>
+0xE9E3 0x6BAB # <CJK>
+0xE9E4 0x6BC8 # <CJK>
+0xE9E5 0x6BC7 # <CJK>
+0xE9E6 0x6C04 # <CJK>
+0xE9E7 0x6C03 # <CJK>
+0xE9E8 0x6C06 # <CJK>
+0xE9E9 0x6FAD # <CJK>
+0xE9EA 0x6FCB # <CJK>
+0xE9EB 0x6FA3 # <CJK>
+0xE9EC 0x6FC7 # <CJK>
+0xE9ED 0x6FBC # <CJK>
+0xE9EE 0x6FCE # <CJK>
+0xE9EF 0x6FC8 # <CJK>
+0xE9F0 0x6F5E # <CJK>
+0xE9F1 0x6FC4 # <CJK>
+0xE9F2 0x6FBD # <CJK>
+0xE9F3 0x6F9E # <CJK>
+0xE9F4 0x6FCA # <CJK>
+0xE9F5 0x6FA8 # <CJK>
+0xE9F6 0x7004 # <CJK>
+0xE9F7 0x6FA5 # <CJK>
+0xE9F8 0x6FAE # <CJK>
+0xE9F9 0x6FBA # <CJK>
+0xE9FA 0x6FAC # <CJK>
+0xE9FB 0x6FAA # <CJK>
+0xE9FC 0x6FCF # <CJK>
+0xE9FD 0x6FBF # <CJK>
+0xE9FE 0x6FB8 # <CJK>
+0xEA40 0x6FA2 # <CJK>
+0xEA41 0x6FC9 # <CJK>
+0xEA42 0x6FAB # <CJK>
+0xEA43 0x6FCD # <CJK>
+0xEA44 0x6FAF # <CJK>
+0xEA45 0x6FB2 # <CJK>
+0xEA46 0x6FB0 # <CJK>
+0xEA47 0x71C5 # <CJK>
+0xEA48 0x71C2 # <CJK>
+0xEA49 0x71BF # <CJK>
+0xEA4A 0x71B8 # <CJK>
+0xEA4B 0x71D6 # <CJK>
+0xEA4C 0x71C0 # <CJK>
+0xEA4D 0x71C1 # <CJK>
+0xEA4E 0x71CB # <CJK>
+0xEA4F 0x71D4 # <CJK>
+0xEA50 0x71CA # <CJK>
+0xEA51 0x71C7 # <CJK>
+0xEA52 0x71CF # <CJK>
+0xEA53 0x71BD # <CJK>
+0xEA54 0x71D8 # <CJK>
+0xEA55 0x71BC # <CJK>
+0xEA56 0x71C6 # <CJK>
+0xEA57 0x71DA # <CJK>
+0xEA58 0x71DB # <CJK>
+0xEA59 0x729D # <CJK>
+0xEA5A 0x729E # <CJK>
+0xEA5B 0x7369 # <CJK>
+0xEA5C 0x7366 # <CJK>
+0xEA5D 0x7367 # <CJK>
+0xEA5E 0x736C # <CJK>
+0xEA5F 0x7365 # <CJK>
+0xEA60 0x736B # <CJK>
+0xEA61 0x736A # <CJK>
+0xEA62 0x747F # <CJK>
+0xEA63 0x749A # <CJK>
+0xEA64 0x74A0 # <CJK>
+0xEA65 0x7494 # <CJK>
+0xEA66 0x7492 # <CJK>
+0xEA67 0x7495 # <CJK>
+0xEA68 0x74A1 # <CJK>
+0xEA69 0x750B # <CJK>
+0xEA6A 0x7580 # <CJK>
+0xEA6B 0x762F # <CJK>
+0xEA6C 0x762D # <CJK>
+0xEA6D 0x7631 # <CJK>
+0xEA6E 0x763D # <CJK>
+0xEA6F 0x7633 # <CJK>
+0xEA70 0x763C # <CJK>
+0xEA71 0x7635 # <CJK>
+0xEA72 0x7632 # <CJK>
+0xEA73 0x7630 # <CJK>
+0xEA74 0x76BB # <CJK>
+0xEA75 0x76E6 # <CJK>
+0xEA76 0x779A # <CJK>
+0xEA77 0x779D # <CJK>
+0xEA78 0x77A1 # <CJK>
+0xEA79 0x779C # <CJK>
+0xEA7A 0x779B # <CJK>
+0xEA7B 0x77A2 # <CJK>
+0xEA7C 0x77A3 # <CJK>
+0xEA7D 0x7795 # <CJK>
+0xEA7E 0x7799 # <CJK>
+0xEAA1 0x7797 # <CJK>
+0xEAA2 0x78DD # <CJK>
+0xEAA3 0x78E9 # <CJK>
+0xEAA4 0x78E5 # <CJK>
+0xEAA5 0x78EA # <CJK>
+0xEAA6 0x78DE # <CJK>
+0xEAA7 0x78E3 # <CJK>
+0xEAA8 0x78DB # <CJK>
+0xEAA9 0x78E1 # <CJK>
+0xEAAA 0x78E2 # <CJK>
+0xEAAB 0x78ED # <CJK>
+0xEAAC 0x78DF # <CJK>
+0xEAAD 0x78E0 # <CJK>
+0xEAAE 0x79A4 # <CJK>
+0xEAAF 0x7A44 # <CJK>
+0xEAB0 0x7A48 # <CJK>
+0xEAB1 0x7A47 # <CJK>
+0xEAB2 0x7AB6 # <CJK>
+0xEAB3 0x7AB8 # <CJK>
+0xEAB4 0x7AB5 # <CJK>
+0xEAB5 0x7AB1 # <CJK>
+0xEAB6 0x7AB7 # <CJK>
+0xEAB7 0x7BDE # <CJK>
+0xEAB8 0x7BE3 # <CJK>
+0xEAB9 0x7BE7 # <CJK>
+0xEABA 0x7BDD # <CJK>
+0xEABB 0x7BD5 # <CJK>
+0xEABC 0x7BE5 # <CJK>
+0xEABD 0x7BDA # <CJK>
+0xEABE 0x7BE8 # <CJK>
+0xEABF 0x7BF9 # <CJK>
+0xEAC0 0x7BD4 # <CJK>
+0xEAC1 0x7BEA # <CJK>
+0xEAC2 0x7BE2 # <CJK>
+0xEAC3 0x7BDC # <CJK>
+0xEAC4 0x7BEB # <CJK>
+0xEAC5 0x7BD8 # <CJK>
+0xEAC6 0x7BDF # <CJK>
+0xEAC7 0x7CD2 # <CJK>
+0xEAC8 0x7CD4 # <CJK>
+0xEAC9 0x7CD7 # <CJK>
+0xEACA 0x7CD0 # <CJK>
+0xEACB 0x7CD1 # <CJK>
+0xEACC 0x7E12 # <CJK>
+0xEACD 0x7E21 # <CJK>
+0xEACE 0x7E17 # <CJK>
+0xEACF 0x7E0C # <CJK>
+0xEAD0 0x7E1F # <CJK>
+0xEAD1 0x7E20 # <CJK>
+0xEAD2 0x7E13 # <CJK>
+0xEAD3 0x7E0E # <CJK>
+0xEAD4 0x7E1C # <CJK>
+0xEAD5 0x7E15 # <CJK>
+0xEAD6 0x7E1A # <CJK>
+0xEAD7 0x7E22 # <CJK>
+0xEAD8 0x7E0B # <CJK>
+0xEAD9 0x7E0F # <CJK>
+0xEADA 0x7E16 # <CJK>
+0xEADB 0x7E0D # <CJK>
+0xEADC 0x7E14 # <CJK>
+0xEADD 0x7E25 # <CJK>
+0xEADE 0x7E24 # <CJK>
+0xEADF 0x7F43 # <CJK>
+0xEAE0 0x7F7B # <CJK>
+0xEAE1 0x7F7C # <CJK>
+0xEAE2 0x7F7A # <CJK>
+0xEAE3 0x7FB1 # <CJK>
+0xEAE4 0x7FEF # <CJK>
+0xEAE5 0x802A # <CJK>
+0xEAE6 0x8029 # <CJK>
+0xEAE7 0x806C # <CJK>
+0xEAE8 0x81B1 # <CJK>
+0xEAE9 0x81A6 # <CJK>
+0xEAEA 0x81AE # <CJK>
+0xEAEB 0x81B9 # <CJK>
+0xEAEC 0x81B5 # <CJK>
+0xEAED 0x81AB # <CJK>
+0xEAEE 0x81B0 # <CJK>
+0xEAEF 0x81AC # <CJK>
+0xEAF0 0x81B4 # <CJK>
+0xEAF1 0x81B2 # <CJK>
+0xEAF2 0x81B7 # <CJK>
+0xEAF3 0x81A7 # <CJK>
+0xEAF4 0x81F2 # <CJK>
+0xEAF5 0x8255 # <CJK>
+0xEAF6 0x8256 # <CJK>
+0xEAF7 0x8257 # <CJK>
+0xEAF8 0x8556 # <CJK>
+0xEAF9 0x8545 # <CJK>
+0xEAFA 0x856B # <CJK>
+0xEAFB 0x854D # <CJK>
+0xEAFC 0x8553 # <CJK>
+0xEAFD 0x8561 # <CJK>
+0xEAFE 0x8558 # <CJK>
+0xEB40 0x8540 # <CJK>
+0xEB41 0x8546 # <CJK>
+0xEB42 0x8564 # <CJK>
+0xEB43 0x8541 # <CJK>
+0xEB44 0x8562 # <CJK>
+0xEB45 0x8544 # <CJK>
+0xEB46 0x8551 # <CJK>
+0xEB47 0x8547 # <CJK>
+0xEB48 0x8563 # <CJK>
+0xEB49 0x853E # <CJK>
+0xEB4A 0x855B # <CJK>
+0xEB4B 0x8571 # <CJK>
+0xEB4C 0x854E # <CJK>
+0xEB4D 0x856E # <CJK>
+0xEB4E 0x8575 # <CJK>
+0xEB4F 0x8555 # <CJK>
+0xEB50 0x8567 # <CJK>
+0xEB51 0x8560 # <CJK>
+0xEB52 0x858C # <CJK>
+0xEB53 0x8566 # <CJK>
+0xEB54 0x855D # <CJK>
+0xEB55 0x8554 # <CJK>
+0xEB56 0x8565 # <CJK>
+0xEB57 0x856C # <CJK>
+0xEB58 0x8663 # <CJK>
+0xEB59 0x8665 # <CJK>
+0xEB5A 0x8664 # <CJK>
+0xEB5B 0x879B # <CJK>
+0xEB5C 0x878F # <CJK>
+0xEB5D 0x8797 # <CJK>
+0xEB5E 0x8793 # <CJK>
+0xEB5F 0x8792 # <CJK>
+0xEB60 0x8788 # <CJK>
+0xEB61 0x8781 # <CJK>
+0xEB62 0x8796 # <CJK>
+0xEB63 0x8798 # <CJK>
+0xEB64 0x8779 # <CJK>
+0xEB65 0x8787 # <CJK>
+0xEB66 0x87A3 # <CJK>
+0xEB67 0x8785 # <CJK>
+0xEB68 0x8790 # <CJK>
+0xEB69 0x8791 # <CJK>
+0xEB6A 0x879D # <CJK>
+0xEB6B 0x8784 # <CJK>
+0xEB6C 0x8794 # <CJK>
+0xEB6D 0x879C # <CJK>
+0xEB6E 0x879A # <CJK>
+0xEB6F 0x8789 # <CJK>
+0xEB70 0x891E # <CJK>
+0xEB71 0x8926 # <CJK>
+0xEB72 0x8930 # <CJK>
+0xEB73 0x892D # <CJK>
+0xEB74 0x892E # <CJK>
+0xEB75 0x8927 # <CJK>
+0xEB76 0x8931 # <CJK>
+0xEB77 0x8922 # <CJK>
+0xEB78 0x8929 # <CJK>
+0xEB79 0x8923 # <CJK>
+0xEB7A 0x892F # <CJK>
+0xEB7B 0x892C # <CJK>
+0xEB7C 0x891F # <CJK>
+0xEB7D 0x89F1 # <CJK>
+0xEB7E 0x8AE0 # <CJK>
+0xEBA1 0x8AE2 # <CJK>
+0xEBA2 0x8AF2 # <CJK>
+0xEBA3 0x8AF4 # <CJK>
+0xEBA4 0x8AF5 # <CJK>
+0xEBA5 0x8ADD # <CJK>
+0xEBA6 0x8B14 # <CJK>
+0xEBA7 0x8AE4 # <CJK>
+0xEBA8 0x8ADF # <CJK>
+0xEBA9 0x8AF0 # <CJK>
+0xEBAA 0x8AC8 # <CJK>
+0xEBAB 0x8ADE # <CJK>
+0xEBAC 0x8AE1 # <CJK>
+0xEBAD 0x8AE8 # <CJK>
+0xEBAE 0x8AFF # <CJK>
+0xEBAF 0x8AEF # <CJK>
+0xEBB0 0x8AFB # <CJK>
+0xEBB1 0x8C91 # <CJK>
+0xEBB2 0x8C92 # <CJK>
+0xEBB3 0x8C90 # <CJK>
+0xEBB4 0x8CF5 # <CJK>
+0xEBB5 0x8CEE # <CJK>
+0xEBB6 0x8CF1 # <CJK>
+0xEBB7 0x8CF0 # <CJK>
+0xEBB8 0x8CF3 # <CJK>
+0xEBB9 0x8D6C # <CJK>
+0xEBBA 0x8D6E # <CJK>
+0xEBBB 0x8DA5 # <CJK>
+0xEBBC 0x8DA7 # <CJK>
+0xEBBD 0x8E33 # <CJK>
+0xEBBE 0x8E3E # <CJK>
+0xEBBF 0x8E38 # <CJK>
+0xEBC0 0x8E40 # <CJK>
+0xEBC1 0x8E45 # <CJK>
+0xEBC2 0x8E36 # <CJK>
+0xEBC3 0x8E3C # <CJK>
+0xEBC4 0x8E3D # <CJK>
+0xEBC5 0x8E41 # <CJK>
+0xEBC6 0x8E30 # <CJK>
+0xEBC7 0x8E3F # <CJK>
+0xEBC8 0x8EBD # <CJK>
+0xEBC9 0x8F36 # <CJK>
+0xEBCA 0x8F2E # <CJK>
+0xEBCB 0x8F35 # <CJK>
+0xEBCC 0x8F32 # <CJK>
+0xEBCD 0x8F39 # <CJK>
+0xEBCE 0x8F37 # <CJK>
+0xEBCF 0x8F34 # <CJK>
+0xEBD0 0x9076 # <CJK>
+0xEBD1 0x9079 # <CJK>
+0xEBD2 0x907B # <CJK>
+0xEBD3 0x9086 # <CJK>
+0xEBD4 0x90FA # <CJK>
+0xEBD5 0x9133 # <CJK>
+0xEBD6 0x9135 # <CJK>
+0xEBD7 0x9136 # <CJK>
+0xEBD8 0x9193 # <CJK>
+0xEBD9 0x9190 # <CJK>
+0xEBDA 0x9191 # <CJK>
+0xEBDB 0x918D # <CJK>
+0xEBDC 0x918F # <CJK>
+0xEBDD 0x9327 # <CJK>
+0xEBDE 0x931E # <CJK>
+0xEBDF 0x9308 # <CJK>
+0xEBE0 0x931F # <CJK>
+0xEBE1 0x9306 # <CJK>
+0xEBE2 0x930F # <CJK>
+0xEBE3 0x937A # <CJK>
+0xEBE4 0x9338 # <CJK>
+0xEBE5 0x933C # <CJK>
+0xEBE6 0x931B # <CJK>
+0xEBE7 0x9323 # <CJK>
+0xEBE8 0x9312 # <CJK>
+0xEBE9 0x9301 # <CJK>
+0xEBEA 0x9346 # <CJK>
+0xEBEB 0x932D # <CJK>
+0xEBEC 0x930E # <CJK>
+0xEBED 0x930D # <CJK>
+0xEBEE 0x92CB # <CJK>
+0xEBEF 0x931D # <CJK>
+0xEBF0 0x92FA # <CJK>
+0xEBF1 0x9325 # <CJK>
+0xEBF2 0x9313 # <CJK>
+0xEBF3 0x92F9 # <CJK>
+0xEBF4 0x92F7 # <CJK>
+0xEBF5 0x9334 # <CJK>
+0xEBF6 0x9302 # <CJK>
+0xEBF7 0x9324 # <CJK>
+0xEBF8 0x92FF # <CJK>
+0xEBF9 0x9329 # <CJK>
+0xEBFA 0x9339 # <CJK>
+0xEBFB 0x9335 # <CJK>
+0xEBFC 0x932A # <CJK>
+0xEBFD 0x9314 # <CJK>
+0xEBFE 0x930C # <CJK>
+0xEC40 0x930B # <CJK>
+0xEC41 0x92FE # <CJK>
+0xEC42 0x9309 # <CJK>
+0xEC43 0x9300 # <CJK>
+0xEC44 0x92FB # <CJK>
+0xEC45 0x9316 # <CJK>
+0xEC46 0x95BC # <CJK>
+0xEC47 0x95CD # <CJK>
+0xEC48 0x95BE # <CJK>
+0xEC49 0x95B9 # <CJK>
+0xEC4A 0x95BA # <CJK>
+0xEC4B 0x95B6 # <CJK>
+0xEC4C 0x95BF # <CJK>
+0xEC4D 0x95B5 # <CJK>
+0xEC4E 0x95BD # <CJK>
+0xEC4F 0x96A9 # <CJK>
+0xEC50 0x96D4 # <CJK>
+0xEC51 0x970B # <CJK>
+0xEC52 0x9712 # <CJK>
+0xEC53 0x9710 # <CJK>
+0xEC54 0x9799 # <CJK>
+0xEC55 0x9797 # <CJK>
+0xEC56 0x9794 # <CJK>
+0xEC57 0x97F0 # <CJK>
+0xEC58 0x97F8 # <CJK>
+0xEC59 0x9835 # <CJK>
+0xEC5A 0x982F # <CJK>
+0xEC5B 0x9832 # <CJK>
+0xEC5C 0x9924 # <CJK>
+0xEC5D 0x991F # <CJK>
+0xEC5E 0x9927 # <CJK>
+0xEC5F 0x9929 # <CJK>
+0xEC60 0x999E # <CJK>
+0xEC61 0x99EE # <CJK>
+0xEC62 0x99EC # <CJK>
+0xEC63 0x99E5 # <CJK>
+0xEC64 0x99E4 # <CJK>
+0xEC65 0x99F0 # <CJK>
+0xEC66 0x99E3 # <CJK>
+0xEC67 0x99EA # <CJK>
+0xEC68 0x99E9 # <CJK>
+0xEC69 0x99E7 # <CJK>
+0xEC6A 0x9AB9 # <CJK>
+0xEC6B 0x9ABF # <CJK>
+0xEC6C 0x9AB4 # <CJK>
+0xEC6D 0x9ABB # <CJK>
+0xEC6E 0x9AF6 # <CJK>
+0xEC6F 0x9AFA # <CJK>
+0xEC70 0x9AF9 # <CJK>
+0xEC71 0x9AF7 # <CJK>
+0xEC72 0x9B33 # <CJK>
+0xEC73 0x9B80 # <CJK>
+0xEC74 0x9B85 # <CJK>
+0xEC75 0x9B87 # <CJK>
+0xEC76 0x9B7C # <CJK>
+0xEC77 0x9B7E # <CJK>
+0xEC78 0x9B7B # <CJK>
+0xEC79 0x9B82 # <CJK>
+0xEC7A 0x9B93 # <CJK>
+0xEC7B 0x9B92 # <CJK>
+0xEC7C 0x9B90 # <CJK>
+0xEC7D 0x9B7A # <CJK>
+0xEC7E 0x9B95 # <CJK>
+0xECA1 0x9B7D # <CJK>
+0xECA2 0x9B88 # <CJK>
+0xECA3 0x9D25 # <CJK>
+0xECA4 0x9D17 # <CJK>
+0xECA5 0x9D20 # <CJK>
+0xECA6 0x9D1E # <CJK>
+0xECA7 0x9D14 # <CJK>
+0xECA8 0x9D29 # <CJK>
+0xECA9 0x9D1D # <CJK>
+0xECAA 0x9D18 # <CJK>
+0xECAB 0x9D22 # <CJK>
+0xECAC 0x9D10 # <CJK>
+0xECAD 0x9D19 # <CJK>
+0xECAE 0x9D1F # <CJK>
+0xECAF 0x9E88 # <CJK>
+0xECB0 0x9E86 # <CJK>
+0xECB1 0x9E87 # <CJK>
+0xECB2 0x9EAE # <CJK>
+0xECB3 0x9EAD # <CJK>
+0xECB4 0x9ED5 # <CJK>
+0xECB5 0x9ED6 # <CJK>
+0xECB6 0x9EFA # <CJK>
+0xECB7 0x9F12 # <CJK>
+0xECB8 0x9F3D # <CJK>
+0xECB9 0x5126 # <CJK>
+0xECBA 0x5125 # <CJK>
+0xECBB 0x5122 # <CJK>
+0xECBC 0x5124 # <CJK>
+0xECBD 0x5120 # <CJK>
+0xECBE 0x5129 # <CJK>
+0xECBF 0x52F4 # <CJK>
+0xECC0 0x5693 # <CJK>
+0xECC1 0x568C # <CJK>
+0xECC2 0x568D # <CJK>
+0xECC3 0x5686 # <CJK>
+0xECC4 0x5684 # <CJK>
+0xECC5 0x5683 # <CJK>
+0xECC6 0x567E # <CJK>
+0xECC7 0x5682 # <CJK>
+0xECC8 0x567F # <CJK>
+0xECC9 0x5681 # <CJK>
+0xECCA 0x58D6 # <CJK>
+0xECCB 0x58D4 # <CJK>
+0xECCC 0x58CF # <CJK>
+0xECCD 0x58D2 # <CJK>
+0xECCE 0x5B2D # <CJK>
+0xECCF 0x5B25 # <CJK>
+0xECD0 0x5B32 # <CJK>
+0xECD1 0x5B23 # <CJK>
+0xECD2 0x5B2C # <CJK>
+0xECD3 0x5B27 # <CJK>
+0xECD4 0x5B26 # <CJK>
+0xECD5 0x5B2F # <CJK>
+0xECD6 0x5B2E # <CJK>
+0xECD7 0x5B7B # <CJK>
+0xECD8 0x5BF1 # <CJK>
+0xECD9 0x5BF2 # <CJK>
+0xECDA 0x5DB7 # <CJK>
+0xECDB 0x5E6C # <CJK>
+0xECDC 0x5E6A # <CJK>
+0xECDD 0x5FBE # <CJK>
+0xECDE 0x5FBB # <CJK>
+0xECDF 0x61C3 # <CJK>
+0xECE0 0x61B5 # <CJK>
+0xECE1 0x61BC # <CJK>
+0xECE2 0x61E7 # <CJK>
+0xECE3 0x61E0 # <CJK>
+0xECE4 0x61E5 # <CJK>
+0xECE5 0x61E4 # <CJK>
+0xECE6 0x61E8 # <CJK>
+0xECE7 0x61DE # <CJK>
+0xECE8 0x64EF # <CJK>
+0xECE9 0x64E9 # <CJK>
+0xECEA 0x64E3 # <CJK>
+0xECEB 0x64EB # <CJK>
+0xECEC 0x64E4 # <CJK>
+0xECED 0x64E8 # <CJK>
+0xECEE 0x6581 # <CJK>
+0xECEF 0x6580 # <CJK>
+0xECF0 0x65B6 # <CJK>
+0xECF1 0x65DA # <CJK>
+0xECF2 0x66D2 # <CJK>
+0xECF3 0x6A8D # <CJK>
+0xECF4 0x6A96 # <CJK>
+0xECF5 0x6A81 # <CJK>
+0xECF6 0x6AA5 # <CJK>
+0xECF7 0x6A89 # <CJK>
+0xECF8 0x6A9F # <CJK>
+0xECF9 0x6A9B # <CJK>
+0xECFA 0x6AA1 # <CJK>
+0xECFB 0x6A9E # <CJK>
+0xECFC 0x6A87 # <CJK>
+0xECFD 0x6A93 # <CJK>
+0xECFE 0x6A8E # <CJK>
+0xED40 0x6A95 # <CJK>
+0xED41 0x6A83 # <CJK>
+0xED42 0x6AA8 # <CJK>
+0xED43 0x6AA4 # <CJK>
+0xED44 0x6A91 # <CJK>
+0xED45 0x6A7F # <CJK>
+0xED46 0x6AA6 # <CJK>
+0xED47 0x6A9A # <CJK>
+0xED48 0x6A85 # <CJK>
+0xED49 0x6A8C # <CJK>
+0xED4A 0x6A92 # <CJK>
+0xED4B 0x6B5B # <CJK>
+0xED4C 0x6BAD # <CJK>
+0xED4D 0x6C09 # <CJK>
+0xED4E 0x6FCC # <CJK>
+0xED4F 0x6FA9 # <CJK>
+0xED50 0x6FF4 # <CJK>
+0xED51 0x6FD4 # <CJK>
+0xED52 0x6FE3 # <CJK>
+0xED53 0x6FDC # <CJK>
+0xED54 0x6FED # <CJK>
+0xED55 0x6FE7 # <CJK>
+0xED56 0x6FE6 # <CJK>
+0xED57 0x6FDE # <CJK>
+0xED58 0x6FF2 # <CJK>
+0xED59 0x6FDD # <CJK>
+0xED5A 0x6FE2 # <CJK>
+0xED5B 0x6FE8 # <CJK>
+0xED5C 0x71E1 # <CJK>
+0xED5D 0x71F1 # <CJK>
+0xED5E 0x71E8 # <CJK>
+0xED5F 0x71F2 # <CJK>
+0xED60 0x71E4 # <CJK>
+0xED61 0x71F0 # <CJK>
+0xED62 0x71E2 # <CJK>
+0xED63 0x7373 # <CJK>
+0xED64 0x736E # <CJK>
+0xED65 0x736F # <CJK>
+0xED66 0x7497 # <CJK>
+0xED67 0x74B2 # <CJK>
+0xED68 0x74AB # <CJK>
+0xED69 0x7490 # <CJK>
+0xED6A 0x74AA # <CJK>
+0xED6B 0x74AD # <CJK>
+0xED6C 0x74B1 # <CJK>
+0xED6D 0x74A5 # <CJK>
+0xED6E 0x74AF # <CJK>
+0xED6F 0x7510 # <CJK>
+0xED70 0x7511 # <CJK>
+0xED71 0x7512 # <CJK>
+0xED72 0x750F # <CJK>
+0xED73 0x7584 # <CJK>
+0xED74 0x7643 # <CJK>
+0xED75 0x7648 # <CJK>
+0xED76 0x7649 # <CJK>
+0xED77 0x7647 # <CJK>
+0xED78 0x76A4 # <CJK>
+0xED79 0x76E9 # <CJK>
+0xED7A 0x77B5 # <CJK>
+0xED7B 0x77AB # <CJK>
+0xED7C 0x77B2 # <CJK>
+0xED7D 0x77B7 # <CJK>
+0xED7E 0x77B6 # <CJK>
+0xEDA1 0x77B4 # <CJK>
+0xEDA2 0x77B1 # <CJK>
+0xEDA3 0x77A8 # <CJK>
+0xEDA4 0x77F0 # <CJK>
+0xEDA5 0x78F3 # <CJK>
+0xEDA6 0x78FD # <CJK>
+0xEDA7 0x7902 # <CJK>
+0xEDA8 0x78FB # <CJK>
+0xEDA9 0x78FC # <CJK>
+0xEDAA 0x78F2 # <CJK>
+0xEDAB 0x7905 # <CJK>
+0xEDAC 0x78F9 # <CJK>
+0xEDAD 0x78FE # <CJK>
+0xEDAE 0x7904 # <CJK>
+0xEDAF 0x79AB # <CJK>
+0xEDB0 0x79A8 # <CJK>
+0xEDB1 0x7A5C # <CJK>
+0xEDB2 0x7A5B # <CJK>
+0xEDB3 0x7A56 # <CJK>
+0xEDB4 0x7A58 # <CJK>
+0xEDB5 0x7A54 # <CJK>
+0xEDB6 0x7A5A # <CJK>
+0xEDB7 0x7ABE # <CJK>
+0xEDB8 0x7AC0 # <CJK>
+0xEDB9 0x7AC1 # <CJK>
+0xEDBA 0x7C05 # <CJK>
+0xEDBB 0x7C0F # <CJK>
+0xEDBC 0x7BF2 # <CJK>
+0xEDBD 0x7C00 # <CJK>
+0xEDBE 0x7BFF # <CJK>
+0xEDBF 0x7BFB # <CJK>
+0xEDC0 0x7C0E # <CJK>
+0xEDC1 0x7BF4 # <CJK>
+0xEDC2 0x7C0B # <CJK>
+0xEDC3 0x7BF3 # <CJK>
+0xEDC4 0x7C02 # <CJK>
+0xEDC5 0x7C09 # <CJK>
+0xEDC6 0x7C03 # <CJK>
+0xEDC7 0x7C01 # <CJK>
+0xEDC8 0x7BF8 # <CJK>
+0xEDC9 0x7BFD # <CJK>
+0xEDCA 0x7C06 # <CJK>
+0xEDCB 0x7BF0 # <CJK>
+0xEDCC 0x7BF1 # <CJK>
+0xEDCD 0x7C10 # <CJK>
+0xEDCE 0x7C0A # <CJK>
+0xEDCF 0x7CE8 # <CJK>
+0xEDD0 0x7E2D # <CJK>
+0xEDD1 0x7E3C # <CJK>
+0xEDD2 0x7E42 # <CJK>
+0xEDD3 0x7E33 # <CJK>
+0xEDD4 0x9848 # <CJK>
+0xEDD5 0x7E38 # <CJK>
+0xEDD6 0x7E2A # <CJK>
+0xEDD7 0x7E49 # <CJK>
+0xEDD8 0x7E40 # <CJK>
+0xEDD9 0x7E47 # <CJK>
+0xEDDA 0x7E29 # <CJK>
+0xEDDB 0x7E4C # <CJK>
+0xEDDC 0x7E30 # <CJK>
+0xEDDD 0x7E3B # <CJK>
+0xEDDE 0x7E36 # <CJK>
+0xEDDF 0x7E44 # <CJK>
+0xEDE0 0x7E3A # <CJK>
+0xEDE1 0x7F45 # <CJK>
+0xEDE2 0x7F7F # <CJK>
+0xEDE3 0x7F7E # <CJK>
+0xEDE4 0x7F7D # <CJK>
+0xEDE5 0x7FF4 # <CJK>
+0xEDE6 0x7FF2 # <CJK>
+0xEDE7 0x802C # <CJK>
+0xEDE8 0x81BB # <CJK>
+0xEDE9 0x81C4 # <CJK>
+0xEDEA 0x81CC # <CJK>
+0xEDEB 0x81CA # <CJK>
+0xEDEC 0x81C5 # <CJK>
+0xEDED 0x81C7 # <CJK>
+0xEDEE 0x81BC # <CJK>
+0xEDEF 0x81E9 # <CJK>
+0xEDF0 0x825B # <CJK>
+0xEDF1 0x825A # <CJK>
+0xEDF2 0x825C # <CJK>
+0xEDF3 0x8583 # <CJK>
+0xEDF4 0x8580 # <CJK>
+0xEDF5 0x858F # <CJK>
+0xEDF6 0x85A7 # <CJK>
+0xEDF7 0x8595 # <CJK>
+0xEDF8 0x85A0 # <CJK>
+0xEDF9 0x858B # <CJK>
+0xEDFA 0x85A3 # <CJK>
+0xEDFB 0x857B # <CJK>
+0xEDFC 0x85A4 # <CJK>
+0xEDFD 0x859A # <CJK>
+0xEDFE 0x859E # <CJK>
+0xEE40 0x8577 # <CJK>
+0xEE41 0x857C # <CJK>
+0xEE42 0x8589 # <CJK>
+0xEE43 0x85A1 # <CJK>
+0xEE44 0x857A # <CJK>
+0xEE45 0x8578 # <CJK>
+0xEE46 0x8557 # <CJK>
+0xEE47 0x858E # <CJK>
+0xEE48 0x8596 # <CJK>
+0xEE49 0x8586 # <CJK>
+0xEE4A 0x858D # <CJK>
+0xEE4B 0x8599 # <CJK>
+0xEE4C 0x859D # <CJK>
+0xEE4D 0x8581 # <CJK>
+0xEE4E 0x85A2 # <CJK>
+0xEE4F 0x8582 # <CJK>
+0xEE50 0x8588 # <CJK>
+0xEE51 0x8585 # <CJK>
+0xEE52 0x8579 # <CJK>
+0xEE53 0x8576 # <CJK>
+0xEE54 0x8598 # <CJK>
+0xEE55 0x8590 # <CJK>
+0xEE56 0x859F # <CJK>
+0xEE57 0x8668 # <CJK>
+0xEE58 0x87BE # <CJK>
+0xEE59 0x87AA # <CJK>
+0xEE5A 0x87AD # <CJK>
+0xEE5B 0x87C5 # <CJK>
+0xEE5C 0x87B0 # <CJK>
+0xEE5D 0x87AC # <CJK>
+0xEE5E 0x87B9 # <CJK>
+0xEE5F 0x87B5 # <CJK>
+0xEE60 0x87BC # <CJK>
+0xEE61 0x87AE # <CJK>
+0xEE62 0x87C9 # <CJK>
+0xEE63 0x87C3 # <CJK>
+0xEE64 0x87C2 # <CJK>
+0xEE65 0x87CC # <CJK>
+0xEE66 0x87B7 # <CJK>
+0xEE67 0x87AF # <CJK>
+0xEE68 0x87C4 # <CJK>
+0xEE69 0x87CA # <CJK>
+0xEE6A 0x87B4 # <CJK>
+0xEE6B 0x87B6 # <CJK>
+0xEE6C 0x87BF # <CJK>
+0xEE6D 0x87B8 # <CJK>
+0xEE6E 0x87BD # <CJK>
+0xEE6F 0x87DE # <CJK>
+0xEE70 0x87B2 # <CJK>
+0xEE71 0x8935 # <CJK>
+0xEE72 0x8933 # <CJK>
+0xEE73 0x893C # <CJK>
+0xEE74 0x893E # <CJK>
+0xEE75 0x8941 # <CJK>
+0xEE76 0x8952 # <CJK>
+0xEE77 0x8937 # <CJK>
+0xEE78 0x8942 # <CJK>
+0xEE79 0x89AD # <CJK>
+0xEE7A 0x89AF # <CJK>
+0xEE7B 0x89AE # <CJK>
+0xEE7C 0x89F2 # <CJK>
+0xEE7D 0x89F3 # <CJK>
+0xEE7E 0x8B1E # <CJK>
+0xEEA1 0x8B18 # <CJK>
+0xEEA2 0x8B16 # <CJK>
+0xEEA3 0x8B11 # <CJK>
+0xEEA4 0x8B05 # <CJK>
+0xEEA5 0x8B0B # <CJK>
+0xEEA6 0x8B22 # <CJK>
+0xEEA7 0x8B0F # <CJK>
+0xEEA8 0x8B12 # <CJK>
+0xEEA9 0x8B15 # <CJK>
+0xEEAA 0x8B07 # <CJK>
+0xEEAB 0x8B0D # <CJK>
+0xEEAC 0x8B08 # <CJK>
+0xEEAD 0x8B06 # <CJK>
+0xEEAE 0x8B1C # <CJK>
+0xEEAF 0x8B13 # <CJK>
+0xEEB0 0x8B1A # <CJK>
+0xEEB1 0x8C4F # <CJK>
+0xEEB2 0x8C70 # <CJK>
+0xEEB3 0x8C72 # <CJK>
+0xEEB4 0x8C71 # <CJK>
+0xEEB5 0x8C6F # <CJK>
+0xEEB6 0x8C95 # <CJK>
+0xEEB7 0x8C94 # <CJK>
+0xEEB8 0x8CF9 # <CJK>
+0xEEB9 0x8D6F # <CJK>
+0xEEBA 0x8E4E # <CJK>
+0xEEBB 0x8E4D # <CJK>
+0xEEBC 0x8E53 # <CJK>
+0xEEBD 0x8E50 # <CJK>
+0xEEBE 0x8E4C # <CJK>
+0xEEBF 0x8E47 # <CJK>
+0xEEC0 0x8F43 # <CJK>
+0xEEC1 0x8F40 # <CJK>
+0xEEC2 0x9085 # <CJK>
+0xEEC3 0x907E # <CJK>
+0xEEC4 0x9138 # <CJK>
+0xEEC5 0x919A # <CJK>
+0xEEC6 0x91A2 # <CJK>
+0xEEC7 0x919B # <CJK>
+0xEEC8 0x9199 # <CJK>
+0xEEC9 0x919F # <CJK>
+0xEECA 0x91A1 # <CJK>
+0xEECB 0x919D # <CJK>
+0xEECC 0x91A0 # <CJK>
+0xEECD 0x93A1 # <CJK>
+0xEECE 0x9383 # <CJK>
+0xEECF 0x93AF # <CJK>
+0xEED0 0x9364 # <CJK>
+0xEED1 0x9356 # <CJK>
+0xEED2 0x9347 # <CJK>
+0xEED3 0x937C # <CJK>
+0xEED4 0x9358 # <CJK>
+0xEED5 0x935C # <CJK>
+0xEED6 0x9376 # <CJK>
+0xEED7 0x9349 # <CJK>
+0xEED8 0x9350 # <CJK>
+0xEED9 0x9351 # <CJK>
+0xEEDA 0x9360 # <CJK>
+0xEEDB 0x936D # <CJK>
+0xEEDC 0x938F # <CJK>
+0xEEDD 0x934C # <CJK>
+0xEEDE 0x936A # <CJK>
+0xEEDF 0x9379 # <CJK>
+0xEEE0 0x9357 # <CJK>
+0xEEE1 0x9355 # <CJK>
+0xEEE2 0x9352 # <CJK>
+0xEEE3 0x934F # <CJK>
+0xEEE4 0x9371 # <CJK>
+0xEEE5 0x9377 # <CJK>
+0xEEE6 0x937B # <CJK>
+0xEEE7 0x9361 # <CJK>
+0xEEE8 0x935E # <CJK>
+0xEEE9 0x9363 # <CJK>
+0xEEEA 0x9367 # <CJK>
+0xEEEB 0x9380 # <CJK>
+0xEEEC 0x934E # <CJK>
+0xEEED 0x9359 # <CJK>
+0xEEEE 0x95C7 # <CJK>
+0xEEEF 0x95C0 # <CJK>
+0xEEF0 0x95C9 # <CJK>
+0xEEF1 0x95C3 # <CJK>
+0xEEF2 0x95C5 # <CJK>
+0xEEF3 0x95B7 # <CJK>
+0xEEF4 0x96AE # <CJK>
+0xEEF5 0x96B0 # <CJK>
+0xEEF6 0x96AC # <CJK>
+0xEEF7 0x9720 # <CJK>
+0xEEF8 0x971F # <CJK>
+0xEEF9 0x9718 # <CJK>
+0xEEFA 0x971D # <CJK>
+0xEEFB 0x9719 # <CJK>
+0xEEFC 0x979A # <CJK>
+0xEEFD 0x97A1 # <CJK>
+0xEEFE 0x979C # <CJK>
+0xEF40 0x979E # <CJK>
+0xEF41 0x979D # <CJK>
+0xEF42 0x97D5 # <CJK>
+0xEF43 0x97D4 # <CJK>
+0xEF44 0x97F1 # <CJK>
+0xEF45 0x9841 # <CJK>
+0xEF46 0x9844 # <CJK>
+0xEF47 0x984A # <CJK>
+0xEF48 0x9849 # <CJK>
+0xEF49 0x9845 # <CJK>
+0xEF4A 0x9843 # <CJK>
+0xEF4B 0x9925 # <CJK>
+0xEF4C 0x992B # <CJK>
+0xEF4D 0x992C # <CJK>
+0xEF4E 0x992A # <CJK>
+0xEF4F 0x9933 # <CJK>
+0xEF50 0x9932 # <CJK>
+0xEF51 0x992F # <CJK>
+0xEF52 0x992D # <CJK>
+0xEF53 0x9931 # <CJK>
+0xEF54 0x9930 # <CJK>
+0xEF55 0x9998 # <CJK>
+0xEF56 0x99A3 # <CJK>
+0xEF57 0x99A1 # <CJK>
+0xEF58 0x9A02 # <CJK>
+0xEF59 0x99FA # <CJK>
+0xEF5A 0x99F4 # <CJK>
+0xEF5B 0x99F7 # <CJK>
+0xEF5C 0x99F9 # <CJK>
+0xEF5D 0x99F8 # <CJK>
+0xEF5E 0x99F6 # <CJK>
+0xEF5F 0x99FB # <CJK>
+0xEF60 0x99FD # <CJK>
+0xEF61 0x99FE # <CJK>
+0xEF62 0x99FC # <CJK>
+0xEF63 0x9A03 # <CJK>
+0xEF64 0x9ABE # <CJK>
+0xEF65 0x9AFE # <CJK>
+0xEF66 0x9AFD # <CJK>
+0xEF67 0x9B01 # <CJK>
+0xEF68 0x9AFC # <CJK>
+0xEF69 0x9B48 # <CJK>
+0xEF6A 0x9B9A # <CJK>
+0xEF6B 0x9BA8 # <CJK>
+0xEF6C 0x9B9E # <CJK>
+0xEF6D 0x9B9B # <CJK>
+0xEF6E 0x9BA6 # <CJK>
+0xEF6F 0x9BA1 # <CJK>
+0xEF70 0x9BA5 # <CJK>
+0xEF71 0x9BA4 # <CJK>
+0xEF72 0x9B86 # <CJK>
+0xEF73 0x9BA2 # <CJK>
+0xEF74 0x9BA0 # <CJK>
+0xEF75 0x9BAF # <CJK>
+0xEF76 0x9D33 # <CJK>
+0xEF77 0x9D41 # <CJK>
+0xEF78 0x9D67 # <CJK>
+0xEF79 0x9D36 # <CJK>
+0xEF7A 0x9D2E # <CJK>
+0xEF7B 0x9D2F # <CJK>
+0xEF7C 0x9D31 # <CJK>
+0xEF7D 0x9D38 # <CJK>
+0xEF7E 0x9D30 # <CJK>
+0xEFA1 0x9D45 # <CJK>
+0xEFA2 0x9D42 # <CJK>
+0xEFA3 0x9D43 # <CJK>
+0xEFA4 0x9D3E # <CJK>
+0xEFA5 0x9D37 # <CJK>
+0xEFA6 0x9D40 # <CJK>
+0xEFA7 0x9D3D # <CJK>
+0xEFA8 0x7FF5 # <CJK>
+0xEFA9 0x9D2D # <CJK>
+0xEFAA 0x9E8A # <CJK>
+0xEFAB 0x9E89 # <CJK>
+0xEFAC 0x9E8D # <CJK>
+0xEFAD 0x9EB0 # <CJK>
+0xEFAE 0x9EC8 # <CJK>
+0xEFAF 0x9EDA # <CJK>
+0xEFB0 0x9EFB # <CJK>
+0xEFB1 0x9EFF # <CJK>
+0xEFB2 0x9F24 # <CJK>
+0xEFB3 0x9F23 # <CJK>
+0xEFB4 0x9F22 # <CJK>
+0xEFB5 0x9F54 # <CJK>
+0xEFB6 0x9FA0 # <CJK>
+0xEFB7 0x5131 # <CJK>
+0xEFB8 0x512D # <CJK>
+0xEFB9 0x512E # <CJK>
+0xEFBA 0x5698 # <CJK>
+0xEFBB 0x569C # <CJK>
+0xEFBC 0x5697 # <CJK>
+0xEFBD 0x569A # <CJK>
+0xEFBE 0x569D # <CJK>
+0xEFBF 0x5699 # <CJK>
+0xEFC0 0x5970 # <CJK>
+0xEFC1 0x5B3C # <CJK>
+0xEFC2 0x5C69 # <CJK>
+0xEFC3 0x5C6A # <CJK>
+0xEFC4 0x5DC0 # <CJK>
+0xEFC5 0x5E6D # <CJK>
+0xEFC6 0x5E6E # <CJK>
+0xEFC7 0x61D8 # <CJK>
+0xEFC8 0x61DF # <CJK>
+0xEFC9 0x61ED # <CJK>
+0xEFCA 0x61EE # <CJK>
+0xEFCB 0x61F1 # <CJK>
+0xEFCC 0x61EA # <CJK>
+0xEFCD 0x61F0 # <CJK>
+0xEFCE 0x61EB # <CJK>
+0xEFCF 0x61D6 # <CJK>
+0xEFD0 0x61E9 # <CJK>
+0xEFD1 0x64FF # <CJK>
+0xEFD2 0x6504 # <CJK>
+0xEFD3 0x64FD # <CJK>
+0xEFD4 0x64F8 # <CJK>
+0xEFD5 0x6501 # <CJK>
+0xEFD6 0x6503 # <CJK>
+0xEFD7 0x64FC # <CJK>
+0xEFD8 0x6594 # <CJK>
+0xEFD9 0x65DB # <CJK>
+0xEFDA 0x66DA # <CJK>
+0xEFDB 0x66DB # <CJK>
+0xEFDC 0x66D8 # <CJK>
+0xEFDD 0x6AC5 # <CJK>
+0xEFDE 0x6AB9 # <CJK>
+0xEFDF 0x6ABD # <CJK>
+0xEFE0 0x6AE1 # <CJK>
+0xEFE1 0x6AC6 # <CJK>
+0xEFE2 0x6ABA # <CJK>
+0xEFE3 0x6AB6 # <CJK>
+0xEFE4 0x6AB7 # <CJK>
+0xEFE5 0x6AC7 # <CJK>
+0xEFE6 0x6AB4 # <CJK>
+0xEFE7 0x6AAD # <CJK>
+0xEFE8 0x6B5E # <CJK>
+0xEFE9 0x6BC9 # <CJK>
+0xEFEA 0x6C0B # <CJK>
+0xEFEB 0x7007 # <CJK>
+0xEFEC 0x700C # <CJK>
+0xEFED 0x700D # <CJK>
+0xEFEE 0x7001 # <CJK>
+0xEFEF 0x7005 # <CJK>
+0xEFF0 0x7014 # <CJK>
+0xEFF1 0x700E # <CJK>
+0xEFF2 0x6FFF # <CJK>
+0xEFF3 0x7000 # <CJK>
+0xEFF4 0x6FFB # <CJK>
+0xEFF5 0x7026 # <CJK>
+0xEFF6 0x6FFC # <CJK>
+0xEFF7 0x6FF7 # <CJK>
+0xEFF8 0x700A # <CJK>
+0xEFF9 0x7201 # <CJK>
+0xEFFA 0x71FF # <CJK>
+0xEFFB 0x71F9 # <CJK>
+0xEFFC 0x7203 # <CJK>
+0xEFFD 0x71FD # <CJK>
+0xEFFE 0x7376 # <CJK>
+0xF040 0x74B8 # <CJK>
+0xF041 0x74C0 # <CJK>
+0xF042 0x74B5 # <CJK>
+0xF043 0x74C1 # <CJK>
+0xF044 0x74BE # <CJK>
+0xF045 0x74B6 # <CJK>
+0xF046 0x74BB # <CJK>
+0xF047 0x74C2 # <CJK>
+0xF048 0x7514 # <CJK>
+0xF049 0x7513 # <CJK>
+0xF04A 0x765C # <CJK>
+0xF04B 0x7664 # <CJK>
+0xF04C 0x7659 # <CJK>
+0xF04D 0x7650 # <CJK>
+0xF04E 0x7653 # <CJK>
+0xF04F 0x7657 # <CJK>
+0xF050 0x765A # <CJK>
+0xF051 0x76A6 # <CJK>
+0xF052 0x76BD # <CJK>
+0xF053 0x76EC # <CJK>
+0xF054 0x77C2 # <CJK>
+0xF055 0x77BA # <CJK>
+0xF056 0x78FF # <CJK>
+0xF057 0x790C # <CJK>
+0xF058 0x7913 # <CJK>
+0xF059 0x7914 # <CJK>
+0xF05A 0x7909 # <CJK>
+0xF05B 0x7910 # <CJK>
+0xF05C 0x7912 # <CJK>
+0xF05D 0x7911 # <CJK>
+0xF05E 0x79AD # <CJK>
+0xF05F 0x79AC # <CJK>
+0xF060 0x7A5F # <CJK>
+0xF061 0x7C1C # <CJK>
+0xF062 0x7C29 # <CJK>
+0xF063 0x7C19 # <CJK>
+0xF064 0x7C20 # <CJK>
+0xF065 0x7C1F # <CJK>
+0xF066 0x7C2D # <CJK>
+0xF067 0x7C1D # <CJK>
+0xF068 0x7C26 # <CJK>
+0xF069 0x7C28 # <CJK>
+0xF06A 0x7C22 # <CJK>
+0xF06B 0x7C25 # <CJK>
+0xF06C 0x7C30 # <CJK>
+0xF06D 0x7E5C # <CJK>
+0xF06E 0x7E50 # <CJK>
+0xF06F 0x7E56 # <CJK>
+0xF070 0x7E63 # <CJK>
+0xF071 0x7E58 # <CJK>
+0xF072 0x7E62 # <CJK>
+0xF073 0x7E5F # <CJK>
+0xF074 0x7E51 # <CJK>
+0xF075 0x7E60 # <CJK>
+0xF076 0x7E57 # <CJK>
+0xF077 0x7E53 # <CJK>
+0xF078 0x7FB5 # <CJK>
+0xF079 0x7FB3 # <CJK>
+0xF07A 0x7FF7 # <CJK>
+0xF07B 0x7FF8 # <CJK>
+0xF07C 0x8075 # <CJK>
+0xF07D 0x81D1 # <CJK>
+0xF07E 0x81D2 # <CJK>
+0xF0A1 0x81D0 # <CJK>
+0xF0A2 0x825F # <CJK>
+0xF0A3 0x825E # <CJK>
+0xF0A4 0x85B4 # <CJK>
+0xF0A5 0x85C6 # <CJK>
+0xF0A6 0x85C0 # <CJK>
+0xF0A7 0x85C3 # <CJK>
+0xF0A8 0x85C2 # <CJK>
+0xF0A9 0x85B3 # <CJK>
+0xF0AA 0x85B5 # <CJK>
+0xF0AB 0x85BD # <CJK>
+0xF0AC 0x85C7 # <CJK>
+0xF0AD 0x85C4 # <CJK>
+0xF0AE 0x85BF # <CJK>
+0xF0AF 0x85CB # <CJK>
+0xF0B0 0x85CE # <CJK>
+0xF0B1 0x85C8 # <CJK>
+0xF0B2 0x85C5 # <CJK>
+0xF0B3 0x85B1 # <CJK>
+0xF0B4 0x85B6 # <CJK>
+0xF0B5 0x85D2 # <CJK>
+0xF0B6 0x8624 # <CJK>
+0xF0B7 0x85B8 # <CJK>
+0xF0B8 0x85B7 # <CJK>
+0xF0B9 0x85BE # <CJK>
+0xF0BA 0x8669 # <CJK>
+0xF0BB 0x87E7 # <CJK>
+0xF0BC 0x87E6 # <CJK>
+0xF0BD 0x87E2 # <CJK>
+0xF0BE 0x87DB # <CJK>
+0xF0BF 0x87EB # <CJK>
+0xF0C0 0x87EA # <CJK>
+0xF0C1 0x87E5 # <CJK>
+0xF0C2 0x87DF # <CJK>
+0xF0C3 0x87F3 # <CJK>
+0xF0C4 0x87E4 # <CJK>
+0xF0C5 0x87D4 # <CJK>
+0xF0C6 0x87DC # <CJK>
+0xF0C7 0x87D3 # <CJK>
+0xF0C8 0x87ED # <CJK>
+0xF0C9 0x87D8 # <CJK>
+0xF0CA 0x87E3 # <CJK>
+0xF0CB 0x87A4 # <CJK>
+0xF0CC 0x87D7 # <CJK>
+0xF0CD 0x87D9 # <CJK>
+0xF0CE 0x8801 # <CJK>
+0xF0CF 0x87F4 # <CJK>
+0xF0D0 0x87E8 # <CJK>
+0xF0D1 0x87DD # <CJK>
+0xF0D2 0x8953 # <CJK>
+0xF0D3 0x894B # <CJK>
+0xF0D4 0x894F # <CJK>
+0xF0D5 0x894C # <CJK>
+0xF0D6 0x8946 # <CJK>
+0xF0D7 0x8950 # <CJK>
+0xF0D8 0x8951 # <CJK>
+0xF0D9 0x8949 # <CJK>
+0xF0DA 0x8B2A # <CJK>
+0xF0DB 0x8B27 # <CJK>
+0xF0DC 0x8B23 # <CJK>
+0xF0DD 0x8B33 # <CJK>
+0xF0DE 0x8B30 # <CJK>
+0xF0DF 0x8B35 # <CJK>
+0xF0E0 0x8B47 # <CJK>
+0xF0E1 0x8B2F # <CJK>
+0xF0E2 0x8B3C # <CJK>
+0xF0E3 0x8B3E # <CJK>
+0xF0E4 0x8B31 # <CJK>
+0xF0E5 0x8B25 # <CJK>
+0xF0E6 0x8B37 # <CJK>
+0xF0E7 0x8B26 # <CJK>
+0xF0E8 0x8B36 # <CJK>
+0xF0E9 0x8B2E # <CJK>
+0xF0EA 0x8B24 # <CJK>
+0xF0EB 0x8B3B # <CJK>
+0xF0EC 0x8B3D # <CJK>
+0xF0ED 0x8B3A # <CJK>
+0xF0EE 0x8C42 # <CJK>
+0xF0EF 0x8C75 # <CJK>
+0xF0F0 0x8C99 # <CJK>
+0xF0F1 0x8C98 # <CJK>
+0xF0F2 0x8C97 # <CJK>
+0xF0F3 0x8CFE # <CJK>
+0xF0F4 0x8D04 # <CJK>
+0xF0F5 0x8D02 # <CJK>
+0xF0F6 0x8D00 # <CJK>
+0xF0F7 0x8E5C # <CJK>
+0xF0F8 0x8E62 # <CJK>
+0xF0F9 0x8E60 # <CJK>
+0xF0FA 0x8E57 # <CJK>
+0xF0FB 0x8E56 # <CJK>
+0xF0FC 0x8E5E # <CJK>
+0xF0FD 0x8E65 # <CJK>
+0xF0FE 0x8E67 # <CJK>
+0xF140 0x8E5B # <CJK>
+0xF141 0x8E5A # <CJK>
+0xF142 0x8E61 # <CJK>
+0xF143 0x8E5D # <CJK>
+0xF144 0x8E69 # <CJK>
+0xF145 0x8E54 # <CJK>
+0xF146 0x8F46 # <CJK>
+0xF147 0x8F47 # <CJK>
+0xF148 0x8F48 # <CJK>
+0xF149 0x8F4B # <CJK>
+0xF14A 0x9128 # <CJK>
+0xF14B 0x913A # <CJK>
+0xF14C 0x913B # <CJK>
+0xF14D 0x913E # <CJK>
+0xF14E 0x91A8 # <CJK>
+0xF14F 0x91A5 # <CJK>
+0xF150 0x91A7 # <CJK>
+0xF151 0x91AF # <CJK>
+0xF152 0x91AA # <CJK>
+0xF153 0x93B5 # <CJK>
+0xF154 0x938C # <CJK>
+0xF155 0x9392 # <CJK>
+0xF156 0x93B7 # <CJK>
+0xF157 0x939B # <CJK>
+0xF158 0x939D # <CJK>
+0xF159 0x9389 # <CJK>
+0xF15A 0x93A7 # <CJK>
+0xF15B 0x938E # <CJK>
+0xF15C 0x93AA # <CJK>
+0xF15D 0x939E # <CJK>
+0xF15E 0x93A6 # <CJK>
+0xF15F 0x9395 # <CJK>
+0xF160 0x9388 # <CJK>
+0xF161 0x9399 # <CJK>
+0xF162 0x939F # <CJK>
+0xF163 0x938D # <CJK>
+0xF164 0x93B1 # <CJK>
+0xF165 0x9391 # <CJK>
+0xF166 0x93B2 # <CJK>
+0xF167 0x93A4 # <CJK>
+0xF168 0x93A8 # <CJK>
+0xF169 0x93B4 # <CJK>
+0xF16A 0x93A3 # <CJK>
+0xF16B 0x93A5 # <CJK>
+0xF16C 0x95D2 # <CJK>
+0xF16D 0x95D3 # <CJK>
+0xF16E 0x95D1 # <CJK>
+0xF16F 0x96B3 # <CJK>
+0xF170 0x96D7 # <CJK>
+0xF171 0x96DA # <CJK>
+0xF172 0x5DC2 # <CJK>
+0xF173 0x96DF # <CJK>
+0xF174 0x96D8 # <CJK>
+0xF175 0x96DD # <CJK>
+0xF176 0x9723 # <CJK>
+0xF177 0x9722 # <CJK>
+0xF178 0x9725 # <CJK>
+0xF179 0x97AC # <CJK>
+0xF17A 0x97AE # <CJK>
+0xF17B 0x97A8 # <CJK>
+0xF17C 0x97AB # <CJK>
+0xF17D 0x97A4 # <CJK>
+0xF17E 0x97AA # <CJK>
+0xF1A1 0x97A2 # <CJK>
+0xF1A2 0x97A5 # <CJK>
+0xF1A3 0x97D7 # <CJK>
+0xF1A4 0x97D9 # <CJK>
+0xF1A5 0x97D6 # <CJK>
+0xF1A6 0x97D8 # <CJK>
+0xF1A7 0x97FA # <CJK>
+0xF1A8 0x9850 # <CJK>
+0xF1A9 0x9851 # <CJK>
+0xF1AA 0x9852 # <CJK>
+0xF1AB 0x98B8 # <CJK>
+0xF1AC 0x9941 # <CJK>
+0xF1AD 0x993C # <CJK>
+0xF1AE 0x993A # <CJK>
+0xF1AF 0x9A0F # <CJK>
+0xF1B0 0x9A0B # <CJK>
+0xF1B1 0x9A09 # <CJK>
+0xF1B2 0x9A0D # <CJK>
+0xF1B3 0x9A04 # <CJK>
+0xF1B4 0x9A11 # <CJK>
+0xF1B5 0x9A0A # <CJK>
+0xF1B6 0x9A05 # <CJK>
+0xF1B7 0x9A07 # <CJK>
+0xF1B8 0x9A06 # <CJK>
+0xF1B9 0x9AC0 # <CJK>
+0xF1BA 0x9ADC # <CJK>
+0xF1BB 0x9B08 # <CJK>
+0xF1BC 0x9B04 # <CJK>
+0xF1BD 0x9B05 # <CJK>
+0xF1BE 0x9B29 # <CJK>
+0xF1BF 0x9B35 # <CJK>
+0xF1C0 0x9B4A # <CJK>
+0xF1C1 0x9B4C # <CJK>
+0xF1C2 0x9B4B # <CJK>
+0xF1C3 0x9BC7 # <CJK>
+0xF1C4 0x9BC6 # <CJK>
+0xF1C5 0x9BC3 # <CJK>
+0xF1C6 0x9BBF # <CJK>
+0xF1C7 0x9BC1 # <CJK>
+0xF1C8 0x9BB5 # <CJK>
+0xF1C9 0x9BB8 # <CJK>
+0xF1CA 0x9BD3 # <CJK>
+0xF1CB 0x9BB6 # <CJK>
+0xF1CC 0x9BC4 # <CJK>
+0xF1CD 0x9BB9 # <CJK>
+0xF1CE 0x9BBD # <CJK>
+0xF1CF 0x9D5C # <CJK>
+0xF1D0 0x9D53 # <CJK>
+0xF1D1 0x9D4F # <CJK>
+0xF1D2 0x9D4A # <CJK>
+0xF1D3 0x9D5B # <CJK>
+0xF1D4 0x9D4B # <CJK>
+0xF1D5 0x9D59 # <CJK>
+0xF1D6 0x9D56 # <CJK>
+0xF1D7 0x9D4C # <CJK>
+0xF1D8 0x9D57 # <CJK>
+0xF1D9 0x9D52 # <CJK>
+0xF1DA 0x9D54 # <CJK>
+0xF1DB 0x9D5F # <CJK>
+0xF1DC 0x9D58 # <CJK>
+0xF1DD 0x9D5A # <CJK>
+0xF1DE 0x9E8E # <CJK>
+0xF1DF 0x9E8C # <CJK>
+0xF1E0 0x9EDF # <CJK>
+0xF1E1 0x9F01 # <CJK>
+0xF1E2 0x9F00 # <CJK>
+0xF1E3 0x9F16 # <CJK>
+0xF1E4 0x9F25 # <CJK>
+0xF1E5 0x9F2B # <CJK>
+0xF1E6 0x9F2A # <CJK>
+0xF1E7 0x9F29 # <CJK>
+0xF1E8 0x9F28 # <CJK>
+0xF1E9 0x9F4C # <CJK>
+0xF1EA 0x9F55 # <CJK>
+0xF1EB 0x5134 # <CJK>
+0xF1EC 0x5135 # <CJK>
+0xF1ED 0x5296 # <CJK>
+0xF1EE 0x52F7 # <CJK>
+0xF1EF 0x53B4 # <CJK>
+0xF1F0 0x56AB # <CJK>
+0xF1F1 0x56AD # <CJK>
+0xF1F2 0x56A6 # <CJK>
+0xF1F3 0x56A7 # <CJK>
+0xF1F4 0x56AA # <CJK>
+0xF1F5 0x56AC # <CJK>
+0xF1F6 0x58DA # <CJK>
+0xF1F7 0x58DD # <CJK>
+0xF1F8 0x58DB # <CJK>
+0xF1F9 0x5912 # <CJK>
+0xF1FA 0x5B3D # <CJK>
+0xF1FB 0x5B3E # <CJK>
+0xF1FC 0x5B3F # <CJK>
+0xF1FD 0x5DC3 # <CJK>
+0xF1FE 0x5E70 # <CJK>
+0xF240 0x5FBF # <CJK>
+0xF241 0x61FB # <CJK>
+0xF242 0x6507 # <CJK>
+0xF243 0x6510 # <CJK>
+0xF244 0x650D # <CJK>
+0xF245 0x6509 # <CJK>
+0xF246 0x650C # <CJK>
+0xF247 0x650E # <CJK>
+0xF248 0x6584 # <CJK>
+0xF249 0x65DE # <CJK>
+0xF24A 0x65DD # <CJK>
+0xF24B 0x66DE # <CJK>
+0xF24C 0x6AE7 # <CJK>
+0xF24D 0x6AE0 # <CJK>
+0xF24E 0x6ACC # <CJK>
+0xF24F 0x6AD1 # <CJK>
+0xF250 0x6AD9 # <CJK>
+0xF251 0x6ACB # <CJK>
+0xF252 0x6ADF # <CJK>
+0xF253 0x6ADC # <CJK>
+0xF254 0x6AD0 # <CJK>
+0xF255 0x6AEB # <CJK>
+0xF256 0x6ACF # <CJK>
+0xF257 0x6ACD # <CJK>
+0xF258 0x6ADE # <CJK>
+0xF259 0x6B60 # <CJK>
+0xF25A 0x6BB0 # <CJK>
+0xF25B 0x6C0C # <CJK>
+0xF25C 0x7019 # <CJK>
+0xF25D 0x7027 # <CJK>
+0xF25E 0x7020 # <CJK>
+0xF25F 0x7016 # <CJK>
+0xF260 0x702B # <CJK>
+0xF261 0x7021 # <CJK>
+0xF262 0x7022 # <CJK>
+0xF263 0x7023 # <CJK>
+0xF264 0x7029 # <CJK>
+0xF265 0x7017 # <CJK>
+0xF266 0x7024 # <CJK>
+0xF267 0x701C # <CJK>
+0xF268 0x702A # <CJK>
+0xF269 0x720C # <CJK>
+0xF26A 0x720A # <CJK>
+0xF26B 0x7207 # <CJK>
+0xF26C 0x7202 # <CJK>
+0xF26D 0x7205 # <CJK>
+0xF26E 0x72A5 # <CJK>
+0xF26F 0x72A6 # <CJK>
+0xF270 0x72A4 # <CJK>
+0xF271 0x72A3 # <CJK>
+0xF272 0x72A1 # <CJK>
+0xF273 0x74CB # <CJK>
+0xF274 0x74C5 # <CJK>
+0xF275 0x74B7 # <CJK>
+0xF276 0x74C3 # <CJK>
+0xF277 0x7516 # <CJK>
+0xF278 0x7660 # <CJK>
+0xF279 0x77C9 # <CJK>
+0xF27A 0x77CA # <CJK>
+0xF27B 0x77C4 # <CJK>
+0xF27C 0x77F1 # <CJK>
+0xF27D 0x791D # <CJK>
+0xF27E 0x791B # <CJK>
+0xF2A1 0x7921 # <CJK>
+0xF2A2 0x791C # <CJK>
+0xF2A3 0x7917 # <CJK>
+0xF2A4 0x791E # <CJK>
+0xF2A5 0x79B0 # <CJK>
+0xF2A6 0x7A67 # <CJK>
+0xF2A7 0x7A68 # <CJK>
+0xF2A8 0x7C33 # <CJK>
+0xF2A9 0x7C3C # <CJK>
+0xF2AA 0x7C39 # <CJK>
+0xF2AB 0x7C2C # <CJK>
+0xF2AC 0x7C3B # <CJK>
+0xF2AD 0x7CEC # <CJK>
+0xF2AE 0x7CEA # <CJK>
+0xF2AF 0x7E76 # <CJK>
+0xF2B0 0x7E75 # <CJK>
+0xF2B1 0x7E78 # <CJK>
+0xF2B2 0x7E70 # <CJK>
+0xF2B3 0x7E77 # <CJK>
+0xF2B4 0x7E6F # <CJK>
+0xF2B5 0x7E7A # <CJK>
+0xF2B6 0x7E72 # <CJK>
+0xF2B7 0x7E74 # <CJK>
+0xF2B8 0x7E68 # <CJK>
+0xF2B9 0x7F4B # <CJK>
+0xF2BA 0x7F4A # <CJK>
+0xF2BB 0x7F83 # <CJK>
+0xF2BC 0x7F86 # <CJK>
+0xF2BD 0x7FB7 # <CJK>
+0xF2BE 0x7FFD # <CJK>
+0xF2BF 0x7FFE # <CJK>
+0xF2C0 0x8078 # <CJK>
+0xF2C1 0x81D7 # <CJK>
+0xF2C2 0x81D5 # <CJK>
+0xF2C3 0x8264 # <CJK>
+0xF2C4 0x8261 # <CJK>
+0xF2C5 0x8263 # <CJK>
+0xF2C6 0x85EB # <CJK>
+0xF2C7 0x85F1 # <CJK>
+0xF2C8 0x85ED # <CJK>
+0xF2C9 0x85D9 # <CJK>
+0xF2CA 0x85E1 # <CJK>
+0xF2CB 0x85E8 # <CJK>
+0xF2CC 0x85DA # <CJK>
+0xF2CD 0x85D7 # <CJK>
+0xF2CE 0x85EC # <CJK>
+0xF2CF 0x85F2 # <CJK>
+0xF2D0 0x85F8 # <CJK>
+0xF2D1 0x85D8 # <CJK>
+0xF2D2 0x85DF # <CJK>
+0xF2D3 0x85E3 # <CJK>
+0xF2D4 0x85DC # <CJK>
+0xF2D5 0x85D1 # <CJK>
+0xF2D6 0x85F0 # <CJK>
+0xF2D7 0x85E6 # <CJK>
+0xF2D8 0x85EF # <CJK>
+0xF2D9 0x85DE # <CJK>
+0xF2DA 0x85E2 # <CJK>
+0xF2DB 0x8800 # <CJK>
+0xF2DC 0x87FA # <CJK>
+0xF2DD 0x8803 # <CJK>
+0xF2DE 0x87F6 # <CJK>
+0xF2DF 0x87F7 # <CJK>
+0xF2E0 0x8809 # <CJK>
+0xF2E1 0x880C # <CJK>
+0xF2E2 0x880B # <CJK>
+0xF2E3 0x8806 # <CJK>
+0xF2E4 0x87FC # <CJK>
+0xF2E5 0x8808 # <CJK>
+0xF2E6 0x87FF # <CJK>
+0xF2E7 0x880A # <CJK>
+0xF2E8 0x8802 # <CJK>
+0xF2E9 0x8962 # <CJK>
+0xF2EA 0x895A # <CJK>
+0xF2EB 0x895B # <CJK>
+0xF2EC 0x8957 # <CJK>
+0xF2ED 0x8961 # <CJK>
+0xF2EE 0x895C # <CJK>
+0xF2EF 0x8958 # <CJK>
+0xF2F0 0x895D # <CJK>
+0xF2F1 0x8959 # <CJK>
+0xF2F2 0x8988 # <CJK>
+0xF2F3 0x89B7 # <CJK>
+0xF2F4 0x89B6 # <CJK>
+0xF2F5 0x89F6 # <CJK>
+0xF2F6 0x8B50 # <CJK>
+0xF2F7 0x8B48 # <CJK>
+0xF2F8 0x8B4A # <CJK>
+0xF2F9 0x8B40 # <CJK>
+0xF2FA 0x8B53 # <CJK>
+0xF2FB 0x8B56 # <CJK>
+0xF2FC 0x8B54 # <CJK>
+0xF2FD 0x8B4B # <CJK>
+0xF2FE 0x8B55 # <CJK>
+0xF340 0x8B51 # <CJK>
+0xF341 0x8B42 # <CJK>
+0xF342 0x8B52 # <CJK>
+0xF343 0x8B57 # <CJK>
+0xF344 0x8C43 # <CJK>
+0xF345 0x8C77 # <CJK>
+0xF346 0x8C76 # <CJK>
+0xF347 0x8C9A # <CJK>
+0xF348 0x8D06 # <CJK>
+0xF349 0x8D07 # <CJK>
+0xF34A 0x8D09 # <CJK>
+0xF34B 0x8DAC # <CJK>
+0xF34C 0x8DAA # <CJK>
+0xF34D 0x8DAD # <CJK>
+0xF34E 0x8DAB # <CJK>
+0xF34F 0x8E6D # <CJK>
+0xF350 0x8E78 # <CJK>
+0xF351 0x8E73 # <CJK>
+0xF352 0x8E6A # <CJK>
+0xF353 0x8E6F # <CJK>
+0xF354 0x8E7B # <CJK>
+0xF355 0x8EC2 # <CJK>
+0xF356 0x8F52 # <CJK>
+0xF357 0x8F51 # <CJK>
+0xF358 0x8F4F # <CJK>
+0xF359 0x8F50 # <CJK>
+0xF35A 0x8F53 # <CJK>
+0xF35B 0x8FB4 # <CJK>
+0xF35C 0x9140 # <CJK>
+0xF35D 0x913F # <CJK>
+0xF35E 0x91B0 # <CJK>
+0xF35F 0x91AD # <CJK>
+0xF360 0x93DE # <CJK>
+0xF361 0x93C7 # <CJK>
+0xF362 0x93CF # <CJK>
+0xF363 0x93C2 # <CJK>
+0xF364 0x93DA # <CJK>
+0xF365 0x93D0 # <CJK>
+0xF366 0x93F9 # <CJK>
+0xF367 0x93EC # <CJK>
+0xF368 0x93CC # <CJK>
+0xF369 0x93D9 # <CJK>
+0xF36A 0x93A9 # <CJK>
+0xF36B 0x93E6 # <CJK>
+0xF36C 0x93CA # <CJK>
+0xF36D 0x93D4 # <CJK>
+0xF36E 0x93EE # <CJK>
+0xF36F 0x93E3 # <CJK>
+0xF370 0x93D5 # <CJK>
+0xF371 0x93C4 # <CJK>
+0xF372 0x93CE # <CJK>
+0xF373 0x93C0 # <CJK>
+0xF374 0x93D2 # <CJK>
+0xF375 0x93E7 # <CJK>
+0xF376 0x957D # <CJK>
+0xF377 0x95DA # <CJK>
+0xF378 0x95DB # <CJK>
+0xF379 0x96E1 # <CJK>
+0xF37A 0x9729 # <CJK>
+0xF37B 0x972B # <CJK>
+0xF37C 0x972C # <CJK>
+0xF37D 0x9728 # <CJK>
+0xF37E 0x9726 # <CJK>
+0xF3A1 0x97B3 # <CJK>
+0xF3A2 0x97B7 # <CJK>
+0xF3A3 0x97B6 # <CJK>
+0xF3A4 0x97DD # <CJK>
+0xF3A5 0x97DE # <CJK>
+0xF3A6 0x97DF # <CJK>
+0xF3A7 0x985C # <CJK>
+0xF3A8 0x9859 # <CJK>
+0xF3A9 0x985D # <CJK>
+0xF3AA 0x9857 # <CJK>
+0xF3AB 0x98BF # <CJK>
+0xF3AC 0x98BD # <CJK>
+0xF3AD 0x98BB # <CJK>
+0xF3AE 0x98BE # <CJK>
+0xF3AF 0x9948 # <CJK>
+0xF3B0 0x9947 # <CJK>
+0xF3B1 0x9943 # <CJK>
+0xF3B2 0x99A6 # <CJK>
+0xF3B3 0x99A7 # <CJK>
+0xF3B4 0x9A1A # <CJK>
+0xF3B5 0x9A15 # <CJK>
+0xF3B6 0x9A25 # <CJK>
+0xF3B7 0x9A1D # <CJK>
+0xF3B8 0x9A24 # <CJK>
+0xF3B9 0x9A1B # <CJK>
+0xF3BA 0x9A22 # <CJK>
+0xF3BB 0x9A20 # <CJK>
+0xF3BC 0x9A27 # <CJK>
+0xF3BD 0x9A23 # <CJK>
+0xF3BE 0x9A1E # <CJK>
+0xF3BF 0x9A1C # <CJK>
+0xF3C0 0x9A14 # <CJK>
+0xF3C1 0x9AC2 # <CJK>
+0xF3C2 0x9B0B # <CJK>
+0xF3C3 0x9B0A # <CJK>
+0xF3C4 0x9B0E # <CJK>
+0xF3C5 0x9B0C # <CJK>
+0xF3C6 0x9B37 # <CJK>
+0xF3C7 0x9BEA # <CJK>
+0xF3C8 0x9BEB # <CJK>
+0xF3C9 0x9BE0 # <CJK>
+0xF3CA 0x9BDE # <CJK>
+0xF3CB 0x9BE4 # <CJK>
+0xF3CC 0x9BE6 # <CJK>
+0xF3CD 0x9BE2 # <CJK>
+0xF3CE 0x9BF0 # <CJK>
+0xF3CF 0x9BD4 # <CJK>
+0xF3D0 0x9BD7 # <CJK>
+0xF3D1 0x9BEC # <CJK>
+0xF3D2 0x9BDC # <CJK>
+0xF3D3 0x9BD9 # <CJK>
+0xF3D4 0x9BE5 # <CJK>
+0xF3D5 0x9BD5 # <CJK>
+0xF3D6 0x9BE1 # <CJK>
+0xF3D7 0x9BDA # <CJK>
+0xF3D8 0x9D77 # <CJK>
+0xF3D9 0x9D81 # <CJK>
+0xF3DA 0x9D8A # <CJK>
+0xF3DB 0x9D84 # <CJK>
+0xF3DC 0x9D88 # <CJK>
+0xF3DD 0x9D71 # <CJK>
+0xF3DE 0x9D80 # <CJK>
+0xF3DF 0x9D78 # <CJK>
+0xF3E0 0x9D86 # <CJK>
+0xF3E1 0x9D8B # <CJK>
+0xF3E2 0x9D8C # <CJK>
+0xF3E3 0x9D7D # <CJK>
+0xF3E4 0x9D6B # <CJK>
+0xF3E5 0x9D74 # <CJK>
+0xF3E6 0x9D75 # <CJK>
+0xF3E7 0x9D70 # <CJK>
+0xF3E8 0x9D69 # <CJK>
+0xF3E9 0x9D85 # <CJK>
+0xF3EA 0x9D73 # <CJK>
+0xF3EB 0x9D7B # <CJK>
+0xF3EC 0x9D82 # <CJK>
+0xF3ED 0x9D6F # <CJK>
+0xF3EE 0x9D79 # <CJK>
+0xF3EF 0x9D7F # <CJK>
+0xF3F0 0x9D87 # <CJK>
+0xF3F1 0x9D68 # <CJK>
+0xF3F2 0x9E94 # <CJK>
+0xF3F3 0x9E91 # <CJK>
+0xF3F4 0x9EC0 # <CJK>
+0xF3F5 0x9EFC # <CJK>
+0xF3F6 0x9F2D # <CJK>
+0xF3F7 0x9F40 # <CJK>
+0xF3F8 0x9F41 # <CJK>
+0xF3F9 0x9F4D # <CJK>
+0xF3FA 0x9F56 # <CJK>
+0xF3FB 0x9F57 # <CJK>
+0xF3FC 0x9F58 # <CJK>
+0xF3FD 0x5337 # <CJK>
+0xF3FE 0x56B2 # <CJK>
+0xF440 0x56B5 # <CJK>
+0xF441 0x56B3 # <CJK>
+0xF442 0x58E3 # <CJK>
+0xF443 0x5B45 # <CJK>
+0xF444 0x5DC6 # <CJK>
+0xF445 0x5DC7 # <CJK>
+0xF446 0x5EEE # <CJK>
+0xF447 0x5EEF # <CJK>
+0xF448 0x5FC0 # <CJK>
+0xF449 0x5FC1 # <CJK>
+0xF44A 0x61F9 # <CJK>
+0xF44B 0x6517 # <CJK>
+0xF44C 0x6516 # <CJK>
+0xF44D 0x6515 # <CJK>
+0xF44E 0x6513 # <CJK>
+0xF44F 0x65DF # <CJK>
+0xF450 0x66E8 # <CJK>
+0xF451 0x66E3 # <CJK>
+0xF452 0x66E4 # <CJK>
+0xF453 0x6AF3 # <CJK>
+0xF454 0x6AF0 # <CJK>
+0xF455 0x6AEA # <CJK>
+0xF456 0x6AE8 # <CJK>
+0xF457 0x6AF9 # <CJK>
+0xF458 0x6AF1 # <CJK>
+0xF459 0x6AEE # <CJK>
+0xF45A 0x6AEF # <CJK>
+0xF45B 0x703C # <CJK>
+0xF45C 0x7035 # <CJK>
+0xF45D 0x702F # <CJK>
+0xF45E 0x7037 # <CJK>
+0xF45F 0x7034 # <CJK>
+0xF460 0x7031 # <CJK>
+0xF461 0x7042 # <CJK>
+0xF462 0x7038 # <CJK>
+0xF463 0x703F # <CJK>
+0xF464 0x703A # <CJK>
+0xF465 0x7039 # <CJK>
+0xF466 0x7040 # <CJK>
+0xF467 0x703B # <CJK>
+0xF468 0x7033 # <CJK>
+0xF469 0x7041 # <CJK>
+0xF46A 0x7213 # <CJK>
+0xF46B 0x7214 # <CJK>
+0xF46C 0x72A8 # <CJK>
+0xF46D 0x737D # <CJK>
+0xF46E 0x737C # <CJK>
+0xF46F 0x74BA # <CJK>
+0xF470 0x76AB # <CJK>
+0xF471 0x76AA # <CJK>
+0xF472 0x76BE # <CJK>
+0xF473 0x76ED # <CJK>
+0xF474 0x77CC # <CJK>
+0xF475 0x77CE # <CJK>
+0xF476 0x77CF # <CJK>
+0xF477 0x77CD # <CJK>
+0xF478 0x77F2 # <CJK>
+0xF479 0x7925 # <CJK>
+0xF47A 0x7923 # <CJK>
+0xF47B 0x7927 # <CJK>
+0xF47C 0x7928 # <CJK>
+0xF47D 0x7924 # <CJK>
+0xF47E 0x7929 # <CJK>
+0xF4A1 0x79B2 # <CJK>
+0xF4A2 0x7A6E # <CJK>
+0xF4A3 0x7A6C # <CJK>
+0xF4A4 0x7A6D # <CJK>
+0xF4A5 0x7AF7 # <CJK>
+0xF4A6 0x7C49 # <CJK>
+0xF4A7 0x7C48 # <CJK>
+0xF4A8 0x7C4A # <CJK>
+0xF4A9 0x7C47 # <CJK>
+0xF4AA 0x7C45 # <CJK>
+0xF4AB 0x7CEE # <CJK>
+0xF4AC 0x7E7B # <CJK>
+0xF4AD 0x7E7E # <CJK>
+0xF4AE 0x7E81 # <CJK>
+0xF4AF 0x7E80 # <CJK>
+0xF4B0 0x7FBA # <CJK>
+0xF4B1 0x7FFF # <CJK>
+0xF4B2 0x8079 # <CJK>
+0xF4B3 0x81DB # <CJK>
+0xF4B4 0x81D9 # <CJK>
+0xF4B5 0x820B # <CJK>
+0xF4B6 0x8268 # <CJK>
+0xF4B7 0x8269 # <CJK>
+0xF4B8 0x8622 # <CJK>
+0xF4B9 0x85FF # <CJK>
+0xF4BA 0x8601 # <CJK>
+0xF4BB 0x85FE # <CJK>
+0xF4BC 0x861B # <CJK>
+0xF4BD 0x8600 # <CJK>
+0xF4BE 0x85F6 # <CJK>
+0xF4BF 0x8604 # <CJK>
+0xF4C0 0x8609 # <CJK>
+0xF4C1 0x8605 # <CJK>
+0xF4C2 0x860C # <CJK>
+0xF4C3 0x85FD # <CJK>
+0xF4C4 0x8819 # <CJK>
+0xF4C5 0x8810 # <CJK>
+0xF4C6 0x8811 # <CJK>
+0xF4C7 0x8817 # <CJK>
+0xF4C8 0x8813 # <CJK>
+0xF4C9 0x8816 # <CJK>
+0xF4CA 0x8963 # <CJK>
+0xF4CB 0x8966 # <CJK>
+0xF4CC 0x89B9 # <CJK>
+0xF4CD 0x89F7 # <CJK>
+0xF4CE 0x8B60 # <CJK>
+0xF4CF 0x8B6A # <CJK>
+0xF4D0 0x8B5D # <CJK>
+0xF4D1 0x8B68 # <CJK>
+0xF4D2 0x8B63 # <CJK>
+0xF4D3 0x8B65 # <CJK>
+0xF4D4 0x8B67 # <CJK>
+0xF4D5 0x8B6D # <CJK>
+0xF4D6 0x8DAE # <CJK>
+0xF4D7 0x8E86 # <CJK>
+0xF4D8 0x8E88 # <CJK>
+0xF4D9 0x8E84 # <CJK>
+0xF4DA 0x8F59 # <CJK>
+0xF4DB 0x8F56 # <CJK>
+0xF4DC 0x8F57 # <CJK>
+0xF4DD 0x8F55 # <CJK>
+0xF4DE 0x8F58 # <CJK>
+0xF4DF 0x8F5A # <CJK>
+0xF4E0 0x908D # <CJK>
+0xF4E1 0x9143 # <CJK>
+0xF4E2 0x9141 # <CJK>
+0xF4E3 0x91B7 # <CJK>
+0xF4E4 0x91B5 # <CJK>
+0xF4E5 0x91B2 # <CJK>
+0xF4E6 0x91B3 # <CJK>
+0xF4E7 0x940B # <CJK>
+0xF4E8 0x9413 # <CJK>
+0xF4E9 0x93FB # <CJK>
+0xF4EA 0x9420 # <CJK>
+0xF4EB 0x940F # <CJK>
+0xF4EC 0x9414 # <CJK>
+0xF4ED 0x93FE # <CJK>
+0xF4EE 0x9415 # <CJK>
+0xF4EF 0x9410 # <CJK>
+0xF4F0 0x9428 # <CJK>
+0xF4F1 0x9419 # <CJK>
+0xF4F2 0x940D # <CJK>
+0xF4F3 0x93F5 # <CJK>
+0xF4F4 0x9400 # <CJK>
+0xF4F5 0x93F7 # <CJK>
+0xF4F6 0x9407 # <CJK>
+0xF4F7 0x940E # <CJK>
+0xF4F8 0x9416 # <CJK>
+0xF4F9 0x9412 # <CJK>
+0xF4FA 0x93FA # <CJK>
+0xF4FB 0x9409 # <CJK>
+0xF4FC 0x93F8 # <CJK>
+0xF4FD 0x940A # <CJK>
+0xF4FE 0x93FF # <CJK>
+0xF540 0x93FC # <CJK>
+0xF541 0x940C # <CJK>
+0xF542 0x93F6 # <CJK>
+0xF543 0x9411 # <CJK>
+0xF544 0x9406 # <CJK>
+0xF545 0x95DE # <CJK>
+0xF546 0x95E0 # <CJK>
+0xF547 0x95DF # <CJK>
+0xF548 0x972E # <CJK>
+0xF549 0x972F # <CJK>
+0xF54A 0x97B9 # <CJK>
+0xF54B 0x97BB # <CJK>
+0xF54C 0x97FD # <CJK>
+0xF54D 0x97FE # <CJK>
+0xF54E 0x9860 # <CJK>
+0xF54F 0x9862 # <CJK>
+0xF550 0x9863 # <CJK>
+0xF551 0x985F # <CJK>
+0xF552 0x98C1 # <CJK>
+0xF553 0x98C2 # <CJK>
+0xF554 0x9950 # <CJK>
+0xF555 0x994E # <CJK>
+0xF556 0x9959 # <CJK>
+0xF557 0x994C # <CJK>
+0xF558 0x994B # <CJK>
+0xF559 0x9953 # <CJK>
+0xF55A 0x9A32 # <CJK>
+0xF55B 0x9A34 # <CJK>
+0xF55C 0x9A31 # <CJK>
+0xF55D 0x9A2C # <CJK>
+0xF55E 0x9A2A # <CJK>
+0xF55F 0x9A36 # <CJK>
+0xF560 0x9A29 # <CJK>
+0xF561 0x9A2E # <CJK>
+0xF562 0x9A38 # <CJK>
+0xF563 0x9A2D # <CJK>
+0xF564 0x9AC7 # <CJK>
+0xF565 0x9ACA # <CJK>
+0xF566 0x9AC6 # <CJK>
+0xF567 0x9B10 # <CJK>
+0xF568 0x9B12 # <CJK>
+0xF569 0x9B11 # <CJK>
+0xF56A 0x9C0B # <CJK>
+0xF56B 0x9C08 # <CJK>
+0xF56C 0x9BF7 # <CJK>
+0xF56D 0x9C05 # <CJK>
+0xF56E 0x9C12 # <CJK>
+0xF56F 0x9BF8 # <CJK>
+0xF570 0x9C40 # <CJK>
+0xF571 0x9C07 # <CJK>
+0xF572 0x9C0E # <CJK>
+0xF573 0x9C06 # <CJK>
+0xF574 0x9C17 # <CJK>
+0xF575 0x9C14 # <CJK>
+0xF576 0x9C09 # <CJK>
+0xF577 0x9D9F # <CJK>
+0xF578 0x9D99 # <CJK>
+0xF579 0x9DA4 # <CJK>
+0xF57A 0x9D9D # <CJK>
+0xF57B 0x9D92 # <CJK>
+0xF57C 0x9D98 # <CJK>
+0xF57D 0x9D90 # <CJK>
+0xF57E 0x9D9B # <CJK>
+0xF5A1 0x9DA0 # <CJK>
+0xF5A2 0x9D94 # <CJK>
+0xF5A3 0x9D9C # <CJK>
+0xF5A4 0x9DAA # <CJK>
+0xF5A5 0x9D97 # <CJK>
+0xF5A6 0x9DA1 # <CJK>
+0xF5A7 0x9D9A # <CJK>
+0xF5A8 0x9DA2 # <CJK>
+0xF5A9 0x9DA8 # <CJK>
+0xF5AA 0x9D9E # <CJK>
+0xF5AB 0x9DA3 # <CJK>
+0xF5AC 0x9DBF # <CJK>
+0xF5AD 0x9DA9 # <CJK>
+0xF5AE 0x9D96 # <CJK>
+0xF5AF 0x9DA6 # <CJK>
+0xF5B0 0x9DA7 # <CJK>
+0xF5B1 0x9E99 # <CJK>
+0xF5B2 0x9E9B # <CJK>
+0xF5B3 0x9E9A # <CJK>
+0xF5B4 0x9EE5 # <CJK>
+0xF5B5 0x9EE4 # <CJK>
+0xF5B6 0x9EE7 # <CJK>
+0xF5B7 0x9EE6 # <CJK>
+0xF5B8 0x9F30 # <CJK>
+0xF5B9 0x9F2E # <CJK>
+0xF5BA 0x9F5B # <CJK>
+0xF5BB 0x9F60 # <CJK>
+0xF5BC 0x9F5E # <CJK>
+0xF5BD 0x9F5D # <CJK>
+0xF5BE 0x9F59 # <CJK>
+0xF5BF 0x9F91 # <CJK>
+0xF5C0 0x513A # <CJK>
+0xF5C1 0x5139 # <CJK>
+0xF5C2 0x5298 # <CJK>
+0xF5C3 0x5297 # <CJK>
+0xF5C4 0x56C3 # <CJK>
+0xF5C5 0x56BD # <CJK>
+0xF5C6 0x56BE # <CJK>
+0xF5C7 0x5B48 # <CJK>
+0xF5C8 0x5B47 # <CJK>
+0xF5C9 0x5DCB # <CJK>
+0xF5CA 0x5DCF # <CJK>
+0xF5CB 0x5EF1 # <CJK>
+0xF5CC 0x61FD # <CJK>
+0xF5CD 0x651B # <CJK>
+0xF5CE 0x6B02 # <CJK>
+0xF5CF 0x6AFC # <CJK>
+0xF5D0 0x6B03 # <CJK>
+0xF5D1 0x6AF8 # <CJK>
+0xF5D2 0x6B00 # <CJK>
+0xF5D3 0x7043 # <CJK>
+0xF5D4 0x7044 # <CJK>
+0xF5D5 0x704A # <CJK>
+0xF5D6 0x7048 # <CJK>
+0xF5D7 0x7049 # <CJK>
+0xF5D8 0x7045 # <CJK>
+0xF5D9 0x7046 # <CJK>
+0xF5DA 0x721D # <CJK>
+0xF5DB 0x721A # <CJK>
+0xF5DC 0x7219 # <CJK>
+0xF5DD 0x737E # <CJK>
+0xF5DE 0x7517 # <CJK>
+0xF5DF 0x766A # <CJK>
+0xF5E0 0x77D0 # <CJK>
+0xF5E1 0x792D # <CJK>
+0xF5E2 0x7931 # <CJK>
+0xF5E3 0x792F # <CJK>
+0xF5E4 0x7C54 # <CJK>
+0xF5E5 0x7C53 # <CJK>
+0xF5E6 0x7CF2 # <CJK>
+0xF5E7 0x7E8A # <CJK>
+0xF5E8 0x7E87 # <CJK>
+0xF5E9 0x7E88 # <CJK>
+0xF5EA 0x7E8B # <CJK>
+0xF5EB 0x7E86 # <CJK>
+0xF5EC 0x7E8D # <CJK>
+0xF5ED 0x7F4D # <CJK>
+0xF5EE 0x7FBB # <CJK>
+0xF5EF 0x8030 # <CJK>
+0xF5F0 0x81DD # <CJK>
+0xF5F1 0x8618 # <CJK>
+0xF5F2 0x862A # <CJK>
+0xF5F3 0x8626 # <CJK>
+0xF5F4 0x861F # <CJK>
+0xF5F5 0x8623 # <CJK>
+0xF5F6 0x861C # <CJK>
+0xF5F7 0x8619 # <CJK>
+0xF5F8 0x8627 # <CJK>
+0xF5F9 0x862E # <CJK>
+0xF5FA 0x8621 # <CJK>
+0xF5FB 0x8620 # <CJK>
+0xF5FC 0x8629 # <CJK>
+0xF5FD 0x861E # <CJK>
+0xF5FE 0x8625 # <CJK>
+0xF640 0x8829 # <CJK>
+0xF641 0x881D # <CJK>
+0xF642 0x881B # <CJK>
+0xF643 0x8820 # <CJK>
+0xF644 0x8824 # <CJK>
+0xF645 0x881C # <CJK>
+0xF646 0x882B # <CJK>
+0xF647 0x884A # <CJK>
+0xF648 0x896D # <CJK>
+0xF649 0x8969 # <CJK>
+0xF64A 0x896E # <CJK>
+0xF64B 0x896B # <CJK>
+0xF64C 0x89FA # <CJK>
+0xF64D 0x8B79 # <CJK>
+0xF64E 0x8B78 # <CJK>
+0xF64F 0x8B45 # <CJK>
+0xF650 0x8B7A # <CJK>
+0xF651 0x8B7B # <CJK>
+0xF652 0x8D10 # <CJK>
+0xF653 0x8D14 # <CJK>
+0xF654 0x8DAF # <CJK>
+0xF655 0x8E8E # <CJK>
+0xF656 0x8E8C # <CJK>
+0xF657 0x8F5E # <CJK>
+0xF658 0x8F5B # <CJK>
+0xF659 0x8F5D # <CJK>
+0xF65A 0x9146 # <CJK>
+0xF65B 0x9144 # <CJK>
+0xF65C 0x9145 # <CJK>
+0xF65D 0x91B9 # <CJK>
+0xF65E 0x943F # <CJK>
+0xF65F 0x943B # <CJK>
+0xF660 0x9436 # <CJK>
+0xF661 0x9429 # <CJK>
+0xF662 0x943D # <CJK>
+0xF663 0x943C # <CJK>
+0xF664 0x9430 # <CJK>
+0xF665 0x9439 # <CJK>
+0xF666 0x942A # <CJK>
+0xF667 0x9437 # <CJK>
+0xF668 0x942C # <CJK>
+0xF669 0x9440 # <CJK>
+0xF66A 0x9431 # <CJK>
+0xF66B 0x95E5 # <CJK>
+0xF66C 0x95E4 # <CJK>
+0xF66D 0x95E3 # <CJK>
+0xF66E 0x9735 # <CJK>
+0xF66F 0x973A # <CJK>
+0xF670 0x97BF # <CJK>
+0xF671 0x97E1 # <CJK>
+0xF672 0x9864 # <CJK>
+0xF673 0x98C9 # <CJK>
+0xF674 0x98C6 # <CJK>
+0xF675 0x98C0 # <CJK>
+0xF676 0x9958 # <CJK>
+0xF677 0x9956 # <CJK>
+0xF678 0x9A39 # <CJK>
+0xF679 0x9A3D # <CJK>
+0xF67A 0x9A46 # <CJK>
+0xF67B 0x9A44 # <CJK>
+0xF67C 0x9A42 # <CJK>
+0xF67D 0x9A41 # <CJK>
+0xF67E 0x9A3A # <CJK>
+0xF6A1 0x9A3F # <CJK>
+0xF6A2 0x9ACD # <CJK>
+0xF6A3 0x9B15 # <CJK>
+0xF6A4 0x9B17 # <CJK>
+0xF6A5 0x9B18 # <CJK>
+0xF6A6 0x9B16 # <CJK>
+0xF6A7 0x9B3A # <CJK>
+0xF6A8 0x9B52 # <CJK>
+0xF6A9 0x9C2B # <CJK>
+0xF6AA 0x9C1D # <CJK>
+0xF6AB 0x9C1C # <CJK>
+0xF6AC 0x9C2C # <CJK>
+0xF6AD 0x9C23 # <CJK>
+0xF6AE 0x9C28 # <CJK>
+0xF6AF 0x9C29 # <CJK>
+0xF6B0 0x9C24 # <CJK>
+0xF6B1 0x9C21 # <CJK>
+0xF6B2 0x9DB7 # <CJK>
+0xF6B3 0x9DB6 # <CJK>
+0xF6B4 0x9DBC # <CJK>
+0xF6B5 0x9DC1 # <CJK>
+0xF6B6 0x9DC7 # <CJK>
+0xF6B7 0x9DCA # <CJK>
+0xF6B8 0x9DCF # <CJK>
+0xF6B9 0x9DBE # <CJK>
+0xF6BA 0x9DC5 # <CJK>
+0xF6BB 0x9DC3 # <CJK>
+0xF6BC 0x9DBB # <CJK>
+0xF6BD 0x9DB5 # <CJK>
+0xF6BE 0x9DCE # <CJK>
+0xF6BF 0x9DB9 # <CJK>
+0xF6C0 0x9DBA # <CJK>
+0xF6C1 0x9DAC # <CJK>
+0xF6C2 0x9DC8 # <CJK>
+0xF6C3 0x9DB1 # <CJK>
+0xF6C4 0x9DAD # <CJK>
+0xF6C5 0x9DCC # <CJK>
+0xF6C6 0x9DB3 # <CJK>
+0xF6C7 0x9DCD # <CJK>
+0xF6C8 0x9DB2 # <CJK>
+0xF6C9 0x9E7A # <CJK>
+0xF6CA 0x9E9C # <CJK>
+0xF6CB 0x9EEB # <CJK>
+0xF6CC 0x9EEE # <CJK>
+0xF6CD 0x9EED # <CJK>
+0xF6CE 0x9F1B # <CJK>
+0xF6CF 0x9F18 # <CJK>
+0xF6D0 0x9F1A # <CJK>
+0xF6D1 0x9F31 # <CJK>
+0xF6D2 0x9F4E # <CJK>
+0xF6D3 0x9F65 # <CJK>
+0xF6D4 0x9F64 # <CJK>
+0xF6D5 0x9F92 # <CJK>
+0xF6D6 0x4EB9 # <CJK>
+0xF6D7 0x56C6 # <CJK>
+0xF6D8 0x56C5 # <CJK>
+0xF6D9 0x56CB # <CJK>
+0xF6DA 0x5971 # <CJK>
+0xF6DB 0x5B4B # <CJK>
+0xF6DC 0x5B4C # <CJK>
+0xF6DD 0x5DD5 # <CJK>
+0xF6DE 0x5DD1 # <CJK>
+0xF6DF 0x5EF2 # <CJK>
+0xF6E0 0x6521 # <CJK>
+0xF6E1 0x6520 # <CJK>
+0xF6E2 0x6526 # <CJK>
+0xF6E3 0x6522 # <CJK>
+0xF6E4 0x6B0B # <CJK>
+0xF6E5 0x6B08 # <CJK>
+0xF6E6 0x6B09 # <CJK>
+0xF6E7 0x6C0D # <CJK>
+0xF6E8 0x7055 # <CJK>
+0xF6E9 0x7056 # <CJK>
+0xF6EA 0x7057 # <CJK>
+0xF6EB 0x7052 # <CJK>
+0xF6EC 0x721E # <CJK>
+0xF6ED 0x721F # <CJK>
+0xF6EE 0x72A9 # <CJK>
+0xF6EF 0x737F # <CJK>
+0xF6F0 0x74D8 # <CJK>
+0xF6F1 0x74D5 # <CJK>
+0xF6F2 0x74D9 # <CJK>
+0xF6F3 0x74D7 # <CJK>
+0xF6F4 0x766D # <CJK>
+0xF6F5 0x76AD # <CJK>
+0xF6F6 0x7935 # <CJK>
+0xF6F7 0x79B4 # <CJK>
+0xF6F8 0x7A70 # <CJK>
+0xF6F9 0x7A71 # <CJK>
+0xF6FA 0x7C57 # <CJK>
+0xF6FB 0x7C5C # <CJK>
+0xF6FC 0x7C59 # <CJK>
+0xF6FD 0x7C5B # <CJK>
+0xF6FE 0x7C5A # <CJK>
+0xF740 0x7CF4 # <CJK>
+0xF741 0x7CF1 # <CJK>
+0xF742 0x7E91 # <CJK>
+0xF743 0x7F4F # <CJK>
+0xF744 0x7F87 # <CJK>
+0xF745 0x81DE # <CJK>
+0xF746 0x826B # <CJK>
+0xF747 0x8634 # <CJK>
+0xF748 0x8635 # <CJK>
+0xF749 0x8633 # <CJK>
+0xF74A 0x862C # <CJK>
+0xF74B 0x8632 # <CJK>
+0xF74C 0x8636 # <CJK>
+0xF74D 0x882C # <CJK>
+0xF74E 0x8828 # <CJK>
+0xF74F 0x8826 # <CJK>
+0xF750 0x882A # <CJK>
+0xF751 0x8825 # <CJK>
+0xF752 0x8971 # <CJK>
+0xF753 0x89BF # <CJK>
+0xF754 0x89BE # <CJK>
+0xF755 0x89FB # <CJK>
+0xF756 0x8B7E # <CJK>
+0xF757 0x8B84 # <CJK>
+0xF758 0x8B82 # <CJK>
+0xF759 0x8B86 # <CJK>
+0xF75A 0x8B85 # <CJK>
+0xF75B 0x8B7F # <CJK>
+0xF75C 0x8D15 # <CJK>
+0xF75D 0x8E95 # <CJK>
+0xF75E 0x8E94 # <CJK>
+0xF75F 0x8E9A # <CJK>
+0xF760 0x8E92 # <CJK>
+0xF761 0x8E90 # <CJK>
+0xF762 0x8E96 # <CJK>
+0xF763 0x8E97 # <CJK>
+0xF764 0x8F60 # <CJK>
+0xF765 0x8F62 # <CJK>
+0xF766 0x9147 # <CJK>
+0xF767 0x944C # <CJK>
+0xF768 0x9450 # <CJK>
+0xF769 0x944A # <CJK>
+0xF76A 0x944B # <CJK>
+0xF76B 0x944F # <CJK>
+0xF76C 0x9447 # <CJK>
+0xF76D 0x9445 # <CJK>
+0xF76E 0x9448 # <CJK>
+0xF76F 0x9449 # <CJK>
+0xF770 0x9446 # <CJK>
+0xF771 0x973F # <CJK>
+0xF772 0x97E3 # <CJK>
+0xF773 0x986A # <CJK>
+0xF774 0x9869 # <CJK>
+0xF775 0x98CB # <CJK>
+0xF776 0x9954 # <CJK>
+0xF777 0x995B # <CJK>
+0xF778 0x9A4E # <CJK>
+0xF779 0x9A53 # <CJK>
+0xF77A 0x9A54 # <CJK>
+0xF77B 0x9A4C # <CJK>
+0xF77C 0x9A4F # <CJK>
+0xF77D 0x9A48 # <CJK>
+0xF77E 0x9A4A # <CJK>
+0xF7A1 0x9A49 # <CJK>
+0xF7A2 0x9A52 # <CJK>
+0xF7A3 0x9A50 # <CJK>
+0xF7A4 0x9AD0 # <CJK>
+0xF7A5 0x9B19 # <CJK>
+0xF7A6 0x9B2B # <CJK>
+0xF7A7 0x9B3B # <CJK>
+0xF7A8 0x9B56 # <CJK>
+0xF7A9 0x9B55 # <CJK>
+0xF7AA 0x9C46 # <CJK>
+0xF7AB 0x9C48 # <CJK>
+0xF7AC 0x9C3F # <CJK>
+0xF7AD 0x9C44 # <CJK>
+0xF7AE 0x9C39 # <CJK>
+0xF7AF 0x9C33 # <CJK>
+0xF7B0 0x9C41 # <CJK>
+0xF7B1 0x9C3C # <CJK>
+0xF7B2 0x9C37 # <CJK>
+0xF7B3 0x9C34 # <CJK>
+0xF7B4 0x9C32 # <CJK>
+0xF7B5 0x9C3D # <CJK>
+0xF7B6 0x9C36 # <CJK>
+0xF7B7 0x9DDB # <CJK>
+0xF7B8 0x9DD2 # <CJK>
+0xF7B9 0x9DDE # <CJK>
+0xF7BA 0x9DDA # <CJK>
+0xF7BB 0x9DCB # <CJK>
+0xF7BC 0x9DD0 # <CJK>
+0xF7BD 0x9DDC # <CJK>
+0xF7BE 0x9DD1 # <CJK>
+0xF7BF 0x9DDF # <CJK>
+0xF7C0 0x9DE9 # <CJK>
+0xF7C1 0x9DD9 # <CJK>
+0xF7C2 0x9DD8 # <CJK>
+0xF7C3 0x9DD6 # <CJK>
+0xF7C4 0x9DF5 # <CJK>
+0xF7C5 0x9DD5 # <CJK>
+0xF7C6 0x9DDD # <CJK>
+0xF7C7 0x9EB6 # <CJK>
+0xF7C8 0x9EF0 # <CJK>
+0xF7C9 0x9F35 # <CJK>
+0xF7CA 0x9F33 # <CJK>
+0xF7CB 0x9F32 # <CJK>
+0xF7CC 0x9F42 # <CJK>
+0xF7CD 0x9F6B # <CJK>
+0xF7CE 0x9F95 # <CJK>
+0xF7CF 0x9FA2 # <CJK>
+0xF7D0 0x513D # <CJK>
+0xF7D1 0x5299 # <CJK>
+0xF7D2 0x58E8 # <CJK>
+0xF7D3 0x58E7 # <CJK>
+0xF7D4 0x5972 # <CJK>
+0xF7D5 0x5B4D # <CJK>
+0xF7D6 0x5DD8 # <CJK>
+0xF7D7 0x882F # <CJK>
+0xF7D8 0x5F4F # <CJK>
+0xF7D9 0x6201 # <CJK>
+0xF7DA 0x6203 # <CJK>
+0xF7DB 0x6204 # <CJK>
+0xF7DC 0x6529 # <CJK>
+0xF7DD 0x6525 # <CJK>
+0xF7DE 0x6596 # <CJK>
+0xF7DF 0x66EB # <CJK>
+0xF7E0 0x6B11 # <CJK>
+0xF7E1 0x6B12 # <CJK>
+0xF7E2 0x6B0F # <CJK>
+0xF7E3 0x6BCA # <CJK>
+0xF7E4 0x705B # <CJK>
+0xF7E5 0x705A # <CJK>
+0xF7E6 0x7222 # <CJK>
+0xF7E7 0x7382 # <CJK>
+0xF7E8 0x7381 # <CJK>
+0xF7E9 0x7383 # <CJK>
+0xF7EA 0x7670 # <CJK>
+0xF7EB 0x77D4 # <CJK>
+0xF7EC 0x7C67 # <CJK>
+0xF7ED 0x7C66 # <CJK>
+0xF7EE 0x7E95 # <CJK>
+0xF7EF 0x826C # <CJK>
+0xF7F0 0x863A # <CJK>
+0xF7F1 0x8640 # <CJK>
+0xF7F2 0x8639 # <CJK>
+0xF7F3 0x863C # <CJK>
+0xF7F4 0x8631 # <CJK>
+0xF7F5 0x863B # <CJK>
+0xF7F6 0x863E # <CJK>
+0xF7F7 0x8830 # <CJK>
+0xF7F8 0x8832 # <CJK>
+0xF7F9 0x882E # <CJK>
+0xF7FA 0x8833 # <CJK>
+0xF7FB 0x8976 # <CJK>
+0xF7FC 0x8974 # <CJK>
+0xF7FD 0x8973 # <CJK>
+0xF7FE 0x89FE # <CJK>
+0xF840 0x8B8C # <CJK>
+0xF841 0x8B8E # <CJK>
+0xF842 0x8B8B # <CJK>
+0xF843 0x8B88 # <CJK>
+0xF844 0x8C45 # <CJK>
+0xF845 0x8D19 # <CJK>
+0xF846 0x8E98 # <CJK>
+0xF847 0x8F64 # <CJK>
+0xF848 0x8F63 # <CJK>
+0xF849 0x91BC # <CJK>
+0xF84A 0x9462 # <CJK>
+0xF84B 0x9455 # <CJK>
+0xF84C 0x945D # <CJK>
+0xF84D 0x9457 # <CJK>
+0xF84E 0x945E # <CJK>
+0xF84F 0x97C4 # <CJK>
+0xF850 0x97C5 # <CJK>
+0xF851 0x9800 # <CJK>
+0xF852 0x9A56 # <CJK>
+0xF853 0x9A59 # <CJK>
+0xF854 0x9B1E # <CJK>
+0xF855 0x9B1F # <CJK>
+0xF856 0x9B20 # <CJK>
+0xF857 0x9C52 # <CJK>
+0xF858 0x9C58 # <CJK>
+0xF859 0x9C50 # <CJK>
+0xF85A 0x9C4A # <CJK>
+0xF85B 0x9C4D # <CJK>
+0xF85C 0x9C4B # <CJK>
+0xF85D 0x9C55 # <CJK>
+0xF85E 0x9C59 # <CJK>
+0xF85F 0x9C4C # <CJK>
+0xF860 0x9C4E # <CJK>
+0xF861 0x9DFB # <CJK>
+0xF862 0x9DF7 # <CJK>
+0xF863 0x9DEF # <CJK>
+0xF864 0x9DE3 # <CJK>
+0xF865 0x9DEB # <CJK>
+0xF866 0x9DF8 # <CJK>
+0xF867 0x9DE4 # <CJK>
+0xF868 0x9DF6 # <CJK>
+0xF869 0x9DE1 # <CJK>
+0xF86A 0x9DEE # <CJK>
+0xF86B 0x9DE6 # <CJK>
+0xF86C 0x9DF2 # <CJK>
+0xF86D 0x9DF0 # <CJK>
+0xF86E 0x9DE2 # <CJK>
+0xF86F 0x9DEC # <CJK>
+0xF870 0x9DF4 # <CJK>
+0xF871 0x9DF3 # <CJK>
+0xF872 0x9DE8 # <CJK>
+0xF873 0x9DED # <CJK>
+0xF874 0x9EC2 # <CJK>
+0xF875 0x9ED0 # <CJK>
+0xF876 0x9EF2 # <CJK>
+0xF877 0x9EF3 # <CJK>
+0xF878 0x9F06 # <CJK>
+0xF879 0x9F1C # <CJK>
+0xF87A 0x9F38 # <CJK>
+0xF87B 0x9F37 # <CJK>
+0xF87C 0x9F36 # <CJK>
+0xF87D 0x9F43 # <CJK>
+0xF87E 0x9F4F # <CJK>
+0xF8A1 0x9F71 # <CJK>
+0xF8A2 0x9F70 # <CJK>
+0xF8A3 0x9F6E # <CJK>
+0xF8A4 0x9F6F # <CJK>
+0xF8A5 0x56D3 # <CJK>
+0xF8A6 0x56CD # <CJK>
+0xF8A7 0x5B4E # <CJK>
+0xF8A8 0x5C6D # <CJK>
+0xF8A9 0x652D # <CJK>
+0xF8AA 0x66ED # <CJK>
+0xF8AB 0x66EE # <CJK>
+0xF8AC 0x6B13 # <CJK>
+0xF8AD 0x705F # <CJK>
+0xF8AE 0x7061 # <CJK>
+0xF8AF 0x705D # <CJK>
+0xF8B0 0x7060 # <CJK>
+0xF8B1 0x7223 # <CJK>
+0xF8B2 0x74DB # <CJK>
+0xF8B3 0x74E5 # <CJK>
+0xF8B4 0x77D5 # <CJK>
+0xF8B5 0x7938 # <CJK>
+0xF8B6 0x79B7 # <CJK>
+0xF8B7 0x79B6 # <CJK>
+0xF8B8 0x7C6A # <CJK>
+0xF8B9 0x7E97 # <CJK>
+0xF8BA 0x7F89 # <CJK>
+0xF8BB 0x826D # <CJK>
+0xF8BC 0x8643 # <CJK>
+0xF8BD 0x8838 # <CJK>
+0xF8BE 0x8837 # <CJK>
+0xF8BF 0x8835 # <CJK>
+0xF8C0 0x884B # <CJK>
+0xF8C1 0x8B94 # <CJK>
+0xF8C2 0x8B95 # <CJK>
+0xF8C3 0x8E9E # <CJK>
+0xF8C4 0x8E9F # <CJK>
+0xF8C5 0x8EA0 # <CJK>
+0xF8C6 0x8E9D # <CJK>
+0xF8C7 0x91BE # <CJK>
+0xF8C8 0x91BD # <CJK>
+0xF8C9 0x91C2 # <CJK>
+0xF8CA 0x946B # <CJK>
+0xF8CB 0x9468 # <CJK>
+0xF8CC 0x9469 # <CJK>
+0xF8CD 0x96E5 # <CJK>
+0xF8CE 0x9746 # <CJK>
+0xF8CF 0x9743 # <CJK>
+0xF8D0 0x9747 # <CJK>
+0xF8D1 0x97C7 # <CJK>
+0xF8D2 0x97E5 # <CJK>
+0xF8D3 0x9A5E # <CJK>
+0xF8D4 0x9AD5 # <CJK>
+0xF8D5 0x9B59 # <CJK>
+0xF8D6 0x9C63 # <CJK>
+0xF8D7 0x9C67 # <CJK>
+0xF8D8 0x9C66 # <CJK>
+0xF8D9 0x9C62 # <CJK>
+0xF8DA 0x9C5E # <CJK>
+0xF8DB 0x9C60 # <CJK>
+0xF8DC 0x9E02 # <CJK>
+0xF8DD 0x9DFE # <CJK>
+0xF8DE 0x9E07 # <CJK>
+0xF8DF 0x9E03 # <CJK>
+0xF8E0 0x9E06 # <CJK>
+0xF8E1 0x9E05 # <CJK>
+0xF8E2 0x9E00 # <CJK>
+0xF8E3 0x9E01 # <CJK>
+0xF8E4 0x9E09 # <CJK>
+0xF8E5 0x9DFF # <CJK>
+0xF8E6 0x9DFD # <CJK>
+0xF8E7 0x9E04 # <CJK>
+0xF8E8 0x9EA0 # <CJK>
+0xF8E9 0x9F1E # <CJK>
+0xF8EA 0x9F46 # <CJK>
+0xF8EB 0x9F74 # <CJK>
+0xF8EC 0x9F75 # <CJK>
+0xF8ED 0x9F76 # <CJK>
+0xF8EE 0x56D4 # <CJK>
+0xF8EF 0x652E # <CJK>
+0xF8F0 0x65B8 # <CJK>
+0xF8F1 0x6B18 # <CJK>
+0xF8F2 0x6B19 # <CJK>
+0xF8F3 0x6B17 # <CJK>
+0xF8F4 0x6B1A # <CJK>
+0xF8F5 0x7062 # <CJK>
+0xF8F6 0x7226 # <CJK>
+0xF8F7 0x72AA # <CJK>
+0xF8F8 0x77D8 # <CJK>
+0xF8F9 0x77D9 # <CJK>
+0xF8FA 0x7939 # <CJK>
+0xF8FB 0x7C69 # <CJK>
+0xF8FC 0x7C6B # <CJK>
+0xF8FD 0x7CF6 # <CJK>
+0xF8FE 0x7E9A # <CJK>
+0xF940 0x7E98 # <CJK>
+0xF941 0x7E9B # <CJK>
+0xF942 0x7E99 # <CJK>
+0xF943 0x81E0 # <CJK>
+0xF944 0x81E1 # <CJK>
+0xF945 0x8646 # <CJK>
+0xF946 0x8647 # <CJK>
+0xF947 0x8648 # <CJK>
+0xF948 0x8979 # <CJK>
+0xF949 0x897A # <CJK>
+0xF94A 0x897C # <CJK>
+0xF94B 0x897B # <CJK>
+0xF94C 0x89FF # <CJK>
+0xF94D 0x8B98 # <CJK>
+0xF94E 0x8B99 # <CJK>
+0xF94F 0x8EA5 # <CJK>
+0xF950 0x8EA4 # <CJK>
+0xF951 0x8EA3 # <CJK>
+0xF952 0x946E # <CJK>
+0xF953 0x946D # <CJK>
+0xF954 0x946F # <CJK>
+0xF955 0x9471 # <CJK>
+0xF956 0x9473 # <CJK>
+0xF957 0x9749 # <CJK>
+0xF958 0x9872 # <CJK>
+0xF959 0x995F # <CJK>
+0xF95A 0x9C68 # <CJK>
+0xF95B 0x9C6E # <CJK>
+0xF95C 0x9C6D # <CJK>
+0xF95D 0x9E0B # <CJK>
+0xF95E 0x9E0D # <CJK>
+0xF95F 0x9E10 # <CJK>
+0xF960 0x9E0F # <CJK>
+0xF961 0x9E12 # <CJK>
+0xF962 0x9E11 # <CJK>
+0xF963 0x9EA1 # <CJK>
+0xF964 0x9EF5 # <CJK>
+0xF965 0x9F09 # <CJK>
+0xF966 0x9F47 # <CJK>
+0xF967 0x9F78 # <CJK>
+0xF968 0x9F7B # <CJK>
+0xF969 0x9F7A # <CJK>
+0xF96A 0x9F79 # <CJK>
+0xF96B 0x571E # <CJK>
+0xF96C 0x7066 # <CJK>
+0xF96D 0x7C6F # <CJK>
+0xF96E 0x883C # <CJK>
+0xF96F 0x8DB2 # <CJK>
+0xF970 0x8EA6 # <CJK>
+0xF971 0x91C3 # <CJK>
+0xF972 0x9474 # <CJK>
+0xF973 0x9478 # <CJK>
+0xF974 0x9476 # <CJK>
+0xF975 0x9475 # <CJK>
+0xF976 0x9A60 # <CJK>
+0xF977 0x9C74 # <CJK>
+0xF978 0x9C73 # <CJK>
+0xF979 0x9C71 # <CJK>
+0xF97A 0x9C75 # <CJK>
+0xF97B 0x9E14 # <CJK>
+0xF97C 0x9E13 # <CJK>
+0xF97D 0x9EF6 # <CJK>
+0xF97E 0x9F0A # <CJK>
+0xF9A1 0x9FA4 # <CJK>
+0xF9A2 0x7068 # <CJK>
+0xF9A3 0x7065 # <CJK>
+0xF9A4 0x7CF7 # <CJK>
+0xF9A5 0x866A # <CJK>
+0xF9A6 0x883E # <CJK>
+0xF9A7 0x883D # <CJK>
+0xF9A8 0x883F # <CJK>
+0xF9A9 0x8B9E # <CJK>
+0xF9AA 0x8C9C # <CJK>
+0xF9AB 0x8EA9 # <CJK>
+0xF9AC 0x8EC9 # <CJK>
+0xF9AD 0x974B # <CJK>
+0xF9AE 0x9873 # <CJK>
+0xF9AF 0x9874 # <CJK>
+0xF9B0 0x98CC # <CJK>
+0xF9B1 0x9961 # <CJK>
+0xF9B2 0x99AB # <CJK>
+0xF9B3 0x9A64 # <CJK>
+0xF9B4 0x9A66 # <CJK>
+0xF9B5 0x9A67 # <CJK>
+0xF9B6 0x9B24 # <CJK>
+0xF9B7 0x9E15 # <CJK>
+0xF9B8 0x9E17 # <CJK>
+0xF9B9 0x9F48 # <CJK>
+0xF9BA 0x6207 # <CJK>
+0xF9BB 0x6B1E # <CJK>
+0xF9BC 0x7227 # <CJK>
+0xF9BD 0x864C # <CJK>
+0xF9BE 0x8EA8 # <CJK>
+0xF9BF 0x9482 # <CJK>
+0xF9C0 0x9480 # <CJK>
+0xF9C1 0x9481 # <CJK>
+0xF9C2 0x9A69 # <CJK>
+0xF9C3 0x9A68 # <CJK>
+0xF9C4 0x9B2E # <CJK>
+0xF9C5 0x9E19 # <CJK>
+0xF9C6 0x7229 # <CJK>
+0xF9C7 0x864B # <CJK>
+0xF9C8 0x8B9F # <CJK>
+0xF9C9 0x9483 # <CJK>
+0xF9CA 0x9C79 # <CJK>
+0xF9CB 0x9EB7 # <CJK>
+0xF9CC 0x7675 # <CJK>
+0xF9CD 0x9A6B # <CJK>
+0xF9CE 0x9C7A # <CJK>
+0xF9CF 0x9E1D # <CJK>
+0xF9D0 0x7069 # <CJK>
+0xF9D1 0x706A # <CJK>
+0xF9D2 0x9EA4 # <CJK>
+0xF9D3 0x9F7E # <CJK>
+0xF9D4 0x9F49 # <CJK>
+0xF9D5 0x9F98 # <CJK>
+#
+0xA15A 0xFF3F #SPACING UNDERSCORE
+0xA1FE 0x2571 #LT DIAG UP RIGHT TO LOW LEFT
+0xA240 0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
+0xA2CC 0x5341 #HANGHZOU NUMERAL TEN
+0xA2CE 0x5345 #HANGZHOU NUMERAL THIRTY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/Big5.nr Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,5 @@
+0xA15A 0xFF3F #SPACING UNDERSCORE
+0xA1FE 0x2571 #LT DIAG UP RIGHT TO LOW LEFT
+0xA240 0x2572 #LT DIAG UP LEFT TO LOW RIGHTG
+0xA2CC 0x5341 #HANGHZOU NUMERAL TEN
+0xA2CE 0x5345 #HANGZHOU NUMERAL THIRTY
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2001.c2b Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,2187 @@
+# Generated from HKSCS2001.Encoder
+#
+# "0xc074 0x9f9c" is the only entry commented out because it
+# exists in Big.map already, so should not be in c2b mapping
+#
+# 0xC074 0x9F9C
+#
+0x8845 0xF308
+0x8847 0xF30A
+0x8848 0xF30B
+0x884B 0xF30E
+0x884C 0xF30F
+0x884E 0xF311
+0x8853 0xF316
+0x8940 0xF3A0
+0x8941 0xF3A1
+0x894C 0xF3AC
+0x89B2 0xF3F0
+0x89B7 0xF3F5
+0x89BA 0xF3F8
+0x89BB 0xF3F9
+0x89BC 0xF3FA
+0x89BE 0xF3FC
+0x89BF 0xF3FD
+0x89C5 0xF403
+0x89CA 0xF408
+0x89CB 0xF409
+0x89CC 0xF40A
+0x89CD 0xF40B
+0x89D5 0xF413
+0x89D7 0xF415
+0x89DA 0xF418
+0x89DB 0xF419
+0x89DC 0xF41A
+0x89E6 0xF424
+0x89E8 0xF426
+0x89EA 0xF428
+0x89ED 0xF42B
+0x89EE 0xF42C
+0x89EF 0xF42D
+0x89F9 0xF437
+0x89FB 0xF439
+0x89FC 0xF43A
+0x89FE 0xF43C
+0x8A40 0xF43D
+0x8A43 0xF440
+0x8A44 0xF441
+0x8A45 0xF442
+0x8A47 0xF444
+0x8A48 0xF445
+0x8A49 0xF446
+0x8A4B 0xF448
+0x8A4C 0xF449
+0x8A4D 0xF44A
+0x8A4E 0xF44B
+0x8A50 0xF44D
+0x8A51 0xF44E
+0x8A52 0xF44F
+0x8A53 0xF450
+0x8A54 0xF451
+0x8A55 0xF452
+0x8A57 0xF454
+0x8A58 0xF455
+0x8A59 0xF456
+0x8A5A 0xF457
+0x8A5D 0xF45A
+0x8A5E 0xF45B
+0x8A5F 0xF45C
+0x8A60 0xF45D
+0x8A61 0xF45E
+0x8A62 0xF45F
+0x8A64 0xF461
+0x8A65 0xF462
+0x8A66 0xF463
+0x8A67 0xF464
+0x8A68 0xF465
+0x8A69 0xF466
+0x8A6B 0xF468
+0x8A6C 0xF469
+0x8A6D 0xF46A
+0x8A6E 0xF46B
+0x8A6F 0xF46C
+0x8A70 0xF46D
+0x8A71 0xF46E
+0x8A72 0xF46F
+0x8A76 0xF473
+0x8A77 0xF474
+0x8A7A 0xF477
+0x8A7B 0xF478
+0x8A7C 0xF479
+0x8A7D 0xF47A
+0x8A7E 0xF47B
+0x8AA1 0xF47C
+0x8AA2 0xF47D
+0x8AA3 0xF47E
+0x8AA5 0xF480
+0x8AA6 0xF481
+0x8AA8 0xF483
+0x8AA9 0xF484
+0x8AAA 0xF485
+0x8AAC 0xF487
+0x8AAD 0xF488
+0x8AAE 0xF489
+0x8AB0 0xF48B
+0x8AB2 0xF48D
+0x8AB3 0xF48E
+0x8AB4 0xF48F
+0x8AB5 0xF490
+0x8AB6 0xF491
+0x8AB8 0xF493
+0x8AB9 0xF494
+0x8ABB 0xF496
+0x8ABC 0xF497
+0x8ABD 0xF498
+0x8AC0 0xF49B
+0x8AC2 0xF49D
+0x8AC3 0xF49E
+0x8AC7 0xF4A2
+0x8AC9 0xF4A4
+0x8ACA 0xF4A5
+0x8ACB 0xF4A6
+0x8ACC 0xF4A7
+0x8ACE 0xF4A9
+0x8ACF 0xF4AA
+0x8AD0 0xF4AB
+0x8AD1 0xF4AC
+0x8AD2 0xF4AD
+0x8AD3 0xF4AE
+0x8AD4 0xF4AF
+0x8AD5 0xF4B0
+0x8AD7 0xF4B2
+0x8AD8 0xF4B3
+0x8AD9 0xF4B4
+0x8ADA 0xF4B5
+0x8ADC 0xF4B7
+0x8ADF 0xF4BA
+0x8AE0 0xF4BB
+0x8AE1 0xF4BC
+0x8AE2 0xF4BD
+0x8AE3 0xF4BE
+0x8AE4 0xF4BF
+0x8AE5 0xF4C0
+0x8AE6 0xF4C1
+0x8AE8 0xF4C3
+0x8AE9 0xF4C4
+0x8AEA 0xF4C5
+0x8AEB 0xF4C6
+0x8AEC 0xF4C7
+0x8AED 0xF4C8
+0x8AEE 0xF4C9
+0x8AEF 0xF4CA
+0x8AF0 0xF4CB
+0x8AF1 0xF4CC
+0x8AF2 0xF4CD
+0x8AF3 0xF4CE
+0x8AF4 0xF4CF
+0x8AF6 0xF4D1
+0x8AF7 0xF4D2
+0x8AF8 0xF4D3
+0x8AF9 0xF4D4
+0x8AFA 0xF4D5
+0x8AFB 0xF4D6
+0x8AFC 0xF4D7
+0x8AFE 0xF4D9
+0x8B40 0xF4DA
+0x8B41 0xF4DB
+0x8B42 0xF4DC
+0x8B43 0xF4DD
+0x8B44 0xF4DE
+0x8B45 0xF4DF
+0x8B46 0xF4E0
+0x8B47 0xF4E1
+0x8B48 0xF4E2
+0x8B49 0xF4E3
+0x8B4A 0xF4E4
+0x8B4B 0xF4E5
+0x8B4C 0xF4E6
+0x8B4D 0xF4E7
+0x8B4E 0xF4E8
+0x8B4F 0xF4E9
+0x8B55 0xF4EF
+0x8B58 0xF4F2
+0x8B59 0xF4F3
+0x8B5E 0xF4F8
+0x8B60 0xF4FA
+0x8B62 0xF4FC
+0x8B64 0xF4FE
+0x8B65 0xF4FF
+0x8B66 0xF500
+0x8B67 0xF501
+0x8B68 0xF502
+0x8B69 0xF503
+0x8B6A 0xF504
+0x8B6B 0xF505
+0x8B6D 0xF507
+0x8B6E 0xF508
+0x8B6F 0xF509
+0x8B70 0xF50A
+0x8B71 0xF50B
+0x8B72 0xF50C
+0x8B73 0xF50D
+0x8B74 0xF50E
+0x8B75 0xF50F
+0x8B76 0xF510
+0x8B77 0xF511
+0x8B79 0xF513
+0x8B7A 0xF514
+0x8B7B 0xF515
+0x8B7C 0xF516
+0x8B7E 0xF518
+0x8BA1 0xF519
+0x8BA2 0xF51A
+0x8BA3 0xF51B
+0x8BA4 0xF51C
+0x8BA5 0xF51D
+0x8BA6 0xF51E
+0x8BA7 0xF51F
+0x8BA8 0xF520
+0x8BA9 0xF521
+0x8BAA 0xF522
+0x8BAB 0xF523
+0x8BAC 0xF524
+0x8BAD 0xF525
+0x8BAE 0xF526
+0x8BB1 0xF529
+0x8BB2 0xF52A
+0x8BB5 0xF52D
+0x8BB6 0xF52E
+0x8BB8 0xF530
+0x8BBB 0xF533
+0x8BBC 0xF534
+0x8BBE 0xF536
+0x8BC2 0xF53A
+0x8BC3 0xF53B
+0x8BC5 0xF53D
+0x8BC8 0xF540
+0x8BCC 0xF544
+0x8BD6 0xF54E
+0x8BDB 0xF553
+0x8BDC 0xF554
+0x8BDE 0xF556
+0x8BE1 0xF559
+0x8BE2 0xF55A
+0x8BE6 0xF55E
+0x8BED 0xF565
+0x8BF3 0xF56B
+0x8BF8 0xF907
+0x8BFA 0xF572
+0x8C42 0xF579
+0x8C46 0xF57D
+0x8C4A 0xF581
+0x8C4C 0xF583
+0x8C4E 0xF585
+0x8C54 0xF58B
+0x8C55 0xF58C
+0x8C57 0xF58E
+0x8C5C 0xF593
+0x8C5F 0xF596
+0x8C64 0xF59B
+0x8C65 0xF59C
+0x8C69 0xF5A0
+0x8C6C 0xF5A3
+0x8C79 0xF5B0
+0x8C7D 0xF5B4
+0x8CA1 0xF5B6
+0x8CA4 0xF5B9
+0x8CA8 0xF5BD
+0x8CAB 0xF5C0
+0x8CAF 0xF5C4
+0x8CB0 0xF5C5
+0x8CC1 0xF5D6
+0x8CC2 0xF5D7
+0x8CCF 0xF5E4
+0x8CD1 0xF5E6
+0x8CD3 0xF5E8
+0x8CD5 0xF5EA
+0x8CD6 0xF5EB
+0x8D63 0xF637
+0x8D64 0xF638
+0x8D67 0xF63B
+0x8D68 0xF63C
+0x8D6D 0xF641
+0x8D6E 0xF642
+0x8D6F 0xF643
+0x8D70 0xF644
+0x8D74 0xF648
+0x8D78 0xF64C
+0x8D7D 0xF651
+0x8DA1 0xF653
+0x8DA6 0xF658
+0x8DAB 0xF65D
+0x8DAD 0xF65F
+0x8DB0 0xF662
+0x8DB2 0xF664
+0x8DB4 0xF666
+0x8DB7 0xF669
+0x8DBA 0xF66C
+0x8DBB 0xF66D
+0x8DBC 0xF66E
+0x8DC3 0xF675
+0x8DC5 0xF677
+0x8DCA 0xF67C
+0x8DCC 0xF67E
+0x8DD6 0xF688
+0x8DDB 0xF68D
+0x8DE2 0xF694
+0x8DEB 0xF69D
+0x8DEC 0xF69E
+0x8DEF 0xF6A1
+0x8DF0 0xF6A2
+0x8DF3 0xF6A5
+0x8DF5 0xF6A7
+0x8DFB 0xF6AD
+0x8DFC 0xF6AE
+0x8DFD 0xF6AF
+0x8DFE 0xF6B0
+0x8E40 0xE311
+0x8E42 0xE313
+0x8E44 0xE315
+0x8E45 0xE316
+0x8E47 0xE318
+0x8E4A 0xE31B
+0x8E4B 0xE31C
+0x8E4E 0xE31F
+0x8E54 0xE325
+0x8E55 0xE326
+0x8E59 0xE32A
+0x8E5B 0xE32C
+0x8E5F 0xE330
+0x8E60 0xE331
+0x8E64 0xE335
+0x8E65 0xE336
+0x8E6A 0xE33B
+0x8E6B 0xE33C
+0x8E6C 0xE33D
+0x8E71 0xE342
+0x8E74 0xE345
+0x8E77 0xE348
+0x8EA2 0xE351
+0x8EA3 0xE352
+0x8EA5 0xE354
+0x8EAC 0xE35B
+0x8EAD 0xE35C
+0x8EAF 0xE35E
+0x8EB1 0xE360
+0x8EB3 0xE362
+0x8EB5 0xE364
+0x8EB6 0xE365
+0x8EB9 0xE368
+0x8EC0 0xE36F
+0x8EC3 0xE372
+0x8EC5 0xE374
+0x8EC6 0xE375
+0x8EC7 0xE376
+0x8EC8 0xE377
+0x8EC9 0xE378
+0x8ECA 0xE379
+0x8ECC 0xE37B
+0x8ED2 0xE381
+0x8ED3 0xE382
+0x8ED7 0xE386
+0x8ED8 0xE387
+0x8ED9 0xE388
+0x8EDA 0xE389
+0x8EDB 0xE38A
+0x8EDE 0xE38D
+0x8EE2 0xE391
+0x8EE4 0xE393
+0x8EE5 0xE394
+0x8EE7 0xE396
+0x8EE9 0xE398
+0x8EEB 0xE39A
+0x8EEC 0xE39B
+0x8EED 0xE39C
+0x8EEF 0xE39E
+0x8EF0 0xE39F
+0x8EF1 0xE3A0
+0x8EF3 0xE3A2
+0x8EF6 0xE3A5
+0x8EF7 0xE3A6
+0x8EF8 0xE3A7
+0x8EF9 0xE3A8
+0x8EFA 0xE3A9
+0x8EFD 0xE3AC
+0x8EFE 0xE3AD
+0x8F43 0xE3B1
+0x8F44 0xE3B2
+0x8F45 0xE3B3
+0x8F46 0xE3B4
+0x8F47 0xE3B5
+0x8F4B 0xE3B9
+0x8F4C 0xE3BA
+0x8F4D 0xE3BB
+0x8F4E 0xE3BC
+0x8F4F 0xE3BD
+0x8F50 0xE3BE
+0x8F54 0xE3C2
+0x8F55 0xE3C3
+0x8F59 0xE3C7
+0x8F5A 0xE3C8
+0x8F5D 0xE3CB
+0x8F5E 0xE3CC
+0x8F5F 0xE3CD
+0x8F61 0xE3CF
+0x8F63 0xE3D1
+0x8F64 0xE3D2
+0x8F67 0xE3D5
+0x8F6A 0xE3D8
+0x8F6B 0xE3D9
+0x8F6C 0xE3DA
+0x8F70 0xE3DE
+0x8F73 0xE3E1
+0x8F74 0xE3E2
+0x8F75 0xE3E3
+0x8F76 0xE3E4
+0x8F79 0xE3E7
+0x8F7A 0xE3E8
+0x8F7C 0xE3EA
+0x8FA1 0xE3ED
+0x8FA2 0xE3EE
+0x8FA4 0xE3F0
+0x8FA6 0xE3F2
+0x8FA7 0xE3F3
+0x8FA8 0xE3F4
+0x8FA9 0xE3F5
+0x8FAB 0xE3F7
+0x8FAC 0xE3F8
+0x8FAE 0xE3FA
+0x8FB1 0xE3FD
+0x8FB3 0xE3FF
+0x8FBA 0xE406
+0x8FBD 0xE409
+0x8FBE 0xE40A
+0x8FBF 0xE40B
+0x8FC2 0xE40E
+0x8FC8 0xE414
+0x8FCF 0xE41B
+0x8FD1 0xE41D
+0x8FD2 0xE41E
+0x8FD7 0xE423
+0x8FD9 0xE425
+0x8FDA 0xE426
+0x8FDB 0xE427
+0x8FDC 0xE428
+0x8FE0 0xE42C
+0x8FE1 0xE42D
+0x8FE6 0xE432
+0x8FEA 0xE436
+0x8FEB 0xE437
+0x8FEE 0xE43A
+0x8FEF 0xE43B
+0x8FF0 0xE43C
+0x8FF1 0xE43D
+0x8FF2 0xE43E
+0x8FF4 0xE440
+0x8FF5 0xE441
+0x8FF8 0xE444
+0x8FFC 0xE448
+0x8FFD 0xE449
+0x9041 0xE44C
+0x9042 0xE44D
+0x9043 0xE44E
+0x9044 0xE44F
+0x9045 0xE450
+0x9046 0xE451
+0x904E 0xE459
+0x904F 0xE45A
+0x9052 0xE45D
+0x9053 0xE45E
+0x9055 0xE460
+0x9056 0xE461
+0x9057 0xE462
+0x9058 0xE463
+0x905A 0xE465
+0x905C 0xE467
+0x905D 0xE468
+0x905E 0xE469
+0x905F 0xE46A
+0x9060 0xE46B
+0x9061 0xE46C
+0x9063 0xE46E
+0x9064 0xE46F
+0x9066 0xE471
+0x9067 0xE472
+0x9069 0xE474
+0x906B 0xE476
+0x906F 0xE47A
+0x9073 0xE47E
+0x9074 0xE47F
+0x9079 0xE484
+0x907B 0xE486
+0x907C 0xE487
+0x907D 0xE488
+0x907E 0xE489
+0x90A1 0xE48A
+0x90A4 0xE48D
+0x90A5 0xE48E
+0x90A8 0xE491
+0x90A9 0xE492
+0x90AA 0xE493
+0x90AC 0xE495
+0x90AD 0xE496
+0x90AE 0xE497
+0x90B7 0xE4A0
+0x90B8 0xE4A1
+0x90B9 0xE4A2
+0x90BA 0xE4A3
+0x90BB 0xE4A4
+0x90BC 0xE4A5
+0x90C0 0xE4A9
+0x90C2 0xE4AB
+0x90C6 0xE4AF
+0x90C9 0xE4B2
+0x90CA 0xE4B3
+0x90CB 0xE4B4
+0x90CC 0xE4B5
+0x90CD 0xE4B6
+0x90CE 0xE4B7
+0x90CF 0xE4B8
+0x90D0 0xE4B9
+0x90D1 0xE4BA
+0x90D5 0xE4BE
+0x90D6 0xE4BF
+0x90D7 0xE4C0
+0x90D8 0xE4C1
+0x90DD 0xE4C6
+0x90E0 0xE4C9
+0x90E4 0xE4CD
+0x90E5 0xE4CE
+0x90ED 0xE4D6
+0x90F0 0xE4D9
+0x90F3 0xE4DC
+0x90F4 0xE4DD
+0x90F5 0xE4DE
+0x90FA 0xE4E3
+0x90FB 0xE4E4
+0x90FC 0xE4E5
+0x90FD 0xE4E6
+0x90FE 0xE4E7
+0x9140 0xE4E8
+0x9145 0xE4ED
+0x9146 0xE4EE
+0x9147 0xE4EF
+0x914E 0xE4F6
+0x914F 0xE4F7
+0x9150 0xE4F8
+0x9151 0xE4F9
+0x9157 0xE4FF
+0x9158 0xE500
+0x9159 0xE501
+0x915A 0xE502
+0x915D 0xE505
+0x915F 0xE507
+0x9162 0xE50A
+0x9165 0xE50D
+0x9166 0xE50E
+0x9167 0xE50F
+0x916A 0xE512
+0x916C 0xE514
+0x916E 0xE516
+0x9172 0xE51A
+0x9174 0xE51C
+0x9175 0xE51D
+0x9176 0xE51E
+0x9177 0xE51F
+0x9178 0xE520
+0x9179 0xE521
+0x917C 0xE524
+0x91A2 0xE528
+0x91A3 0xE529
+0x91A4 0xE52A
+0x91A5 0xE52B
+0x91A6 0xE52C
+0x91A8 0xE52E
+0x91A9 0xE52F
+0x91AE 0xE534
+0x91B1 0xE537
+0x91B3 0xE539
+0x91B4 0xE53A
+0x91B5 0xE53B
+0x91B7 0xE53D
+0x91B8 0xE53E
+0x91BB 0xE541
+0x91BD 0xE543
+0x91C5 0xE54B
+0x91CD 0xE553
+0x91CE 0xE554
+0x91CF 0xE555
+0x91D1 0xE557
+0x91D2 0xE558
+0x91D3 0xE559
+0x91D5 0xE55B
+0x91D6 0xE55C
+0x91D8 0xE55E
+0x91D9 0xE55F
+0x91DC 0xE562
+0x91E0 0xE566
+0x91E1 0xE567
+0x91E3 0xE569
+0x91E7 0xE56D
+0x91E8 0xE56E
+0x91EA 0xE570
+0x91EC 0xE572
+0x91ED 0xE573
+0x91EE 0xE574
+0x91EF 0xE575
+0x91F0 0xE576
+0x91F1 0xE577
+0x91F2 0xE578
+0x91F3 0xE579
+0x91F4 0xE57A
+0x91F5 0xE57B
+0x91F6 0xE57C
+0x91F7 0xE57D
+0x91F8 0xE57E
+0x91F9 0xE57F
+0x91FA 0xE580
+0x91FC 0xE582
+0x91FD 0xE583
+0x91FE 0xE584
+0x9240 0xE585
+0x9241 0xE586
+0x9243 0xE588
+0x9246 0xE58B
+0x9247 0xE58C
+0x9248 0xE58D
+0x9249 0xE58E
+0x924A 0xE58F
+0x924B 0xE590
+0x924C 0xE591
+0x924D 0xE592
+0x924E 0xE593
+0x924F 0xE594
+0x9251 0xE596
+0x9252 0xE597
+0x9253 0xE598
+0x9255 0xE59A
+0x9257 0xE59C
+0x9258 0xE59D
+0x9259 0xE59E
+0x925A 0xE59F
+0x925B 0xE5A0
+0x925C 0xE5A1
+0x925F 0xE5A4
+0x9261 0xE5A6
+0x9262 0xE5A7
+0x9263 0xE5A8
+0x9265 0xE5AA
+0x9269 0xE5AE
+0x926A 0xE5AF
+0x926C 0xE5B1
+0x926D 0xE5B2
+0x9270 0xE5B5
+0x9272 0xE5B7
+0x9273 0xE5B8
+0x9274 0xE5B9
+0x9275 0xE5BA
+0x9276 0xE5BB
+0x9277 0xE5BC
+0x9279 0xE5BE
+0x927A 0xE5BF
+0x927B 0xE5C0
+0x927D 0xE5C2
+0x92A5 0xE5C8
+0x92A6 0xE5C9
+0x92B4 0xE5D7
+0x92B5 0xE5D8
+0x92B6 0xE5D9
+0x92B8 0xE5DB
+0x92B9 0xE5DC
+0x92BC 0xE5DF
+0x92BD 0xE5E0
+0x92BE 0xE5E1
+0x92BF 0xE5E2
+0x92C0 0xE5E3
+0x92C2 0xE5E5
+0x92C3 0xE5E6
+0x92C6 0xE5E9
+0x92C9 0xE5EC
+0x92CB 0xE5EE
+0x92CC 0xE5EF
+0x92CD 0xE5F0
+0x92CE 0xE5F1
+0x92D0 0xE5F3
+0x92D2 0xE5F5
+0x92D7 0xE5FA
+0x92D8 0xE5FB
+0x92D9 0xE5FC
+0x92DB 0xE5FE
+0x92DD 0xE600
+0x92DF 0xE602
+0x92E1 0xE604
+0x92E9 0xE60C
+0x92EC 0xE60F
+0x92ED 0xE610
+0x92EE 0xE611
+0x92EF 0xE612
+0x92F6 0xE619
+0x92F7 0xE61A
+0x92F8 0xE61B
+0x92F9 0xE61C
+0x92FA 0xE61D
+0x92FE 0xE621
+0x9341 0xE623
+0x9342 0xE624
+0x9345 0xE627
+0x9347 0xE629
+0x9349 0xE62B
+0x934B 0xE62D
+0x9350 0xE632
+0x9351 0xE633
+0x9352 0xE634
+0x9355 0xE637
+0x9356 0xE638
+0x9357 0xE639
+0x9358 0xE63A
+0x9359 0xE63B
+0x935A 0xE63C
+0x935B 0xE63D
+0x935D 0xE63F
+0x935E 0xE640
+0x935F 0xE641
+0x9360 0xE642
+0x9363 0xE645
+0x9364 0xE646
+0x9366 0xE648
+0x9369 0xE64B
+0x936C 0xE64E
+0x936D 0xE64F
+0x936F 0xE651
+0x9370 0xE652
+0x9371 0xE653
+0x9372 0xE654
+0x9373 0xE655
+0x9375 0xE657
+0x9376 0xE658
+0x9377 0xE659
+0x937B 0xE65D
+0x937C 0xE65E
+0x937D 0xE65F
+0x937E 0xE660
+0x93A2 0xE662
+0x93A3 0xE663
+0x93A4 0xE664
+0x93A5 0xE665
+0x93A6 0xE666
+0x93A7 0xE667
+0x93A8 0xE668
+0x93AA 0xE66A
+0x93AE 0xE66E
+0x93AF 0xE66F
+0x93B1 0xE671
+0x93B5 0xE675
+0x93B6 0xE676
+0x93B7 0xE677
+0x93B8 0xE678
+0x93B9 0xE679
+0x93BB 0xE67B
+0x93BC 0xE67C
+0x93BD 0xE67D
+0x93BF 0xE67F
+0x93C0 0xE680
+0x93C1 0xE681
+0x93C2 0xE682
+0x93C3 0xE683
+0x93C4 0xE684
+0x93C5 0xE685
+0x93C6 0xE686
+0x93C7 0xE687
+0x93C8 0xE688
+0x93CA 0xE68A
+0x93CB 0xE68B
+0x93CC 0xE68C
+0x93CD 0xE68D
+0x93CE 0xE68E
+0x93CF 0xE68F
+0x93D0 0xE690
+0x93D2 0xE692
+0x93D4 0xE694
+0x93D6 0xE696
+0x93D7 0xE697
+0x93D9 0xE699
+0x93DA 0xE69A
+0x93DC 0xE69C
+0x93DD 0xE69D
+0x93DE 0xE69E
+0x93DF 0xE69F
+0x93E0 0xE6A0
+0x93E1 0xE6A1
+0x93E2 0xE6A2
+0x93E4 0xE6A4
+0x93E6 0xE6A6
+0x93E9 0xE6A9
+0x93EB 0xE6AB
+0x93EC 0xE6AC
+0x93ED 0xE6AD
+0x93F2 0xE6B2
+0x93F6 0xE6B6
+0x93F9 0xE6B9
+0x93FA 0xE6BA
+0x93FD 0xE6BD
+0x93FE 0xE6BE
+0x9441 0xE6C0
+0x9442 0xE6C1
+0x9446 0xE6C5
+0x9448 0xE6C7
+0x9449 0xE6C8
+0x944B 0xE6CA
+0x9452 0xE6D1
+0x9453 0xE6D2
+0x9458 0xE6D7
+0x9459 0xE6D8
+0x945B 0xE6DA
+0x945C 0xE6DB
+0x945E 0xE6DD
+0x945F 0xE6DE
+0x9460 0xE6DF
+0x9461 0xE6E0
+0x9462 0xE6E1
+0x9463 0xE6E2
+0x9464 0xE6E3
+0x9465 0xE6E4
+0x9466 0xE6E5
+0x9467 0xE6E6
+0x9469 0xE6E8
+0x946E 0xE6ED
+0x946F 0xE6EE
+0x9470 0xE6EF
+0x9472 0xE6F1
+0x9473 0xE6F2
+0x9474 0xE6F3
+0x9475 0xE6F4
+0x9478 0xE6F7
+0x9479 0xE6F8
+0x947B 0xE6FA
+0x947C 0xE6FB
+0x947D 0xE6FC
+0x947E 0xE6FD
+0x94A1 0xE6FE
+0x94A2 0xE6FF
+0x94A3 0xE700
+0x94A4 0xE701
+0x94A5 0xE702
+0x94A9 0xE706
+0x94AA 0xE707
+0x94AC 0xE709
+0x94AD 0xE70A
+0x94AF 0xE70C
+0x94B3 0xE710
+0x94B4 0xE711
+0x94B5 0xE712
+0x94B6 0xE713
+0x94B9 0xE716
+0x94BA 0xE717
+0x94BB 0xE718
+0x94BC 0xE719
+0x94BD 0xE71A
+0x94BE 0xE71B
+0x94C0 0xE71D
+0x94C7 0xE724
+0x94C8 0xE725
+0x94C9 0xE726
+0x94CE 0xE72B
+0x94D1 0xE72E
+0x94D2 0xE72F
+0x94D3 0xE730
+0x94D6 0xE733
+0x94D7 0xE734
+0x94D8 0xE735
+0x94D9 0xE736
+0x94DA 0xE737
+0x94DB 0xE738
+0x94DD 0xE73A
+0x94DE 0xE73B
+0x94DF 0xE73C
+0x94E0 0xE73D
+0x94E3 0xE740
+0x94E4 0xE741
+0x94E5 0xE742
+0x94E7 0xE744
+0x94EA 0xE747
+0x94EC 0xE749
+0x94EF 0xE74C
+0x94F0 0xE74D
+0x94F1 0xE74E
+0x94F2 0xE74F
+0x94F4 0xE751
+0x94F5 0xE752
+0x94FE 0xE75B
+0x9540 0xE75C
+0x9541 0xE75D
+0x9543 0xE75F
+0x9544 0xE760
+0x9545 0xE761
+0x9546 0xE762
+0x9548 0xE764
+0x9549 0xE765
+0x954B 0xE767
+0x954C 0xE768
+0x954D 0xE769
+0x9550 0xE76C
+0x9551 0xE76D
+0x9552 0xE76E
+0x9554 0xE770
+0x9559 0xE775
+0x955A 0xE776
+0x955B 0xE777
+0x955C 0xE778
+0x955E 0xE77A
+0x9560 0xE77C
+0x9561 0xE77D
+0x9562 0xE77E
+0x9564 0xE780
+0x9568 0xE784
+0x956A 0xE786
+0x956D 0xE789
+0x956F 0xE78B
+0x9571 0xE78D
+0x9573 0xE78F
+0x9574 0xE790
+0x9576 0xE792
+0x9578 0xE794
+0x957A 0xE796
+0x957B 0xE797
+0x957D 0xE799
+0x95A8 0xE7A2
+0x95AA 0xE7A4
+0x95AB 0xE7A5
+0x95AC 0xE7A6
+0x95AD 0xE7A7
+0x95AE 0xE7A8
+0x95AF 0xE7A9
+0x95B0 0xE7AA
+0x95B2 0xE7AC
+0x95B3 0xE7AD
+0x95B4 0xE7AE
+0x95B7 0xE7B1
+0x95BA 0xE7B4
+0x95BE 0xE7B8
+0x95C2 0xE7BC
+0x95C6 0xE7C0
+0x95C7 0xE7C1
+0x95CA 0xE7C4
+0x95CD 0xE7C7
+0x95D0 0xE7CA
+0x95D1 0xE7CB
+0x95D4 0xE7CE
+0x95D6 0xE7D0
+0x95D7 0xE7D1
+0x95DB 0xE7D5
+0x95DE 0xE7D8
+0x95DF 0xE7D9
+0x95E0 0xE7DA
+0x95E2 0xE7DC
+0x95E3 0xE7DD
+0x95EA 0xE7E4
+0x95EC 0xE7E6
+0x95ED 0xE7E7
+0x95EE 0xE7E8
+0x95EF 0xE7E9
+0x95F0 0xE7EA
+0x95F1 0xE7EB
+0x95F3 0xE7ED
+0x95F4 0xE7EE
+0x95F5 0xE7EF
+0x95F6 0xE7F0
+0x95F7 0xE7F1
+0x95F8 0xE7F2
+0x95F9 0xE7F3
+0x95FC 0xE7F6
+0x95FE 0xE7F8
+0x9641 0xE7FA
+0x9642 0xE7FB
+0x9643 0xE7FC
+0x9646 0xE7FF
+0x9647 0xE800
+0x9648 0xE801
+0x9649 0xE802
+0x964D 0xE806
+0x964F 0xE808
+0x9653 0xE80C
+0x9655 0xE80E
+0x9656 0xE80F
+0x9658 0xE811
+0x965A 0xE813
+0x965C 0xE815
+0x965D 0xE816
+0x965E 0xE817
+0x965F 0xE818
+0x9661 0xE81A
+0x9662 0xE81B
+0x9664 0xE81D
+0x9668 0xE821
+0x9669 0xE822
+0x966B 0xE824
+0x966E 0xE827
+0x966F 0xE828
+0x9674 0xE82D
+0x9675 0xE82E
+0x9676 0xE82F
+0x9678 0xE831
+0x9679 0xE832
+0x967C 0xE835
+0x967E 0xE837
+0x96A1 0xE838
+0x96A3 0xE83A
+0x96A4 0xE83B
+0x96A6 0xE83D
+0x96A8 0xE83F
+0x96AA 0xE841
+0x96AB 0xE842
+0x96B4 0xE84B
+0x96B6 0xE84D
+0x96B7 0xE84E
+0x96B9 0xE850
+0x96BA 0xE851
+0x96BC 0xE853
+0x96BE 0xE855
+0x96BF 0xE856
+0x96C0 0xE857
+0x96C1 0xE858
+0x96C4 0xE85B
+0x96C5 0xE85C
+0x96C6 0xE85D
+0x96C8 0xE85F
+0x96C9 0xE860
+0x96CA 0xE861
+0x96CB 0xE862
+0x96CE 0xE865
+0x96CF 0xE866
+0x96D0 0xE867
+0x96D2 0xE869
+0x96D3 0xE86A
+0x96D4 0xE86B
+0x96D5 0xE86C
+0x96D6 0xE86D
+0x96DA 0xE871
+0x96DF 0xE876
+0x96E1 0xE878
+0x96E6 0xE87D
+0x96E7 0xE87E
+0x96E8 0xE87F
+0x96E9 0xE880
+0x96F0 0xE887
+0x96F7 0xE88E
+0x96F8 0xE88F
+0x96FA 0xE891
+0x96FB 0xE892
+0x96FD 0xE894
+0x96FE 0xE895
+0x9743 0xE899
+0x9744 0xE89A
+0x9745 0xE89B
+0x9746 0xE89C
+0x9747 0xE89D
+0x974A 0xE8A0
+0x974B 0xE8A1
+0x974D 0xE8A3
+0x974E 0xE8A4
+0x974F 0xE8A5
+0x9750 0xE8A6
+0x9751 0xE8A7
+0x9753 0xE8A9
+0x9754 0xE8AA
+0x9756 0xE8AC
+0x9757 0xE8AD
+0x9758 0xE8AE
+0x9759 0xE8AF
+0x975A 0xE8B0
+0x975D 0xE8B3
+0x975F 0xE8B5
+0x9760 0xE8B6
+0x9761 0xE8B7
+0x9762 0xE8B8
+0x9766 0xE8BC
+0x9767 0xE8BD
+0x9768 0xE8BE
+0x9769 0xE8BF
+0x976A 0xE8C0
+0x976B 0xE8C1
+0x976C 0xE8C2
+0x976D 0xE8C3
+0x976F 0xE8C5
+0x9771 0xE8C7
+0x9775 0xE8CB
+0x9777 0xE8CD
+0x9778 0xE8CE
+0x977A 0xE8D0
+0x977B 0xE8D1
+0x977C 0xE8D2
+0x977D 0xE8D3
+0x97A1 0xE8D5
+0x97A2 0xE8D6
+0x97A4 0xE8D8
+0x97A5 0xE8D9
+0x97A6 0xE8DA
+0x97A9 0xE8DD
+0x97AB 0xE8DF
+0x97AC 0xE8E0
+0x97AD 0xE8E1
+0x97AE 0xE8E2
+0x97B0 0xE8E4
+0x97B1 0xE8E5
+0x97B2 0xE8E6
+0x97B4 0xE8E8
+0x97B5 0xE8E9
+0x97B6 0xE8EA
+0x97B8 0xE8EC
+0x97B9 0xE8ED
+0x97BA 0xE8EE
+0x97BD 0xE8F1
+0x97BE 0xE8F2
+0x97C0 0xE8F4
+0x97C1 0xE8F5
+0x97C2 0xE8F6
+0x97C3 0xE8F7
+0x97C5 0xE8F9
+0x97C6 0xE8FA
+0x97C7 0xE8FB
+0x97C9 0xE8FD
+0x97CA 0xE8FE
+0x97CC 0xE900
+0x97CD 0xE901
+0x97CF 0xE903
+0x97D2 0xE906
+0x97D3 0xE907
+0x97D4 0xE908
+0x97D7 0xE90B
+0x97D8 0xE90C
+0x97DA 0xE90E
+0x97DB 0xE90F
+0x97DC 0xE910
+0x97DD 0xE911
+0x97DE 0xE912
+0x97E1 0xE915
+0x97E3 0xE917
+0x97E4 0xE918
+0x97E7 0xE91B
+0x97E8 0xE91C
+0x97EA 0xE91E
+0x97EB 0xE91F
+0x97EC 0xE920
+0x97ED 0xE921
+0x97EE 0xE922
+0x97F1 0xE925
+0x97F2 0xE926
+0x97F3 0xE927
+0x97F4 0xE928
+0x97F5 0xE929
+0x97F6 0xE92A
+0x97F7 0xE92B
+0x97F8 0xE92C
+0x97FA 0xE92E
+0x97FB 0xE92F
+0x97FD 0xE931
+0x97FE 0xE932
+0x9840 0xE933
+0x9841 0xE934
+0x9842 0xE935
+0x9843 0xE936
+0x9845 0xE938
+0x9847 0xE93A
+0x9849 0xE93C
+0x984A 0xE93D
+0x984B 0xE93E
+0x984E 0xE941
+0x9851 0xE944
+0x9852 0xE945
+0x9853 0xE946
+0x9855 0xE948
+0x9856 0xE949
+0x985A 0xE94D
+0x985D 0xE950
+0x985F 0xE952
+0x9860 0xE953
+0x9861 0xE954
+0x9862 0xE955
+0x9864 0xE957
+0x9865 0xE958
+0x9867 0xE95A
+0x9869 0xE95C
+0x986A 0xE95D
+0x986B 0xE95E
+0x986D 0xE960
+0x986E 0xE961
+0x9871 0xE964
+0x9872 0xE965
+0x9874 0xE967
+0x9875 0xE968
+0x9879 0xE96C
+0x987B 0xE96E
+0x987C 0xE96F
+0x98A2 0xE973
+0x98A3 0xE974
+0x98A4 0xE975
+0x98A6 0xE977
+0x98A7 0xE978
+0x98A8 0xE979
+0x98A9 0xE97A
+0x98AA 0xE97B
+0x98AC 0xE97D
+0x98B0 0xE981
+0x98B1 0xE982
+0x98B6 0xE987
+0x98B9 0xE98A
+0x98BC 0xE98D
+0x98BD 0xE98E
+0x98C0 0xE991
+0x98C3 0xE994
+0x98C5 0xE996
+0x98CB 0xE99C
+0x98CC 0xE99D
+0x98CD 0xE99E
+0x98CE 0xE99F
+0x98D0 0xE9A1
+0x98D1 0xE9A2
+0x98D6 0xE9A7
+0x98D9 0xE9AA
+0x98DB 0xE9AC
+0x98DD 0xE9AE
+0x98DF 0xE9B0
+0x98E4 0xE9B5
+0x98E6 0xE9B7
+0x98E8 0xE9B9
+0x98E9 0xE9BA
+0x98EB 0xE9BC
+0x98EC 0xE9BD
+0x98F4 0xE9C5
+0x98FA 0xE9CB
+0x98FE 0xE9CF
+0x9940 0xE9D0
+0x9946 0xE9D6
+0x9948 0xE9D8
+0x994B 0xE9DB
+0x994E 0xE9DE
+0x9955 0xE9E5
+0x9956 0xE9E6
+0x9959 0xE9E9
+0x995B 0xE9EB
+0x995F 0xE9EF
+0x9967 0xE9F7
+0x996E 0xE9FE
+0x9973 0xEA03
+0x997A 0xEA0A
+0x997B 0xEA0B
+0x99A1 0xEA0F
+0x99A5 0xEA13
+0x99A7 0xEA15
+0x99AD 0xEA1B
+0x99B3 0xEA21
+0x99BC 0xEA2A
+0x99C3 0xEA31
+0x99C7 0xEA35
+0x99CE 0xEA3C
+0x99CF 0xEA3D
+0x99D5 0xEA43
+0x99DE 0xEA4C
+0x99E1 0xEA4F
+0x99E9 0xEA57
+0x99F5 0xEA63
+0x99F8 0xEA66
+0x9A48 0xEA75
+0x9A49 0xEA76
+0x9A50 0xEA7D
+0x9A55 0xEA82
+0x9A58 0xEA85
+0x9A5A 0xEA87
+0x9A5C 0xEA89
+0x9A60 0xEA8D
+0x9A63 0xEA90
+0x9A6E 0xEA9B
+0x9A70 0xEA9D
+0x9A79 0xEAA6
+0x9A7B 0xEAA8
+0x9A7C 0xEAA9
+0x9AB4 0xEABF
+0x9AB5 0xEAC0
+0x9AB6 0xEAC1
+0x9ABA 0xEAC5
+0x9ABD 0xEAC8
+0x9ABE 0xEAC9
+0x9ABF 0xEACA
+0x9AC0 0xEACB
+0x9AC1 0xEACC
+0x9AC4 0xEACF
+0x9AC5 0xEAD0
+0x9AC6 0xEAD1
+0x9AC8 0xEAD3
+0x9AC9 0xEAD4
+0x9ACB 0xEAD6
+0x9ACC 0xEAD7
+0x9ACD 0xEAD8
+0x9ACE 0xEAD9
+0x9ACF 0xEADA
+0x9AD1 0xEADC
+0x9AD3 0xEADE
+0x9AD4 0xEADF
+0x9AD5 0xEAE0
+0x9AD6 0xEAE1
+0x9AD7 0xEAE2
+0x9AD8 0xEAE3
+0x9ADC 0xEAE7
+0x9ADD 0xEAE8
+0x9ADE 0xEAE9
+0x9ADF 0xEAEA
+0x9AE0 0xEAEB
+0x9AE1 0xEAEC
+0x9AE3 0xEAEE
+0x9AE5 0xEAF0
+0x9AE6 0xEAF1
+0x9AE7 0xEAF2
+0x9AE9 0xEAF4
+0x9AEA 0xEAF5
+0x9AEB 0xEAF6
+0x9AEC 0xEAF7
+0x9AED 0xEAF8
+0x9AEE 0xEAF9
+0x9AEF 0xEAFA
+0x9AF0 0xEAFB
+0x9AF3 0xEAFE
+0x9AF4 0xEAFF
+0x9AF5 0xEB00
+0x9AF7 0xEB02
+0x9AF8 0xEB03
+0x9AF9 0xEB04
+0x9AFA 0xEB05
+0x9AFD 0xEB08
+0x9AFE 0xEB09
+0x9B40 0xEB0A
+0x9B41 0xEB0B
+0x9B42 0xEB0C
+0x9B43 0xEB0D
+0x9B44 0xEB0E
+0x9B45 0xEB0F
+0x9B47 0xEB11
+0x9B48 0xEB12
+0x9B4B 0xEB15
+0x9B4D 0xEB17
+0x9B4E 0xEB18
+0x9B4F 0xEB19
+0x9B50 0xEB1A
+0x9B51 0xEB1B
+0x9B52 0xEB1C
+0x9B53 0xEB1D
+0x9B55 0xEB1F
+0x9B56 0xEB20
+0x9B57 0xEB21
+0x9B59 0xEB23
+0x9B5B 0xEB25
+0x9B5D 0xEB27
+0x9B60 0xEB2A
+0x9B62 0xEB2C
+0x9B63 0xEB2D
+0x9B64 0xEB2E
+0x9B65 0xEB2F
+0x9B66 0xEB30
+0x9B67 0xEB31
+0x9B68 0xEB32
+0x9B69 0xEB33
+0x9B6A 0xEB34
+0x9B6B 0xEB35
+0x9B6C 0xEB36
+0x9B6D 0xEB37
+0x9B6E 0xEB38
+0x9B6F 0xEB39
+0x9B73 0xEB3D
+0x9B74 0xEB3E
+0x9B75 0xEB3F
+0x9B77 0xEB41
+0x9B79 0xEB43
+0x9B7A 0xEB44
+0x9B7C 0xEB46
+0x9BA2 0xEB4A
+0x9BA3 0xEB4B
+0x9BA4 0xEB4C
+0x9BA5 0xEB4D
+0x9BA6 0xEB4E
+0x9BA7 0xEB4F
+0x9BA8 0xEB50
+0x9BA9 0xEB51
+0x9BAA 0xEB52
+0x9BAB 0xEB53
+0x9BAC 0xEB54
+0x9BAD 0xEB55
+0x9BAE 0xEB56
+0x9BAF 0xEB57
+0x9BB0 0xEB58
+0x9BB1 0xEB59
+0x9BB2 0xEB5A
+0x9BB3 0xEB5B
+0x9BB5 0xEB5D
+0x9BB7 0xEB5F
+0x9BB8 0xEB60
+0x9BB9 0xEB61
+0x9BBA 0xEB62
+0x9BBB 0xEB63
+0x9BBD 0xEB65
+0x9BBE 0xEB66
+0x9BBF 0xEB67
+0x9BC0 0xEB68
+0x9BC1 0xEB69
+0x9BC2 0xEB6A
+0x9BC3 0xEB6B
+0x9BC5 0xEB6D
+0x9BC7 0xEB6F
+0x9BC8 0xEB70
+0x9BC9 0xEB71
+0x9BCB 0xEB73
+0x9BCC 0xEB74
+0x9BCE 0xEB76
+0x9BCF 0xEB77
+0x9BD0 0xEB78
+0x9BD2 0xEB7A
+0x9BD6 0xEB7E
+0x9BD7 0xEB7F
+0x9BD8 0xEB80
+0x9BD9 0xEB81
+0x9BDB 0xEB83
+0x9BDC 0xEB84
+0x9BDD 0xEB85
+0x9BDF 0xEB87
+0x9BE0 0xEB88
+0x9BE1 0xEB89
+0x9BE2 0xEB8A
+0x9BE3 0xEB8B
+0x9BE4 0xEB8C
+0x9BE5 0xEB8D
+0x9BE6 0xEB8E
+0x9BE7 0xEB8F
+0x9BE8 0xEB90
+0x9BEA 0xEB92
+0x9BEB 0xEB93
+0x9BED 0xEB95
+0x9BEE 0xEB96
+0x9BEF 0xEB97
+0x9BF0 0xEB98
+0x9BF1 0xEB99
+0x9BF2 0xEB9A
+0x9BF3 0xEB9B
+0x9BF7 0xEB9F
+0x9BF8 0xEBA0
+0x9BFA 0xEBA2
+0x9BFB 0xEBA3
+0x9BFD 0xEBA5
+0x9BFE 0xEBA6
+0x9C41 0xEBA8
+0x9C43 0xEBAA
+0x9C44 0xEBAB
+0x9C46 0xEBAD
+0x9C47 0xEBAE
+0x9C48 0xEBAF
+0x9C49 0xEBB0
+0x9C4A 0xEBB1
+0x9C4B 0xEBB2
+0x9C4C 0xEBB3
+0x9C4D 0xEBB4
+0x9C4F 0xEBB6
+0x9C52 0xEBB9
+0x9C55 0xEBBC
+0x9C56 0xEBBD
+0x9C58 0xEBBF
+0x9C5B 0xEBC2
+0x9C5C 0xEBC3
+0x9C5E 0xEBC5
+0x9C5F 0xEBC6
+0x9C60 0xEBC7
+0x9C61 0xEBC8
+0x9C63 0xEBCA
+0x9C65 0xEBCC
+0x9C66 0xEBCD
+0x9C67 0xEBCE
+0x9C69 0xEBD0
+0x9C6C 0xEBD3
+0x9C6E 0xEBD5
+0x9C6F 0xEBD6
+0x9C70 0xEBD7
+0x9C71 0xEBD8
+0x9C73 0xEBDA
+0x9C74 0xEBDB
+0x9C76 0xEBDD
+0x9C78 0xEBDF
+0x9C79 0xEBE0
+0x9C7A 0xEBE1
+0x9C7D 0xEBE4
+0x9CA1 0xEBE6
+0x9CA2 0xEBE7
+0x9CA3 0xEBE8
+0x9CA4 0xEBE9
+0x9CA5 0xEBEA
+0x9CA6 0xEBEB
+0x9CA7 0xEBEC
+0x9CA9 0xEBEE
+0x9CAA 0xEBEF
+0x9CAC 0xEBF1
+0x9CAD 0xEBF2
+0x9CB0 0xEBF5
+0x9CB1 0xEBF6
+0x9CB4 0xEBF9
+0x9CB5 0xEBFA
+0x9CB6 0xEBFB
+0x9CB8 0xEBFD
+0x9CB9 0xEBFE
+0x9CBA 0xEBFF
+0x9CBB 0xEC00
+0x9CBE 0xEC03
+0x9CC0 0xEC05
+0x9CC1 0xEC06
+0x9CC3 0xEC08
+0x9CC4 0xEC09
+0x9CC6 0xEC0B
+0x9CC7 0xEC0C
+0x9CC8 0xEC0D
+0x9CC9 0xEC0E
+0x9CCA 0xEC0F
+0x9CCB 0xEC10
+0x9CCE 0xEC13
+0x9CCF 0xEC14
+0x9CD1 0xEC16
+0x9CD2 0xEC17
+0x9CD3 0xEC18
+0x9CD4 0xEC19
+0x9CD5 0xEC1A
+0x9CD6 0xEC1B
+0x9CD7 0xEC1C
+0x9CD8 0xEC1D
+0x9CDB 0xEC20
+0x9CDD 0xEC22
+0x9CDF 0xEC24
+0x9CE1 0xEC26
+0x9CE5 0xEC2A
+0x9CE6 0xEC2B
+0x9CE7 0xEC2C
+0x9CE8 0xEC2D
+0x9CE9 0xEC2E
+0x9CEA 0xEC2F
+0x9CEC 0xEC31
+0x9CED 0xEC32
+0x9CF0 0xEC35
+0x9CF2 0xEC37
+0x9CF6 0xEC3B
+0x9CF7 0xEC3C
+0x9CF8 0xEC3D
+0x9CFA 0xEC3F
+0x9CFB 0xEC40
+0x9CFC 0xEC41
+0x9CFD 0xEC42
+0x9CFE 0xEC43
+0x9D40 0xEC44
+0x9D41 0xEC45
+0x9D42 0xEC46
+0x9D43 0xEC47
+0x9D44 0xEC48
+0x9D45 0xEC49
+0x9D46 0xEC4A
+0x9D47 0xEC4B
+0x9D48 0xEC4C
+0x9D49 0xEC4D
+0x9D4B 0xEC4F
+0x9D4E 0xEC52
+0x9D4F 0xEC53
+0x9D50 0xEC54
+0x9D51 0xEC55
+0x9D52 0xEC56
+0x9D53 0xEC57
+0x9D54 0xEC58
+0x9D56 0xEC5A
+0x9D58 0xEC5C
+0x9D59 0xEC5D
+0x9D5B 0xEC5F
+0x9D5C 0xEC60
+0x9D5D 0xEC61
+0x9D5E 0xEC62
+0x9D5F 0xEC63
+0x9D63 0xEC67
+0x9D64 0xEC68
+0x9D65 0xEC69
+0x9D66 0xEC6A
+0x9D67 0xEC6B
+0x9D68 0xEC6C
+0x9D69 0xEC6D
+0x9D6A 0xEC6E
+0x9D6B 0xEC6F
+0x9D6C 0xEC70
+0x9D6D 0xEC71
+0x9D6E 0xEC72
+0x9D6F 0xEC73
+0x9D71 0xEC75
+0x9D72 0xEC76
+0x9D73 0xEC77
+0x9D75 0xEC79
+0x9D77 0xEC7B
+0x9D78 0xEC7C
+0x9D7A 0xEC7E
+0x9D7B 0xEC7F
+0x9D7C 0xEC80
+0x9DA2 0xEC84
+0x9DA4 0xEC86
+0x9DA5 0xEC87
+0x9DAA 0xEC8C
+0x9DAB 0xEC8D
+0x9DAC 0xEC8E
+0x9DAD 0xEC8F
+0x9DAF 0xEC91
+0x9DB0 0xEC92
+0x9DB1 0xEC93
+0x9DB2 0xEC94
+0x9DB3 0xEC95
+0x9DB4 0xEC96
+0x9DB5 0xEC97
+0x9DB6 0xEC98
+0x9DB7 0xEC99
+0x9DB8 0xEC9A
+0x9DB9 0xEC9B
+0x9DBB 0xEC9D
+0x9DBC 0xEC9E
+0x9DBE 0xECA0
+0x9DC1 0xECA3
+0x9DC2 0xECA4
+0x9DC5 0xECA7
+0x9DC6 0xECA8
+0x9DC9 0xECAB
+0x9DCB 0xECAD
+0x9DCC 0xECAE
+0x9DCD 0xECAF
+0x9DCE 0xECB0
+0x9DD2 0xECB4
+0x9DD4 0xECB6
+0x9DD7 0xECB9
+0x9DD8 0xECBA
+0x9DD9 0xECBB
+0x9DED 0xECCF
+0x9DEE 0xECD0
+0x9DF2 0xECD4
+0x9DF3 0xECD5
+0x9DF9 0xECDB
+0x9DFA 0xECDC
+0x9DFC 0xECDE
+0x9DFD 0xECDF
+0x9DFE 0xECE0
+0x9E40 0xECE1
+0x9E44 0xECE5
+0x9E4F 0xECF0
+0x9E51 0xECF2
+0x9E53 0xECF4
+0x9E54 0xECF5
+0x9E5B 0xECFC
+0x9E63 0xED04
+0x9E64 0xED05
+0x9E66 0xED07
+0x9E69 0xED0A
+0x9E6B 0xED0C
+0x9E6C 0xED0D
+0x9E6D 0xED0E
+0x9E6E 0xED0F
+0x9E6F 0xED10
+0x9E70 0xED11
+0x9E72 0xED13
+0x9E74 0xED15
+0x9E75 0xED16
+0x9E76 0xED17
+0x9E77 0xED18
+0x9E79 0xED1A
+0x9E7A 0xED1B
+0x9E7B 0xED1C
+0x9E7C 0xED1D
+0x9E7D 0xED1E
+0x9E7E 0xED1F
+0x9EA3 0xED22
+0x9EA4 0xED23
+0x9EA5 0xED24
+0x9EA6 0xED25
+0x9EA7 0xED26
+0x9EA8 0xED27
+0x9EAA 0xED29
+0x9EAB 0xED2A
+0x9EAD 0xED2C
+0x9EAE 0xED2D
+0x9EB4 0xED33
+0x9EB8 0xED37
+0x9EB9 0xED38
+0x9EBB 0xED3A
+0x9EBC 0xED3B
+0x9EBE 0xED3D
+0x9EC2 0xED41
+0x9EC3 0xED42
+0x9EC5 0xED44
+0x9EC6 0xED45
+0x9EC8 0xED47
+0x9EC9 0xED48
+0x9ECB 0xED4A
+0x9ECC 0xED4B
+0x9ECD 0xED4C
+0x9ECE 0xED4D
+0x9ECF 0xED4E
+0x9ED0 0xED4F
+0x9ED2 0xED51
+0x9ED3 0xED52
+0x9ED4 0xED53
+0x9ED5 0xED54
+0x9ED8 0xED57
+0x9ED9 0xED58
+0x9EDA 0xED59
+0x9EDD 0xED5C
+0x9EDE 0xED5D
+0x9EDF 0xED5E
+0x9EE0 0xED5F
+0x9EE3 0xED62
+0x9EE5 0xED64
+0x9EE7 0xED66
+0x9EEC 0xED6B
+0x9EEE 0xED6D
+0x9EF0 0xED6F
+0x9EF2 0xED71
+0x9EF3 0xED72
+0x9EF6 0xED75
+0x9EF8 0xED77
+0x9EF9 0xED78
+0x9EFB 0xED7A
+0x9EFC 0xED7B
+0x9F43 0xED81
+0x9F46 0xED84
+0x9F47 0xED85
+0x9F48 0xED86
+0x9F4A 0xED88
+0x9F4B 0xED89
+0x9F4C 0xED8A
+0x9F4D 0xED8B
+0x9F50 0xED8E
+0x9F53 0xED91
+0x9F68 0xEDA6
+0x9F70 0xEDAE
+0x9FA5 0xEDC1
+0x9FAA 0xEDC6
+0x9FB3 0xEDCF
+0x9FB5 0xEDD1
+0x9FBB 0xEDD7
+0x9FBE 0xEDDA
+0x9FBF 0xEDDB
+0x9FC1 0xEDDD
+0x9FC5 0xEDE1
+0x9FD1 0xEDED
+0x9FD7 0xEDF3
+0x9FD9 0xEDF5
+0x9FEC 0xEE08
+0x9FF5 0xEE11
+0x9FF9 0xEE15
+0xA040 0xEE1B
+0xA045 0xEE20
+0xA047 0xEE22
+0xA04F 0xEE2A
+0xA053 0xEE2E
+0xA055 0xEE30
+0xA056 0xEE31
+0xA059 0xEE34
+0xA068 0xEE43
+0xA06A 0xEE45
+0xA06D 0xEE48
+0xA06F 0xEE4A
+0xA078 0xEE53
+0xA07B 0xEE56
+0xA07E 0xEE59
+0xA0A2 0xEE5B
+0xA0A4 0xEE5D
+0xA0A7 0xEE60
+0xA0AB 0xEE64
+0xA0AC 0xEE65
+0xA0B1 0xEE6A
+0xA0BD 0xEE76
+0xA0C3 0xEE7C
+0xA0C5 0xEE7E
+0xA0D0 0xEE89
+0xA0D8 0xEE91
+0xA0DA 0xEE93
+0xA0DE 0xEE97
+0xA0E3 0xEE9C
+0xA0E6 0xEE9F
+0xA0E8 0xEEA1
+0xA0E9 0xEEA2
+0xA0EA 0xEEA3
+0xA0EB 0xEEA4
+0xA0EC 0xEEA5
+0xA0ED 0xEEA6
+0xA0EE 0xEEA7
+0xA0EF 0xEEA8
+0xA0F0 0xEEA9
+0xA0F1 0xEEAA
+0xA0F3 0xEEAC
+0xA0F4 0xEEAD
+0xA0F5 0xEEAE
+0xA0F6 0xEEAF
+0xA0F7 0xEEB0
+0xA0F8 0xEEB1
+0xA0F9 0xEEB2
+0xA0FB 0xEEB4
+0xA0FE 0xEEB7
+0xC6CD 0xF6DD
+0xC87A 0xF7E6
+0xC87C 0xF7E8
+0xC8A4 0xF7EE
+0xC8D6 0xF920
+0xC8D7 0xF921
+0xC8D8 0xF922
+0xC8D9 0xF923
+0xC8DA 0xF924
+0xC8DB 0xF925
+0xC8DC 0xF926
+0xC8DD 0xF927
+0xC8DE 0xF928
+0xC8DF 0xF929
+0xC8E0 0xF92A
+0xC8E1 0xF92B
+0xC8E2 0xF92C
+0xC8E3 0xF92D
+0xC8E4 0xF92E
+0xC8E5 0xF92F
+0xC8E6 0xF930
+0xC8E7 0xF931
+0xC8E8 0xF932
+0xC8E9 0xF933
+0xC8EA 0xF934
+0xC8EB 0xF935
+0xC8EC 0xF936
+0xC8ED 0xF937
+0xC8EE 0xF938
+0xC8EF 0xF939
+0xC8F0 0xF93A
+0xC8F1 0xF93B
+0xFA40 0xE000
+0xFA42 0xE002
+0xFA43 0xE003
+0xFA45 0xE005
+0xFA48 0xE008
+0xFA49 0xE009
+0xFA4A 0xE00A
+0xFA4C 0xE00C
+0xFA4E 0xE00E
+0xFA52 0xE012
+0xFA53 0xE013
+0xFA54 0xE014
+0xFA55 0xE015
+0xFA56 0xE016
+0xFA58 0xE018
+0xFA5A 0xE01A
+0xFA5B 0xE01B
+0xFA5C 0xE01C
+0xFA5D 0xE01D
+0xFA5E 0xE01E
+0xFA60 0xE020
+0xFA62 0xE022
+0xFA63 0xE023
+0xFA65 0xE025
+0xFA68 0xE028
+0xFA6B 0xE02B
+0xFA6D 0xE02D
+0xFA6E 0xE02E
+0xFA70 0xE030
+0xFA72 0xE032
+0xFA73 0xE033
+0xFA74 0xE034
+0xFA75 0xE035
+0xFA76 0xE036
+0xFA77 0xE037
+0xFA78 0xE038
+0xFA7B 0xE03B
+0xFA7C 0xE03C
+0xFAA5 0xE043
+0xFAA7 0xE045
+0xFAAE 0xE04C
+0xFABC 0xE05A
+0xFABE 0xE05C
+0xFAC1 0xE05F
+0xFAC2 0xE060
+0xFAC3 0xE061
+0xFAC6 0xE064
+0xFAC8 0xE066
+0xFACC 0xE06A
+0xFACD 0xE06B
+0xFACE 0xE06C
+0xFAD0 0xE06E
+0xFAD3 0xE071
+0xFAD6 0xE074
+0xFAD7 0xE075
+0xFADA 0xE078
+0xFADF 0xE07D
+0xFAE0 0xE07E
+0xFAE8 0xE086
+0xFAE9 0xE087
+0xFAEB 0xE089
+0xFAEC 0xE08A
+0xFAEE 0xE08C
+0xFAF5 0xE093
+0xFAF6 0xE094
+0xFAFA 0xE098
+0xFAFB 0xE099
+0xFAFC 0xE09A
+0xFAFD 0xE09B
+0xFAFE 0xE09C
+0xFB40 0xE09D
+0xFB41 0xE09E
+0xFB43 0xE0A0
+0xFB49 0xE0A6
+0xFB4A 0xE0A7
+0xFB4B 0xE0A8
+0xFB4C 0xE0A9
+0xFB4E 0xE0AB
+0xFB51 0xE0AE
+0xFB5D 0xE0BA
+0xFB5E 0xE0BB
+0xFB5F 0xE0BC
+0xFB61 0xE0BE
+0xFB65 0xE0C2
+0xFB66 0xE0C3
+0xFB68 0xE0C5
+0xFB6A 0xE0C7
+0xFB6B 0xE0C8
+0xFB6D 0xE0CA
+0xFB70 0xE0CD
+0xFB73 0xE0D0
+0xFB77 0xE0D4
+0xFB78 0xE0D5
+0xFB7A 0xE0D7
+0xFB7D 0xE0DA
+0xFBA1 0xE0DC
+0xFBA4 0xE0DF
+0xFBA7 0xE0E2
+0xFBA8 0xE0E3
+0xFBA9 0xE0E4
+0xFBAA 0xE0E5
+0xFBAC 0xE0E7
+0xFBAD 0xE0E8
+0xFBAE 0xE0E9
+0xFBB0 0xE0EB
+0xFBB1 0xE0EC
+0xFBB3 0xE0EE
+0xFBB6 0xE0F1
+0xFBB7 0xE0F2
+0xFBB9 0xE0F4
+0xFBBD 0xE0F8
+0xFBBE 0xE0F9
+0xFBBF 0xE0FA
+0xFBC0 0xE0FB
+0xFBC1 0xE0FC
+0xFBC2 0xE0FD
+0xFBC8 0xE103
+0xFBC9 0xE104
+0xFBCA 0xE105
+0xFBCB 0xE106
+0xFBCE 0xE109
+0xFBCF 0xE10A
+0xFBD0 0xE10B
+0xFBD3 0xE10E
+0xFBD5 0xE110
+0xFBD9 0xE114
+0xFBDA 0xE115
+0xFBDC 0xE117
+0xFBE1 0xE11C
+0xFBE2 0xE11D
+0xFBE6 0xE121
+0xFBEA 0xE125
+0xFBEB 0xE126
+0xFBEC 0xE127
+0xFBED 0xE128
+0xFBEF 0xE12A
+0xFBF0 0xE12B
+0xFBF5 0xE130
+0xFBF6 0xE131
+0xFBFB 0xE136
+0xFBFE 0xE139
+0xFC42 0xE13C
+0xFC47 0xE141
+0xFC48 0xE142
+0xFC49 0xE143
+0xFC4A 0xE144
+0xFC4B 0xE145
+0xFC4D 0xE147
+0xFC4E 0xE148
+0xFC50 0xE14A
+0xFC53 0xE14D
+0xFC56 0xE150
+0xFC59 0xE153
+0xFC5A 0xE154
+0xFC5B 0xE155
+0xFC5C 0xE156
+0xFC5D 0xE157
+0xFC5F 0xE159
+0xFC60 0xE15A
+0xFC63 0xE15D
+0xFC64 0xE15E
+0xFC65 0xE15F
+0xFC66 0xE160
+0xFC68 0xE162
+0xFC6A 0xE164
+0xFC6E 0xE168
+0xFC6F 0xE169
+0xFC70 0xE16A
+0xFC77 0xE171
+0xFC78 0xE172
+0xFC7B 0xE175
+0xFC7E 0xE178
+0xFCA1 0xE179
+0xFCA3 0xE17B
+0xFCA4 0xE17C
+0xFCA6 0xE17E
+0xFCA7 0xE17F
+0xFCA8 0xE180
+0xFCAD 0xE185
+0xFCAF 0xE187
+0xFCB1 0xE189
+0xFCB3 0xE18B
+0xFCB4 0xE18C
+0xFCB7 0xE18F
+0xFCB8 0xE190
+0xFCBB 0xE193
+0xFCBD 0xE195
+0xFCBE 0xE196
+0xFCC2 0xE19A
+0xFCC4 0xE19C
+0xFCC7 0xE19F
+0xFCC8 0xE1A0
+0xFCCC 0xE1A4
+0xFCCE 0xE1A6
+0xFCCF 0xE1A7
+0xFCD1 0xE1A9
+0xFCD2 0xE1AA
+0xFCD6 0xE1AE
+0xFCD8 0xE1B0
+0xFCD9 0xE1B1
+0xFCDB 0xE1B3
+0xFCDC 0xE1B4
+0xFCDE 0xE1B6
+0xFCE0 0xE1B8
+0xFCE3 0xE1BB
+0xFCE4 0xE1BC
+0xFCE5 0xE1BD
+0xFCE6 0xE1BE
+0xFCE7 0xE1BF
+0xFCE9 0xE1C1
+0xFCEC 0xE1C4
+0xFCED 0xE1C5
+0xFCEE 0xE1C6
+0xFCF0 0xE1C8
+0xFCF4 0xE1CC
+0xFCF5 0xE1CD
+0xFCF7 0xE1CF
+0xFCFC 0xE1D4
+0xFCFD 0xE1D5
+0xFD40 0xE1D7
+0xFD43 0xE1DA
+0xFD46 0xE1DD
+0xFD49 0xE1E0
+0xFD4A 0xE1E1
+0xFD4B 0xE1E2
+0xFD4C 0xE1E3
+0xFD4F 0xE1E6
+0xFD50 0xE1E7
+0xFD53 0xE1EA
+0xFD54 0xE1EB
+0xFD58 0xE1EF
+0xFD59 0xE1F0
+0xFD5B 0xE1F2
+0xFD5D 0xE1F4
+0xFD60 0xE1F7
+0xFD61 0xE1F8
+0xFD63 0xE1FA
+0xFD67 0xE1FE
+0xFD69 0xE200
+0xFD6A 0xE201
+0xFD6B 0xE202
+0xFD6C 0xE203
+0xFD6E 0xE205
+0xFD70 0xE207
+0xFD73 0xE20A
+0xFD74 0xE20B
+0xFD75 0xE20C
+0xFD79 0xE210
+0xFD7A 0xE211
+0xFD7B 0xE212
+0xFD7C 0xE213
+0xFD7D 0xE214
+0xFD7E 0xE215
+0xFDA1 0xE216
+0xFDA2 0xE217
+0xFDA3 0xE218
+0xFDA4 0xE219
+0xFDA6 0xE21B
+0xFDA7 0xE21C
+0xFDAA 0xE21F
+0xFDAB 0xE220
+0xFDAC 0xE221
+0xFDB1 0xE226
+0xFDB2 0xE227
+0xFDB3 0xE228
+0xFDB5 0xE22A
+0xFDBA 0xE22F
+0xFDBC 0xE231
+0xFDBE 0xE233
+0xFDC2 0xE237
+0xFDC4 0xE239
+0xFDC6 0xE23B
+0xFDC8 0xE23D
+0xFDC9 0xE23E
+0xFDCA 0xE23F
+0xFDCE 0xE243
+0xFDD0 0xE245
+0xFDD1 0xE246
+0xFDD3 0xE248
+0xFDD5 0xE24A
+0xFDD6 0xE24B
+0xFDD7 0xE24C
+0xFDD8 0xE24D
+0xFDD9 0xE24E
+0xFDDA 0xE24F
+0xFDDC 0xE251
+0xFDDD 0xE252
+0xFDDE 0xE253
+0xFDDF 0xE254
+0xFDE8 0xE25D
+0xFDE9 0xE25E
+0xFDEC 0xE261
+0xFDF3 0xE268
+0xFDF6 0xE26B
+0xFDF8 0xE26D
+0xFDF9 0xE26E
+0xFDFA 0xE26F
+0xFDFC 0xE271
+0xFE46 0xE27A
+0xFE49 0xE27D
+0xFE4D 0xE281
+0xFE4E 0xE282
+0xFE54 0xE288
+0xFE55 0xE289
+0xFE56 0xE28A
+0xFE57 0xE28B
+0xFE5C 0xE290
+0xFE5D 0xE291
+0xFE60 0xE294
+0xFE61 0xE295
+0xFE62 0xE296
+0xFE64 0xE298
+0xFE65 0xE299
+0xFE66 0xE29A
+0xFE67 0xE29B
+0xFE6B 0xE29F
+0xFE6D 0xE2A1
+0xFE6E 0xE2A2
+0xFE70 0xE2A4
+0xFE72 0xE2A6
+0xFE78 0xE2AC
+0xFE7D 0xE2B1
+0xFE7E 0xE2B2
+0xFEA1 0xE2B3
+0xFEA2 0xE2B4
+0xFEA3 0xE2B5
+0xFEA5 0xE2B7
+0xFEA6 0xE2B8
+0xFEA8 0xE2BA
+0xFEAC 0xE2BE
+0xFEAD 0xE2BF
+0xFEAF 0xE2C1
+0xFEB5 0xE2C7
+0xFEB6 0xE2C8
+0xFEB7 0xE2C9
+0xFEC2 0xE2D4
+0xFEC5 0xE2D7
+0xFEC6 0xE2D8
+0xFEC7 0xE2D9
+0xFECC 0xE2DE
+0xFECE 0xE2E0
+0xFECF 0xE2E1
+0xFED0 0xE2E2
+0xFED5 0xE2E7
+0xFED7 0xE2E9
+0xFED9 0xE2EB
+0xFEDA 0xE2EC
+0xFEDB 0xE2ED
+0xFEDE 0xE2F0
+0xFEDF 0xE2F1
+0xFEE6 0xE2F8
+0xFEEA 0xE2FC
+0xFEED 0xE2FF
+0xFEEE 0xE300
+0xFEEF 0xE301
+0xFEF4 0xE306
+0xFEF6 0xE308
+0xFEFA 0xE30C
+0xFEFB 0xE30D
+0xFEFD 0xE30F
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2001.map Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,4821 @@
+# Generated from HKSCS2001.Encoder
+#
+#
+0x8840 0xF303
+0x8841 0xF304
+0x8842 0xF305
+0x8843 0xF306
+0x8844 0xF307
+0x8845 0x2010C
+0x8846 0xF309
+0x8847 0x200D1
+0x8848 0x200CD
+0x8849 0xF30C
+0x884A 0xF30D
+0x884B 0x200CB
+0x884C 0x21FE8
+0x884D 0xF310
+0x884E 0x200CA
+0x884F 0xF312
+0x8850 0xF313
+0x8851 0xF314
+0x8852 0xF315
+0x8853 0x2010E
+0x8854 0xF317
+0x8855 0xF318
+0x8856 0x100
+0x8857 0xC1
+0x8858 0x1CD
+0x8859 0xC0
+0x885A 0x112
+0x885B 0xC9
+0x885C 0x11A
+0x885D 0xC8
+0x885E 0x14C
+0x885F 0xD3
+0x8860 0x1D1
+0x8861 0xD2
+0x8862 0xF325
+0x8863 0x1EBE
+0x8864 0xF327
+0x8865 0x1EC0
+0x8866 0xCA
+0x8867 0x101
+0x8868 0xE1
+0x8869 0x1CE
+0x886A 0xE0
+0x886B 0x251
+0x886C 0x113
+0x886D 0xE9
+0x886E 0x11B
+0x886F 0xE8
+0x8870 0x12B
+0x8871 0xED
+0x8872 0x1D0
+0x8873 0xEC
+0x8874 0x14D
+0x8875 0xF3
+0x8876 0x1D2
+0x8877 0xF2
+0x8878 0x16B
+0x8879 0xFA
+0x887A 0x1D4
+0x887B 0xF9
+0x887C 0x1D6
+0x887D 0x1D8
+0x887E 0x1DA
+0x88A1 0x1DC
+0x88A2 0xFC
+0x88A3 0xF344
+0x88A4 0x1EBF
+0x88A5 0xF346
+0x88A6 0x1EC1
+0x88A7 0xEA
+0x88A8 0x261
+0x88A9 0xF34A
+0x88AA 0xF34B
+0x8940 0x2A3A9
+0x8941 0x21145
+0x8943 0x650A
+0x8946 0x4E3D
+0x8947 0x6EDD
+0x8948 0x9D4E
+0x8949 0x91DF
+0x894C 0x27735
+0x894D 0x6491
+0x894E 0x4F1A
+0x894F 0x4F28
+0x8950 0x4FA8
+0x8951 0x5156
+0x8952 0x5174
+0x8953 0x519C
+0x8954 0x51E4
+0x8955 0x52A1
+0x8956 0x52A8
+0x8957 0x533B
+0x8958 0x534E
+0x8959 0x53D1
+0x895A 0x53D8
+0x895B 0x56E2
+0x895C 0x58F0
+0x895D 0x5904
+0x895E 0x5907
+0x895F 0x5932
+0x8960 0x5934
+0x8961 0x5B66
+0x8962 0x5B9E
+0x8963 0x5B9F
+0x8964 0x5C9A
+0x8965 0x5E86
+0x8966 0x603B
+0x8967 0x6589
+0x8968 0x67FE
+0x8969 0x6804
+0x896A 0x6865
+0x896B 0x6D4E
+0x896C 0x70BC
+0x896D 0x7535
+0x896E 0x7EA4
+0x896F 0x7EAC
+0x8970 0x7EBA
+0x8971 0x7EC7
+0x8972 0x7ECF
+0x8973 0x7EDF
+0x8974 0x7F06
+0x8975 0x7F37
+0x8976 0x827A
+0x8977 0x82CF
+0x8978 0x836F
+0x8979 0x89C6
+0x897A 0x8BBE
+0x897B 0x8BE2
+0x897C 0x8F66
+0x897D 0x8F67
+0x897E 0x8F6E
+0x89A1 0x7411
+0x89A2 0x7CFC
+0x89A3 0x7DCD
+0x89A4 0x6946
+0x89A5 0x7AC9
+0x89A6 0x5227
+0x89AB 0x918C
+0x89AC 0x78B8
+0x89AD 0x915E
+0x89AE 0x80BC
+0x89B0 0x8D0B
+0x89B1 0x80F6
+0x89B2 0x209E7
+0x89B5 0x809F
+0x89B6 0x9EC7
+0x89B7 0x4CCD
+0x89B8 0x9DC9
+0x89B9 0x9E0C
+0x89BA 0x4C3E
+0x89BB 0x29DF6
+0x89BC 0x2700E
+0x89BD 0x9E0A
+0x89BE 0x2A133
+0x89BF 0x35C1
+0x89C1 0x6E9A
+0x89C2 0x823E
+0x89C3 0x7519
+0x89C5 0x4911
+0x89C6 0x9A6C
+0x89C7 0x9A8F
+0x89C8 0x9F99
+0x89C9 0x7987
+0x89CA 0x2846C
+0x89CB 0x21DCA
+0x89CC 0x205D0
+0x89CD 0x22AE6
+0x89CE 0x4E24
+0x89CF 0x4E81
+0x89D0 0x4E80
+0x89D1 0x4E87
+0x89D2 0x4EBF
+0x89D3 0x4EEB
+0x89D4 0x4F37
+0x89D5 0x344C
+0x89D6 0x4FBD
+0x89D7 0x3E48
+0x89D8 0x5003
+0x89D9 0x5088
+0x89DA 0x347D
+0x89DB 0x3493
+0x89DC 0x34A5
+0x89DD 0x5186
+0x89DE 0x5905
+0x89DF 0x51DB
+0x89E0 0x51FC
+0x89E1 0x5205
+0x89E2 0x4E89
+0x89E3 0x5279
+0x89E4 0x5290
+0x89E5 0x5327
+0x89E6 0x35C7
+0x89E7 0x53A9
+0x89E8 0x3551
+0x89E9 0x53B0
+0x89EA 0x3553
+0x89EB 0x53C2
+0x89EC 0x5423
+0x89ED 0x356D
+0x89EE 0x3572
+0x89EF 0x3681
+0x89F0 0x5493
+0x89F1 0x54A3
+0x89F2 0x54B4
+0x89F3 0x54B9
+0x89F4 0x54D0
+0x89F5 0x54EF
+0x89F6 0x5518
+0x89F7 0x5523
+0x89F8 0x5528
+0x89F9 0x3598
+0x89FA 0x553F
+0x89FB 0x35A5
+0x89FC 0x35BF
+0x89FD 0x55D7
+0x89FE 0x35C5
+0x8A40 0x27D84
+0x8A41 0x5525
+0x8A43 0x20C42
+0x8A44 0x20D15
+0x8A45 0x2512B
+0x8A46 0x5590
+0x8A47 0x22CC6
+0x8A48 0x39EC
+0x8A49 0x20341
+0x8A4A 0x8E46
+0x8A4B 0x24DB8
+0x8A4C 0x294E5
+0x8A4D 0x4053
+0x8A4E 0x280BE
+0x8A4F 0x777A
+0x8A50 0x22C38
+0x8A51 0x3A34
+0x8A52 0x47D5
+0x8A53 0x2815D
+0x8A54 0x269F2
+0x8A55 0x24DEA
+0x8A56 0x64DD
+0x8A57 0x20D7C
+0x8A58 0x20FB4
+0x8A59 0x20CD5
+0x8A5A 0x210F4
+0x8A5B 0x648D
+0x8A5C 0x8E7E
+0x8A5D 0x20E96
+0x8A5E 0x20C0B
+0x8A5F 0x20F64
+0x8A60 0x22CA9
+0x8A61 0x28256
+0x8A62 0x244D3
+0x8A64 0x20D46
+0x8A65 0x29A4D
+0x8A66 0x280E9
+0x8A67 0x47F4
+0x8A68 0x24EA7
+0x8A69 0x22CC2
+0x8A6A 0x9AB2
+0x8A6B 0x3A67
+0x8A6C 0x295F4
+0x8A6D 0x3FED
+0x8A6E 0x3506
+0x8A6F 0x252C7
+0x8A70 0x297D4
+0x8A71 0x278C8
+0x8A72 0x22D44
+0x8A73 0x9D6E
+0x8A74 0x9815
+0x8A76 0x43D9
+0x8A77 0x260A5
+0x8A78 0x64B4
+0x8A79 0x54E3
+0x8A7A 0x22D4C
+0x8A7B 0x22BCA
+0x8A7C 0x21077
+0x8A7D 0x39FB
+0x8A7E 0x2106F
+0x8AA1 0x266DA
+0x8AA2 0x26716
+0x8AA3 0x279A0
+0x8AA4 0x64EA
+0x8AA5 0x25052
+0x8AA6 0x20C43
+0x8AA7 0x8E68
+0x8AA8 0x221A1
+0x8AA9 0x28B4C
+0x8AAA 0x20731
+0x8AAC 0x480B
+0x8AAD 0x201A9
+0x8AAE 0x3FFA
+0x8AAF 0x5873
+0x8AB0 0x22D8D
+0x8AB2 0x245C8
+0x8AB3 0x204FC
+0x8AB4 0x26097
+0x8AB5 0x20F4C
+0x8AB6 0x20D96
+0x8AB7 0x5579
+0x8AB8 0x40BB
+0x8AB9 0x43BA
+0x8ABB 0x4AB4
+0x8ABC 0x22A66
+0x8ABD 0x2109D
+0x8ABE 0x81AA
+0x8ABF 0x98F5
+0x8AC0 0x20D9C
+0x8AC1 0x6379
+0x8AC2 0x39FE
+0x8AC3 0x22775
+0x8AC4 0x8DC0
+0x8AC5 0x56A1
+0x8AC6 0x647C
+0x8AC7 0x3E43
+0x8AC9 0x2A601
+0x8ACA 0x20E09
+0x8ACB 0x22ACF
+0x8ACC 0x22CC9
+0x8ACE 0x210C8
+0x8ACF 0x239C2
+0x8AD0 0x3992
+0x8AD1 0x3A06
+0x8AD2 0x2829B
+0x8AD3 0x3578
+0x8AD4 0x25E49
+0x8AD5 0x220C7
+0x8AD6 0x5652
+0x8AD7 0x20F31
+0x8AD8 0x22CB2
+0x8AD9 0x29720
+0x8ADA 0x34BC
+0x8ADB 0x6C3D
+0x8ADC 0x24E3B
+0x8ADF 0x27574
+0x8AE0 0x22E8B
+0x8AE1 0x22208
+0x8AE2 0x2A65B
+0x8AE3 0x28CCD
+0x8AE4 0x20E7A
+0x8AE5 0x20C34
+0x8AE6 0x2681C
+0x8AE7 0x7F93
+0x8AE8 0x210CF
+0x8AE9 0x22803
+0x8AEA 0x22939
+0x8AEB 0x35FB
+0x8AEC 0x251E3
+0x8AED 0x20E8C
+0x8AEE 0x20F8D
+0x8AEF 0x20EAA
+0x8AF0 0x3F93
+0x8AF1 0x20F30
+0x8AF2 0x20D47
+0x8AF3 0x2114F
+0x8AF4 0x20E4C
+0x8AF6 0x20EAB
+0x8AF7 0x20BA9
+0x8AF8 0x20D48
+0x8AF9 0x210C0
+0x8AFA 0x2113D
+0x8AFB 0x3FF9
+0x8AFC 0x22696
+0x8AFD 0x6432
+0x8AFE 0x20FAD
+0x8B40 0x233F4
+0x8B41 0x27639
+0x8B42 0x22BCE
+0x8B43 0x20D7E
+0x8B44 0x20D7F
+0x8B45 0x22C51
+0x8B46 0x22C55
+0x8B47 0x3A18
+0x8B48 0x20E98
+0x8B49 0x210C7
+0x8B4A 0x20F2E
+0x8B4B 0x2A632
+0x8B4C 0x26B50
+0x8B4D 0x28CD2
+0x8B4E 0x28D99
+0x8B4F 0x28CCA
+0x8B50 0x95AA
+0x8B51 0x54CC
+0x8B52 0x82C4
+0x8B53 0x55B9
+0x8B55 0x29EC3
+0x8B56 0x9C26
+0x8B57 0x9AB6
+0x8B58 0x2775E
+0x8B59 0x22DEE
+0x8B5A 0x7140
+0x8B5B 0x816D
+0x8B5C 0x80EC
+0x8B5D 0x5C1C
+0x8B5E 0x26572
+0x8B5F 0x8134
+0x8B60 0x3797
+0x8B61 0x535F
+0x8B62 0x280BD
+0x8B63 0x91B6
+0x8B64 0x20EFA
+0x8B65 0x20E0F
+0x8B66 0x20E77
+0x8B67 0x20EFB
+0x8B68 0x35DD
+0x8B69 0x24DEB
+0x8B6A 0x3609
+0x8B6B 0x20CD6
+0x8B6C 0x56AF
+0x8B6D 0x227B5
+0x8B6E 0x210C9
+0x8B6F 0x20E10
+0x8B70 0x20E78
+0x8B71 0x21078
+0x8B72 0x21148
+0x8B73 0x28207
+0x8B74 0x21455
+0x8B75 0x20E79
+0x8B76 0x24E50
+0x8B77 0x22DA4
+0x8B78 0x5A54
+0x8B79 0x2101D
+0x8B7A 0x2101E
+0x8B7B 0x210F5
+0x8B7C 0x210F6
+0x8B7D 0x579C
+0x8B7E 0x20E11
+0x8BA1 0x27694
+0x8BA2 0x282CD
+0x8BA3 0x20FB5
+0x8BA4 0x20E7B
+0x8BA5 0x2517E
+0x8BA6 0x3703
+0x8BA7 0x20FB6
+0x8BA8 0x21180
+0x8BA9 0x252D8
+0x8BAA 0x2A2BD
+0x8BAB 0x249DA
+0x8BAC 0x2183A
+0x8BAD 0x24177
+0x8BAE 0x2827C
+0x8BAF 0x5899
+0x8BB0 0x5268
+0x8BB1 0x361A
+0x8BB2 0x2573D
+0x8BB3 0x7BB2
+0x8BB4 0x5B68
+0x8BB5 0x4800
+0x8BB6 0x4B2C
+0x8BB7 0x9F27
+0x8BB8 0x49E7
+0x8BB9 0x9C1F
+0x8BBA 0x9B8D
+0x8BBB 0x25B74
+0x8BBC 0x2313D
+0x8BBD 0x55FB
+0x8BBE 0x35F2
+0x8BBF 0x5689
+0x8BC0 0x4E28
+0x8BC1 0x5902
+0x8BC2 0x21BC1
+0x8BC3 0x2F878
+0x8BC4 0x9751
+0x8BC5 0x20086
+0x8BC6 0x4E5B
+0x8BC7 0x4EBB
+0x8BC8 0x353E
+0x8BC9 0x5C23
+0x8BCA 0x5F51
+0x8BCB 0x5FC4
+0x8BCC 0x38FA
+0x8BCD 0x624C
+0x8BCE 0x6535
+0x8BCF 0x6B7A
+0x8BD0 0x6C35
+0x8BD1 0x6C3A
+0x8BD2 0x706C
+0x8BD3 0x722B
+0x8BD4 0x4E2C
+0x8BD5 0x72AD
+0x8BD6 0x248E9
+0x8BD7 0x7F52
+0x8BD8 0x793B
+0x8BD9 0x7CF9
+0x8BDA 0x7F53
+0x8BDB 0x2626A
+0x8BDC 0x34C1
+0x8BDE 0x2634B
+0x8BDF 0x8002
+0x8BE0 0x8080
+0x8BE1 0x26612
+0x8BE2 0x26951
+0x8BE3 0x535D
+0x8BE4 0x8864
+0x8BE5 0x89C1
+0x8BE6 0x278B2
+0x8BE7 0x8BA0
+0x8BE8 0x8D1D
+0x8BE9 0x9485
+0x8BEA 0x9578
+0x8BEB 0x957F
+0x8BEC 0x95E8
+0x8BED 0x28E0F
+0x8BEE 0x97E6
+0x8BEF 0x9875
+0x8BF0 0x98CE
+0x8BF1 0x98DE
+0x8BF2 0x9963
+0x8BF3 0x29810
+0x8BF4 0x9C7C
+0x8BF5 0x9E1F
+0x8BF6 0x9EC4
+0x8BF7 0x6B6F
+0x8BF8 0xF907
+0x8BF9 0x4E37
+0x8BFA 0x20087
+0x8BFB 0x961D
+0x8BFC 0x6237
+0x8BFD 0x94A2
+0x8C40 0x503B
+0x8C41 0x6DFE
+0x8C42 0x29C73
+0x8C43 0xF57A
+0x8C44 0x3DC9
+0x8C45 0x888F
+0x8C46 0x2414E
+0x8C47 0x7077
+0x8C48 0x5CF5
+0x8C49 0x4B20
+0x8C4A 0x251CD
+0x8C4B 0x3559
+0x8C4C 0x25D30
+0x8C4D 0x6122
+0x8C4E 0x28A32
+0x8C4F 0x8FA7
+0x8C50 0x91F6
+0x8C51 0x7191
+0x8C52 0x6719
+0x8C53 0x73BA
+0x8C54 0x23281
+0x8C55 0x2A107
+0x8C56 0x3C8B
+0x8C57 0x21980
+0x8C58 0x4B10
+0x8C59 0x78E4
+0x8C5A 0x7402
+0x8C5B 0x51AE
+0x8C5C 0x2870F
+0x8C5D 0x4009
+0x8C5E 0x6A63
+0x8C5F 0x2A2BA
+0x8C60 0x4223
+0x8C61 0x860F
+0x8C63 0x7A2A
+0x8C64 0x29947
+0x8C65 0x28AEA
+0x8C66 0x9755
+0x8C67 0x704D
+0x8C68 0x5324
+0x8C69 0x2207E
+0x8C6A 0x93F4
+0x8C6B 0x76D9
+0x8C6C 0x289E3
+0x8C6D 0xF5A4
+0x8C6E 0x77DD
+0x8C6F 0x4EA3
+0x8C70 0x4FF0
+0x8C71 0x50BC
+0x8C72 0x4E2F
+0x8C73 0x4F17
+0x8C74 0xF5AB
+0x8C75 0x5434
+0x8C76 0x7D8B
+0x8C77 0x5892
+0x8C78 0x58D0
+0x8C79 0x21DB6
+0x8C7A 0x5E92
+0x8C7B 0x5E99
+0x8C7C 0x5FC2
+0x8C7D 0x22712
+0x8C7E 0x658B
+0x8CA1 0x233F9
+0x8CA2 0x6919
+0x8CA3 0x6A43
+0x8CA4 0x23C63
+0x8CA5 0x6CFF
+0x8CA7 0x7200
+0x8CA8 0x24505
+0x8CA9 0x738C
+0x8CAA 0x3EDB
+0x8CAB 0x24A13
+0x8CAC 0x5B15
+0x8CAD 0x74B9
+0x8CAE 0x8B83
+0x8CAF 0x25CA4
+0x8CB0 0x25695
+0x8CB1 0x7A93
+0x8CB2 0x7BEC
+0x8CB3 0x7CC3
+0x8CB4 0x7E6C
+0x8CB5 0x82F8
+0x8CB6 0x8597
+0x8CB7 0xF5CC
+0x8CB8 0x8890
+0x8CB9 0xF5CE
+0x8CBA 0x8EB9
+0x8CBB 0xF5D0
+0x8CBC 0x8FCF
+0x8CBD 0x855F
+0x8CBE 0x99E0
+0x8CBF 0x9221
+0x8CC0 0xF5D5
+0x8CC1 0x28DB9
+0x8CC2 0x2143F
+0x8CC3 0x4071
+0x8CC4 0x42A2
+0x8CC5 0x5A1A
+0x8CC9 0x9868
+0x8CCA 0x676B
+0x8CCB 0x4276
+0x8CCC 0x573D
+0x8CCE 0x85D6
+0x8CCF 0x2497B
+0x8CD0 0x82BF
+0x8CD1 0x2710D
+0x8CD2 0x4C81
+0x8CD3 0x26D74
+0x8CD4 0x5D7B
+0x8CD5 0x26B15
+0x8CD6 0x26FBE
+0x8CD7 0xF5EC
+0x8CD8 0xF5ED
+0x8CD9 0x5B96
+0x8CDA 0xF5EF
+0x8CDC 0x7E5B
+0x8D60 0x5D3E
+0x8D61 0x5D48
+0x8D62 0x5D56
+0x8D63 0x3DFC
+0x8D64 0x380F
+0x8D65 0x5DA4
+0x8D66 0x5DB9
+0x8D67 0x3820
+0x8D68 0x3838
+0x8D69 0x5E42
+0x8D6A 0x5EBD
+0x8D6B 0x5F25
+0x8D6C 0x5F83
+0x8D6D 0x3908
+0x8D6E 0x3914
+0x8D6F 0x393F
+0x8D70 0x394D
+0x8D71 0x60D7
+0x8D72 0x613D
+0x8D73 0x5CE5
+0x8D74 0x3989
+0x8D75 0x61B7
+0x8D76 0x61B9
+0x8D77 0x61CF
+0x8D78 0x39B8
+0x8D79 0x622C
+0x8D7A 0x6290
+0x8D7B 0x62E5
+0x8D7C 0x6318
+0x8D7D 0x39F8
+0x8D7E 0x56B1
+0x8DA1 0x3A03
+0x8DA2 0x63E2
+0x8DA3 0x63FB
+0x8DA4 0x6407
+0x8DA5 0x645A
+0x8DA6 0x3A4B
+0x8DA7 0x64C0
+0x8DA8 0x5D15
+0x8DA9 0x5621
+0x8DAA 0x9F9F
+0x8DAB 0x3A97
+0x8DAC 0x6586
+0x8DAD 0x3ABD
+0x8DAE 0x65FF
+0x8DAF 0x6653
+0x8DB0 0x3AF2
+0x8DB1 0x6692
+0x8DB2 0x3B22
+0x8DB3 0x6716
+0x8DB4 0x3B42
+0x8DB5 0x67A4
+0x8DB6 0x6800
+0x8DB7 0x3B58
+0x8DB8 0x684A
+0x8DB9 0x6884
+0x8DBA 0x3B72
+0x8DBB 0x3B71
+0x8DBC 0x3B7B
+0x8DBD 0x6909
+0x8DBE 0x6943
+0x8DBF 0x725C
+0x8DC0 0x6964
+0x8DC1 0x699F
+0x8DC2 0x6985
+0x8DC3 0x3BBC
+0x8DC4 0x69D6
+0x8DC5 0x3BDD
+0x8DC6 0x6A65
+0x8DC7 0x6A74
+0x8DC8 0x6A71
+0x8DC9 0x6A82
+0x8DCA 0x3BEC
+0x8DCB 0x6A99
+0x8DCC 0x3BF2
+0x8DCD 0x6AAB
+0x8DCE 0x6AB5
+0x8DCF 0x6AD4
+0x8DD0 0x6AF6
+0x8DD1 0x6B81
+0x8DD2 0x6BC1
+0x8DD3 0x6BEA
+0x8DD4 0x6C75
+0x8DD5 0x6CAA
+0x8DD6 0x3CCB
+0x8DD7 0x6D02
+0x8DD8 0x6D06
+0x8DD9 0x6D26
+0x8DDA 0x6D81
+0x8DDB 0x3CEF
+0x8DDC 0x6DA4
+0x8DDD 0x6DB1
+0x8DDE 0x6E15
+0x8DDF 0x6E18
+0x8DE0 0x6E29
+0x8DE1 0x6E86
+0x8DE2 0x289C0
+0x8DE3 0x6EBB
+0x8DE4 0x6EE2
+0x8DE5 0x6EDA
+0x8DE6 0x9F7F
+0x8DE7 0x6EE8
+0x8DE8 0x6EE9
+0x8DE9 0x6F24
+0x8DEA 0x6F34
+0x8DEB 0x3D46
+0x8DEC 0x23F41
+0x8DED 0x6F81
+0x8DEE 0x6FBE
+0x8DEF 0x3D6A
+0x8DF0 0x3D75
+0x8DF1 0x71B7
+0x8DF2 0x5C99
+0x8DF3 0x3D8A
+0x8DF4 0x702C
+0x8DF5 0x3D91
+0x8DF6 0x7050
+0x8DF7 0x7054
+0x8DF8 0x706F
+0x8DF9 0x707F
+0x8DFA 0x7089
+0x8DFB 0x20325
+0x8DFC 0x43C1
+0x8DFD 0x35F1
+0x8DFE 0x20ED8
+0x8E40 0x23ED7
+0x8E41 0x57BE
+0x8E42 0x26ED3
+0x8E43 0x713E
+0x8E44 0x257E0
+0x8E45 0x364E
+0x8E46 0x69A2
+0x8E47 0x28BE9
+0x8E48 0x5B74
+0x8E49 0x7A49
+0x8E4A 0x258E1
+0x8E4B 0x294D9
+0x8E4C 0x7A65
+0x8E4D 0x7A7D
+0x8E4E 0x259AC
+0x8E4F 0x7ABB
+0x8E50 0x7AB0
+0x8E51 0x7AC2
+0x8E52 0x7AC3
+0x8E53 0x71D1
+0x8E54 0x2648D
+0x8E55 0x41CA
+0x8E56 0x7ADA
+0x8E57 0x7ADD
+0x8E58 0x7AEA
+0x8E59 0x41EF
+0x8E5A 0x54B2
+0x8E5B 0x25C01
+0x8E5C 0x7B0B
+0x8E5D 0x7B55
+0x8E5E 0x7B29
+0x8E5F 0x2530E
+0x8E60 0x25CFE
+0x8E61 0x7BA2
+0x8E62 0x7B6F
+0x8E63 0x839C
+0x8E64 0x25BB4
+0x8E65 0x26C7F
+0x8E66 0x7BD0
+0x8E67 0x8421
+0x8E68 0x7B92
+0x8E6A 0x25D20
+0x8E6B 0x3DAD
+0x8E6C 0x25C65
+0x8E6D 0x8492
+0x8E6E 0x7BFA
+0x8E70 0x7C35
+0x8E71 0x25CC1
+0x8E72 0x7C44
+0x8E73 0x7C83
+0x8E74 0x24882
+0x8E75 0x7CA6
+0x8E76 0x667D
+0x8E77 0x24578
+0x8E78 0x7CC9
+0x8E79 0x7CC7
+0x8E7A 0x7CE6
+0x8E7B 0x7C74
+0x8E7C 0x7CF3
+0x8E7D 0x7CF5
+0x8EA1 0x7E67
+0x8EA2 0x451D
+0x8EA3 0x26E44
+0x8EA4 0x7D5D
+0x8EA5 0x26ED6
+0x8EA6 0x748D
+0x8EA7 0x7D89
+0x8EA8 0x7DAB
+0x8EA9 0x7135
+0x8EAA 0x7DB3
+0x8EAC 0x24057
+0x8EAD 0x26029
+0x8EAE 0x7DE4
+0x8EAF 0x3D13
+0x8EB0 0x7DF5
+0x8EB1 0x217F9
+0x8EB2 0x7DE5
+0x8EB3 0x2836D
+0x8EB5 0x26121
+0x8EB6 0x2615A
+0x8EB7 0x7E6E
+0x8EB8 0x7E92
+0x8EB9 0x432B
+0x8EBA 0x946C
+0x8EBB 0x7E27
+0x8EBC 0x7F40
+0x8EBD 0x7F41
+0x8EBE 0x7F47
+0x8EBF 0x7936
+0x8EC0 0x262D0
+0x8EC1 0x99E1
+0x8EC2 0x7F97
+0x8EC3 0x26351
+0x8EC4 0x7FA3
+0x8EC5 0x21661
+0x8EC6 0x20068
+0x8EC7 0x455C
+0x8EC8 0x23766
+0x8EC9 0x4503
+0x8ECA 0x2833A
+0x8ECB 0x7FFA
+0x8ECC 0x26489
+0x8ECE 0x8008
+0x8ECF 0x801D
+0x8ED1 0x802F
+0x8ED2 0x2A087
+0x8ED3 0x26CC3
+0x8ED4 0x803B
+0x8ED5 0x803C
+0x8ED6 0x8061
+0x8ED7 0x22714
+0x8ED8 0x4989
+0x8ED9 0x26626
+0x8EDA 0x23DE3
+0x8EDB 0x266E8
+0x8EDC 0x6725
+0x8EDD 0x80A7
+0x8EDE 0x28A48
+0x8EDF 0x8107
+0x8EE0 0x811A
+0x8EE1 0x58B0
+0x8EE2 0x226F6
+0x8EE3 0x6C7F
+0x8EE4 0x26498
+0x8EE5 0x24FB8
+0x8EE6 0x64E7
+0x8EE7 0x2148A
+0x8EE8 0x8218
+0x8EE9 0x2185E
+0x8EEA 0x6A53
+0x8EEB 0x24A65
+0x8EEC 0x24A95
+0x8EED 0x447A
+0x8EEE 0x8229
+0x8EEF 0x20B0D
+0x8EF0 0x26A52
+0x8EF1 0x23D7E
+0x8EF2 0x4FF9
+0x8EF3 0x214FD
+0x8EF4 0x84E2
+0x8EF5 0x8362
+0x8EF6 0x26B0A
+0x8EF7 0x249A7
+0x8EF8 0x23530
+0x8EF9 0x21773
+0x8EFA 0x23DF8
+0x8EFB 0x82AA
+0x8EFC 0x691B
+0x8EFD 0x2F994
+0x8EFE 0x41DB
+0x8F40 0x854B
+0x8F41 0x82D0
+0x8F42 0x831A
+0x8F43 0x20E16
+0x8F44 0x217B4
+0x8F45 0x36C1
+0x8F46 0x2317D
+0x8F47 0x2355A
+0x8F48 0x827B
+0x8F49 0x82E2
+0x8F4A 0x8318
+0x8F4B 0x23E8B
+0x8F4C 0x26DA3
+0x8F4D 0x26B05
+0x8F4E 0x26B97
+0x8F4F 0x235CE
+0x8F50 0x3DBF
+0x8F51 0x831D
+0x8F52 0x55EC
+0x8F53 0x8385
+0x8F54 0x450B
+0x8F55 0x26DA5
+0x8F56 0x83AC
+0x8F58 0x83D3
+0x8F59 0x347E
+0x8F5A 0x26ED4
+0x8F5B 0x6A57
+0x8F5C 0x855A
+0x8F5D 0x3496
+0x8F5E 0x26E42
+0x8F5F 0x22EEF
+0x8F60 0x8458
+0x8F61 0x25BE4
+0x8F62 0x8471
+0x8F63 0x3DD3
+0x8F64 0x44E4
+0x8F65 0x6AA7
+0x8F66 0x844A
+0x8F67 0x23CB5
+0x8F68 0x7958
+0x8F6A 0x26B96
+0x8F6B 0x26E77
+0x8F6C 0x26E43
+0x8F6D 0x84DE
+0x8F6F 0x8391
+0x8F70 0x44A0
+0x8F71 0x8493
+0x8F72 0x84E4
+0x8F73 0x25C91
+0x8F74 0x4240
+0x8F75 0x25CC0
+0x8F76 0x4543
+0x8F77 0x8534
+0x8F78 0x5AF2
+0x8F79 0x26E99
+0x8F7A 0x4527
+0x8F7B 0x8573
+0x8F7C 0x4516
+0x8F7D 0x67BF
+0x8F7E 0x8616
+0x8FA1 0x28625
+0x8FA2 0x2863B
+0x8FA3 0x85C1
+0x8FA4 0x27088
+0x8FA5 0x8602
+0x8FA6 0x21582
+0x8FA7 0x270CD
+0x8FA8 0x2F9B2
+0x8FA9 0x456A
+0x8FAA 0x8628
+0x8FAB 0x3648
+0x8FAC 0x218A2
+0x8FAD 0x53F7
+0x8FAE 0x2739A
+0x8FAF 0x867E
+0x8FB0 0x8771
+0x8FB1 0x2A0F8
+0x8FB2 0x87EE
+0x8FB3 0x22C27
+0x8FB4 0x87B1
+0x8FB5 0x87DA
+0x8FB6 0x880F
+0x8FB7 0x5661
+0x8FB8 0x866C
+0x8FB9 0x6856
+0x8FBA 0x460F
+0x8FBB 0x8845
+0x8FBC 0x8846
+0x8FBD 0x275E0
+0x8FBE 0x23DB9
+0x8FBF 0x275E4
+0x8FC0 0x885E
+0x8FC1 0x889C
+0x8FC2 0x465B
+0x8FC3 0x88B4
+0x8FC4 0x88B5
+0x8FC5 0x63C1
+0x8FC6 0x88C5
+0x8FC7 0x7777
+0x8FC8 0x2770F
+0x8FC9 0x8987
+0x8FCA 0x898A
+0x8FCD 0x89A7
+0x8FCE 0x89BC
+0x8FCF 0x28A25
+0x8FD0 0x89E7
+0x8FD1 0x27924
+0x8FD2 0x27ABD
+0x8FD3 0x8A9C
+0x8FD4 0x7793
+0x8FD5 0x91FE
+0x8FD6 0x8A90
+0x8FD7 0x27A59
+0x8FD8 0x7AE9
+0x8FD9 0x27B3A
+0x8FDA 0x23F8F
+0x8FDB 0x4713
+0x8FDC 0x27B38
+0x8FDD 0x717C
+0x8FDE 0x8B0C
+0x8FDF 0x8B1F
+0x8FE0 0x25430
+0x8FE1 0x25565
+0x8FE2 0x8B3F
+0x8FE3 0x8B4C
+0x8FE4 0x8B4D
+0x8FE5 0x8AA9
+0x8FE6 0x24A7A
+0x8FE7 0x8B90
+0x8FE8 0x8B9B
+0x8FE9 0x8AAF
+0x8FEA 0x216DF
+0x8FEB 0x4615
+0x8FEC 0x884F
+0x8FED 0x8C9B
+0x8FEE 0x27D54
+0x8FEF 0x27D8F
+0x8FF0 0x2F9D4
+0x8FF1 0x3725
+0x8FF2 0x27D53
+0x8FF3 0x8CD6
+0x8FF4 0x27D98
+0x8FF5 0x27DBD
+0x8FF6 0x8D12
+0x8FF7 0x8D03
+0x8FF8 0x21910
+0x8FF9 0x8CDB
+0x8FFA 0x705C
+0x8FFB 0x8D11
+0x8FFC 0x24CC9
+0x8FFD 0x3ED0
+0x9040 0x8DA9
+0x9041 0x28002
+0x9042 0x21014
+0x9043 0x2498A
+0x9044 0x3B7C
+0x9045 0x281BC
+0x9046 0x2710C
+0x9047 0x7AE7
+0x9048 0x8EAD
+0x9049 0x8EB6
+0x904A 0x8EC3
+0x904B 0x92D4
+0x904C 0x8F19
+0x904D 0x8F2D
+0x904E 0x28365
+0x904F 0x28412
+0x9050 0x8FA5
+0x9051 0x9303
+0x9052 0x2A29F
+0x9053 0x20A50
+0x9054 0x8FB3
+0x9055 0x492A
+0x9056 0x289DE
+0x9057 0x2853D
+0x9058 0x23DBB
+0x9059 0x5EF8
+0x905A 0x23262
+0x905B 0x8FF9
+0x905C 0x2A014
+0x905D 0x286BC
+0x905E 0x28501
+0x905F 0x22325
+0x9060 0x3980
+0x9061 0x26ED7
+0x9062 0x9037
+0x9063 0x2853C
+0x9064 0x27ABE
+0x9065 0x9061
+0x9066 0x2856C
+0x9067 0x2860B
+0x9068 0x90A8
+0x9069 0x28713
+0x906A 0x90C4
+0x906B 0x286E6
+0x906C 0x90AE
+0x906E 0x9167
+0x906F 0x3AF0
+0x9070 0x91A9
+0x9071 0x91C4
+0x9072 0x7CAC
+0x9073 0x28933
+0x9074 0x21E89
+0x9075 0x920E
+0x9076 0x6C9F
+0x9077 0x9241
+0x9078 0x9262
+0x9079 0x255B9
+0x907B 0x28AC6
+0x907C 0x23C9B
+0x907D 0x28B0C
+0x907E 0x255DB
+0x90A1 0x20D31
+0x90A2 0x932C
+0x90A3 0x936B
+0x90A4 0x28AE1
+0x90A5 0x28BEB
+0x90A6 0x708F
+0x90A7 0x5AC3
+0x90A8 0x28AE2
+0x90A9 0x28AE5
+0x90AA 0x4965
+0x90AB 0x9244
+0x90AC 0x28BEC
+0x90AD 0x28C39
+0x90AE 0x28BFF
+0x90AF 0x9373
+0x90B0 0x945B
+0x90B1 0x8EBC
+0x90B2 0x9585
+0x90B3 0x95A6
+0x90B4 0x9426
+0x90B5 0x95A0
+0x90B6 0x6FF6
+0x90B7 0x42B9
+0x90B8 0x2267A
+0x90B9 0x286D8
+0x90BA 0x2127C
+0x90BB 0x23E2E
+0x90BC 0x49DF
+0x90BD 0x6C1C
+0x90BE 0x967B
+0x90BF 0x9696
+0x90C0 0x416C
+0x90C1 0x96A3
+0x90C2 0x26ED5
+0x90C3 0x61DA
+0x90C4 0x96B6
+0x90C5 0x78F5
+0x90C6 0x28AE0
+0x90C7 0x96BD
+0x90C8 0x53CC
+0x90C9 0x49A1
+0x90CA 0x26CB8
+0x90CB 0x20274
+0x90CC 0x26410
+0x90CD 0x290AF
+0x90CE 0x290E5
+0x90CF 0x24AD1
+0x90D0 0x21915
+0x90D1 0x2330A
+0x90D2 0x9731
+0x90D3 0x8642
+0x90D4 0x9736
+0x90D5 0x4A0F
+0x90D6 0x453D
+0x90D7 0x4585
+0x90D8 0x24AE9
+0x90D9 0x7075
+0x90DA 0x5B41
+0x90DB 0x971B
+0x90DD 0x291D5
+0x90DE 0x9757
+0x90DF 0x5B4A
+0x90E0 0x291EB
+0x90E1 0x975F
+0x90E2 0x9425
+0x90E3 0x50D0
+0x90E4 0x230B7
+0x90E5 0x230BC
+0x90E6 0x9789
+0x90E7 0x979F
+0x90E8 0x97B1
+0x90E9 0x97BE
+0x90EA 0x97C0
+0x90EB 0x97D2
+0x90EC 0x97E0
+0x90ED 0x2546C
+0x90EE 0x97EE
+0x90EF 0x741C
+0x90F0 0x29433
+0x90F2 0x97F5
+0x90F3 0x2941D
+0x90F4 0x2797A
+0x90F5 0x4AD1
+0x90F6 0x9834
+0x90F7 0x9833
+0x90F8 0x984B
+0x90F9 0x9866
+0x90FA 0x3B0E
+0x90FB 0x27175
+0x90FC 0x3D51
+0x90FD 0x20630
+0x90FE 0x2415C
+0x9140 0x25706
+0x9141 0x98CA
+0x9142 0x98B7
+0x9143 0x98C8
+0x9144 0x98C7
+0x9145 0x4AFF
+0x9146 0x26D27
+0x9147 0x216D3
+0x9148 0x55B0
+0x9149 0x98E1
+0x914A 0x98E6
+0x914B 0x98EC
+0x914C 0x9378
+0x914D 0x9939
+0x914E 0x24A29
+0x914F 0x4B72
+0x9150 0x29857
+0x9151 0x29905
+0x9152 0x99F5
+0x9153 0x9A0C
+0x9154 0x9A3B
+0x9155 0x9A10
+0x9156 0x9A58
+0x9157 0x25725
+0x9158 0x36C4
+0x9159 0x290B1
+0x915A 0x29BD5
+0x915B 0x9AE0
+0x915C 0x9AE2
+0x915D 0x29B05
+0x915E 0x9AF4
+0x915F 0x4C0E
+0x9160 0x9B14
+0x9161 0x9B2D
+0x9162 0x28600
+0x9163 0x5034
+0x9164 0x9B34
+0x9165 0x269A8
+0x9166 0x38C3
+0x9167 0x2307D
+0x9168 0x9B50
+0x9169 0x9B40
+0x916A 0x29D3E
+0x916B 0x5A45
+0x916C 0x21863
+0x916D 0x9B8E
+0x916E 0x2424B
+0x916F 0x9C02
+0x9170 0x9BFF
+0x9171 0x9C0C
+0x9172 0x29E68
+0x9173 0x9DD4
+0x9174 0x29FB7
+0x9175 0x2A192
+0x9176 0x2A1AB
+0x9177 0x2A0E1
+0x9178 0x2A123
+0x9179 0x2A1DF
+0x917A 0x9D7E
+0x917B 0x9D83
+0x917C 0x2A134
+0x917D 0x9E0E
+0x917E 0x6888
+0x91A1 0x9DC4
+0x91A2 0x2215B
+0x91A3 0x2A193
+0x91A4 0x2A220
+0x91A5 0x2193B
+0x91A6 0x2A233
+0x91A7 0x9D39
+0x91A8 0x2A0B9
+0x91A9 0x2A2B4
+0x91AA 0x9E90
+0x91AB 0x9E95
+0x91AC 0x9E9E
+0x91AD 0x9EA2
+0x91AE 0x4D34
+0x91AF 0x9EAA
+0x91B0 0x9EAF
+0x91B1 0x24364
+0x91B2 0x9EC1
+0x91B3 0x3B60
+0x91B4 0x39E5
+0x91B5 0x3D1D
+0x91B6 0x4F32
+0x91B7 0x37BE
+0x91B8 0x28C2B
+0x91B9 0x9F02
+0x91BA 0x9F08
+0x91BB 0x4B96
+0x91BC 0x9424
+0x91BD 0x26DA2
+0x91BE 0x9F17
+0x91C0 0x9F39
+0x91C1 0x569F
+0x91C2 0x568A
+0x91C3 0x9F45
+0x91C4 0x99B8
+0x91C5 0x2908B
+0x91C6 0x97F2
+0x91C7 0x847F
+0x91C8 0x9F62
+0x91C9 0x9F69
+0x91CA 0x7ADC
+0x91CB 0x9F8E
+0x91CC 0x7216
+0x91CD 0x4BBE
+0x91CE 0x24975
+0x91CF 0x249BB
+0x91D0 0x7177
+0x91D1 0x249F8
+0x91D2 0x24348
+0x91D3 0x24A51
+0x91D4 0x739E
+0x91D5 0x28BDA
+0x91D6 0x218FA
+0x91D7 0x799F
+0x91D8 0x2897E
+0x91D9 0x28E36
+0x91DA 0x9369
+0x91DB 0x93F3
+0x91DC 0x28A44
+0x91DD 0x92EC
+0x91DE 0x9381
+0x91DF 0x93CB
+0x91E0 0x2896C
+0x91E1 0x244B9
+0x91E2 0x7217
+0x91E3 0x3EEB
+0x91E4 0x7772
+0x91E5 0x7A43
+0x91E6 0x70D0
+0x91E7 0x24473
+0x91E8 0x243F8
+0x91E9 0x717E
+0x91EA 0x217EF
+0x91EB 0x70A3
+0x91EC 0x218BE
+0x91ED 0x23599
+0x91EE 0x3EC7
+0x91EF 0x21885
+0x91F0 0x2542F
+0x91F1 0x217F8
+0x91F2 0x3722
+0x91F3 0x216FB
+0x91F4 0x21839
+0x91F5 0x36E1
+0x91F6 0x21774
+0x91F7 0x218D1
+0x91F8 0x25F4B
+0x91F9 0x3723
+0x91FA 0x216C0
+0x91FB 0x575B
+0x91FC 0x24A25
+0x91FD 0x213FE
+0x91FE 0x212A8
+0x9240 0x213C6
+0x9241 0x214B6
+0x9242 0x8503
+0x9243 0x236A6
+0x9245 0x8455
+0x9246 0x24994
+0x9247 0x27165
+0x9248 0x23E31
+0x9249 0x2555C
+0x924A 0x23EFB
+0x924B 0x27052
+0x924C 0x44F4
+0x924D 0x236EE
+0x924E 0x2999D
+0x924F 0x26F26
+0x9250 0x67F9
+0x9251 0x3733
+0x9252 0x3C15
+0x9253 0x3DE7
+0x9254 0x586C
+0x9255 0x21922
+0x9256 0x6810
+0x9257 0x4057
+0x9258 0x2373F
+0x9259 0x240E1
+0x925A 0x2408B
+0x925B 0x2410F
+0x925C 0x26C21
+0x925D 0x54CB
+0x925E 0x569E
+0x925F 0x266B1
+0x9260 0x5692
+0x9261 0x20FDF
+0x9262 0x20BA8
+0x9263 0x20E0D
+0x9264 0x93C6
+0x9265 0x28B13
+0x9266 0x939C
+0x9267 0x4EF8
+0x9268 0x512B
+0x9269 0x3819
+0x926A 0x24436
+0x926B 0x4EBC
+0x926C 0x20465
+0x926D 0x2037F
+0x926E 0x4F4B
+0x926F 0x4F8A
+0x9270 0x25651
+0x9271 0x5A68
+0x9272 0x201AB
+0x9273 0x203CB
+0x9274 0x3999
+0x9275 0x2030A
+0x9276 0x20414
+0x9277 0x3435
+0x9278 0x4F29
+0x9279 0x202C0
+0x927A 0x28EB3
+0x927B 0x20275
+0x927C 0x8ADA
+0x927D 0x2020C
+0x927E 0x4E98
+0x92A1 0x50CD
+0x92A2 0x510D
+0x92A3 0x4FA2
+0x92A4 0x4F03
+0x92A5 0x24A0E
+0x92A6 0x23E8A
+0x92A7 0x4F42
+0x92A8 0x502E
+0x92A9 0x506C
+0x92AA 0x5081
+0x92AB 0x4FCC
+0x92AC 0x4FE5
+0x92AD 0x5058
+0x92AE 0x50FC
+0x92B3 0x6E76
+0x92B4 0x23595
+0x92B5 0x23E39
+0x92B6 0x23EBF
+0x92B7 0x6D72
+0x92B8 0x21884
+0x92B9 0x23E89
+0x92BA 0x51A8
+0x92BB 0x51C3
+0x92BC 0x205E0
+0x92BD 0x44DD
+0x92BE 0x204A3
+0x92BF 0x20492
+0x92C0 0x20491
+0x92C1 0x8D7A
+0x92C2 0x28A9C
+0x92C3 0x2070E
+0x92C4 0x5259
+0x92C5 0x52A4
+0x92C6 0x20873
+0x92C7 0x52E1
+0x92C9 0x467A
+0x92CA 0x718C
+0x92CB 0x2438C
+0x92CC 0x20C20
+0x92CD 0x249AC
+0x92CE 0x210E4
+0x92CF 0x69D1
+0x92D0 0x20E1D
+0x92D2 0x3EDE
+0x92D3 0x7499
+0x92D4 0x7414
+0x92D5 0x7456
+0x92D6 0x7398
+0x92D7 0x4B8E
+0x92D8 0x24ABC
+0x92D9 0x2408D
+0x92DA 0x53D0
+0x92DB 0x3584
+0x92DC 0x720F
+0x92DD 0x240C9
+0x92DE 0x55B4
+0x92DF 0x20345
+0x92E0 0x54CD
+0x92E1 0x20BC6
+0x92E2 0x571D
+0x92E3 0x925D
+0x92E4 0x96F4
+0x92E5 0x9366
+0x92E6 0x57DD
+0x92E7 0x578D
+0x92E8 0x577F
+0x92E9 0x363E
+0x92EA 0x58CB
+0x92EB 0x5A99
+0x92EC 0x28A46
+0x92ED 0x216FA
+0x92EE 0x2176F
+0x92EF 0x21710
+0x92F0 0x5A2C
+0x92F1 0x59B8
+0x92F2 0x928F
+0x92F3 0x5A7E
+0x92F4 0x5ACF
+0x92F5 0x5A12
+0x92F6 0x25946
+0x92F7 0x219F3
+0x92F8 0x21861
+0x92F9 0x24295
+0x92FA 0x36F5
+0x92FB 0x6D05
+0x92FC 0x7443
+0x92FD 0x5A21
+0x92FE 0x25E83
+0x9340 0x5A81
+0x9341 0x28BD7
+0x9342 0x20413
+0x9343 0x93E0
+0x9344 0x748C
+0x9345 0x21303
+0x9346 0x7105
+0x9347 0x4972
+0x9348 0x9408
+0x9349 0x289FB
+0x934A 0x93BD
+0x934B 0x37A0
+0x934C 0x5C1E
+0x934D 0x5C9E
+0x934E 0x5E5E
+0x934F 0x5E48
+0x9350 0x21996
+0x9351 0x2197C
+0x9352 0x23AEE
+0x9353 0x5ECD
+0x9354 0x5B4F
+0x9355 0x21903
+0x9356 0x21904
+0x9357 0x3701
+0x9358 0x218A0
+0x9359 0x36DD
+0x935A 0x216FE
+0x935B 0x36D3
+0x935C 0x812A
+0x935D 0x28A47
+0x935E 0x21DBA
+0x935F 0x23472
+0x9360 0x289A8
+0x9361 0x5F0C
+0x9362 0x5F0E
+0x9363 0x21927
+0x9364 0x217AB
+0x9365 0x5A6B
+0x9366 0x2173B
+0x9367 0x5B44
+0x9368 0x8614
+0x9369 0x275FD
+0x936A 0x8860
+0x936B 0x607E
+0x936C 0x22860
+0x936D 0x2262B
+0x936E 0x5FDB
+0x936F 0x3EB8
+0x9370 0x225AF
+0x9371 0x225BE
+0x9372 0x29088
+0x9373 0x26F73
+0x9374 0x61C0
+0x9375 0x2003E
+0x9376 0x20046
+0x9377 0x2261B
+0x9378 0x6199
+0x9379 0x6198
+0x937A 0x6075
+0x937B 0x22C9B
+0x937C 0x22D07
+0x937D 0x246D4
+0x937E 0x2914D
+0x93A1 0x6471
+0x93A2 0x24665
+0x93A3 0x22B6A
+0x93A4 0x3A29
+0x93A5 0x22B22
+0x93A6 0x23450
+0x93A7 0x298EA
+0x93A8 0x22E78
+0x93A9 0x6337
+0x93AA 0x2A45B
+0x93AB 0x64B6
+0x93AC 0x6331
+0x93AD 0x63D1
+0x93AE 0x249E3
+0x93AF 0x22D67
+0x93B0 0x62A4
+0x93B1 0x22CA1
+0x93B2 0x643B
+0x93B3 0x656B
+0x93B4 0x6972
+0x93B5 0x3BF4
+0x93B6 0x2308E
+0x93B7 0x232AD
+0x93B8 0x24989
+0x93B9 0x232AB
+0x93BA 0x550D
+0x93BB 0x232E0
+0x93BC 0x218D9
+0x93BD 0x2943F
+0x93BE 0x66CE
+0x93BF 0x23289
+0x93C0 0x231B3
+0x93C1 0x3AE0
+0x93C2 0x4190
+0x93C3 0x25584
+0x93C4 0x28B22
+0x93C5 0x2558F
+0x93C6 0x216FC
+0x93C7 0x2555B
+0x93C8 0x25425
+0x93C9 0x78EE
+0x93CA 0x23103
+0x93CB 0x2182A
+0x93CC 0x23234
+0x93CD 0x3464
+0x93CE 0x2320F
+0x93CF 0x23182
+0x93D0 0x242C9
+0x93D1 0x668E
+0x93D2 0x26D24
+0x93D3 0x666B
+0x93D4 0x4B93
+0x93D5 0x6630
+0x93D6 0x27870
+0x93D7 0x21DEB
+0x93D8 0x6663
+0x93D9 0x232D2
+0x93DA 0x232E1
+0x93DB 0x661E
+0x93DC 0x25872
+0x93DD 0x38D1
+0x93DE 0x2383A
+0x93DF 0x237BC
+0x93E0 0x3B99
+0x93E1 0x237A2
+0x93E2 0x233FE
+0x93E3 0x74D0
+0x93E4 0x3B96
+0x93E5 0x678F
+0x93E6 0x2462A
+0x93E7 0x68B6
+0x93E8 0x681E
+0x93E9 0x3BC4
+0x93EA 0x6ABE
+0x93EB 0x3863
+0x93EC 0x237D5
+0x93ED 0x24487
+0x93EE 0x6A33
+0x93EF 0x6A52
+0x93F0 0x6AC9
+0x93F1 0x6B05
+0x93F2 0x21912
+0x93F3 0x6511
+0x93F4 0x6898
+0x93F5 0x6A4C
+0x93F6 0x3BD7
+0x93F7 0x6A7A
+0x93F8 0x6B57
+0x93F9 0x23FC0
+0x93FA 0x23C9A
+0x93FB 0x93A0
+0x93FC 0x92F2
+0x93FD 0x28BEA
+0x93FE 0x28ACB
+0x9440 0x9289
+0x9441 0x2801E
+0x9442 0x289DC
+0x9443 0x9467
+0x9444 0x6DA5
+0x9445 0x6F0B
+0x9446 0x249EC
+0x9448 0x23F7F
+0x9449 0x3D8F
+0x944A 0x6E04
+0x944B 0x2403C
+0x944C 0x5A3D
+0x944D 0x6E0A
+0x944E 0x5847
+0x944F 0x6D24
+0x9450 0x7842
+0x9451 0x713B
+0x9452 0x2431A
+0x9453 0x24276
+0x9454 0x70F1
+0x9455 0x7250
+0x9456 0x7287
+0x9457 0x7294
+0x9458 0x2478F
+0x9459 0x24725
+0x945A 0x5179
+0x945B 0x24AA4
+0x945C 0x205EB
+0x945D 0x747A
+0x945E 0x23EF8
+0x945F 0x2365F
+0x9460 0x24A4A
+0x9461 0x24917
+0x9462 0x25FE1
+0x9463 0x3F06
+0x9464 0x3EB1
+0x9465 0x24ADF
+0x9466 0x28C23
+0x9467 0x23F35
+0x9468 0x60A7
+0x9469 0x3EF3
+0x946A 0x74CC
+0x946B 0x743C
+0x946C 0x9387
+0x946D 0x7437
+0x946E 0x449F
+0x946F 0x26DEA
+0x9470 0x4551
+0x9471 0x7583
+0x9472 0x3F63
+0x9473 0x24CD9
+0x9474 0x24D06
+0x9475 0x3F58
+0x9476 0x7555
+0x9477 0x7673
+0x9478 0x2A5C6
+0x9479 0x3B19
+0x947A 0x7468
+0x947B 0x28ACC
+0x947C 0x249AB
+0x947D 0x2498E
+0x947E 0x3AFB
+0x94A1 0x3DCD
+0x94A2 0x24A4E
+0x94A3 0x3EFF
+0x94A4 0x249C5
+0x94A5 0x248F3
+0x94A6 0x91FA
+0x94A7 0x5732
+0x94A8 0x9342
+0x94A9 0x28AE3
+0x94AA 0x21864
+0x94AB 0x50DF
+0x94AC 0x25221
+0x94AD 0x251E7
+0x94AE 0x7778
+0x94AF 0x23232
+0x94B0 0x770E
+0x94B1 0x770F
+0x94B2 0x777B
+0x94B3 0x24697
+0x94B4 0x23781
+0x94B5 0x3A5E
+0x94B6 0x248F0
+0x94B7 0x7438
+0x94B8 0x749B
+0x94B9 0x3EBF
+0x94BA 0x24ABA
+0x94BB 0x24AC7
+0x94BC 0x40C8
+0x94BD 0x24A96
+0x94BE 0x261AE
+0x94BF 0x9307
+0x94C0 0x25581
+0x94C1 0x781E
+0x94C2 0x788D
+0x94C3 0x7888
+0x94C4 0x78D2
+0x94C5 0x73D0
+0x94C6 0x7959
+0x94C7 0x27741
+0x94C8 0x256E3
+0x94C9 0x410E
+0x94CB 0x8496
+0x94CC 0x79A5
+0x94CD 0x6A2D
+0x94CE 0x23EFA
+0x94CF 0x7A3A
+0x94D0 0x79F4
+0x94D1 0x416E
+0x94D2 0x216E6
+0x94D3 0x4132
+0x94D4 0x9235
+0x94D5 0x79F1
+0x94D6 0x20D4C
+0x94D7 0x2498C
+0x94D8 0x20299
+0x94D9 0x23DBA
+0x94DA 0x2176E
+0x94DB 0x3597
+0x94DC 0x556B
+0x94DD 0x3570
+0x94DE 0x36AA
+0x94DF 0x201D4
+0x94E0 0x20C0D
+0x94E1 0x7AE2
+0x94E2 0x5A59
+0x94E3 0x226F5
+0x94E4 0x25AAF
+0x94E5 0x25A9C
+0x94E6 0x5A0D
+0x94E7 0x2025B
+0x94E8 0x78F0
+0x94E9 0x5A2A
+0x94EA 0x25BC6
+0x94EB 0x7AFE
+0x94EC 0x41F9
+0x94ED 0x7C5D
+0x94EE 0x7C6D
+0x94EF 0x4211
+0x94F0 0x25BB3
+0x94F1 0x25EBC
+0x94F2 0x25EA6
+0x94F3 0x7CCD
+0x94F4 0x249F9
+0x94F5 0x217B0
+0x94F6 0x7C8E
+0x94F7 0x7C7C
+0x94F8 0x7CAE
+0x94F9 0x6AB2
+0x94FA 0x7DDC
+0x94FB 0x7E07
+0x94FC 0x7DD3
+0x94FD 0x7F4E
+0x94FE 0x26261
+0x9540 0x2615C
+0x9541 0x27B48
+0x9542 0x7D97
+0x9543 0x25E82
+0x9544 0x426A
+0x9545 0x26B75
+0x9546 0x20916
+0x9547 0x67D6
+0x9548 0x2004E
+0x9549 0x235CF
+0x954A 0x57C4
+0x954B 0x26412
+0x954C 0x263F8
+0x954D 0x24962
+0x954E 0x7FDD
+0x954F 0x7B27
+0x9550 0x2082C
+0x9551 0x25AE9
+0x9552 0x25D43
+0x9553 0x7B0C
+0x9554 0x25E0E
+0x9555 0x99E6
+0x9556 0x8645
+0x9557 0x9A63
+0x9558 0x6A1C
+0x9559 0x2343F
+0x955A 0x39E2
+0x955B 0x249F7
+0x955C 0x265AD
+0x955D 0x9A1F
+0x955E 0x265A0
+0x955F 0x8480
+0x9560 0x27127
+0x9561 0x26CD1
+0x9562 0x44EA
+0x9563 0x8137
+0x9564 0x4402
+0x9565 0x80C6
+0x9566 0x8109
+0x9567 0x8142
+0x9568 0x267B4
+0x9569 0x98C3
+0x956A 0x26A42
+0x956B 0x8262
+0x956C 0x8265
+0x956D 0x26A51
+0x956E 0x8453
+0x956F 0x26DA7
+0x9570 0x8610
+0x9571 0x2721B
+0x9572 0x5A86
+0x9573 0x417F
+0x9574 0x21840
+0x9575 0x5B2B
+0x9576 0x218A1
+0x9577 0x5AE4
+0x9578 0x218D8
+0x9579 0x86A0
+0x957A 0x2F9BC
+0x957B 0x23D8F
+0x957C 0x882D
+0x957D 0x27422
+0x957E 0x5A02
+0x95A1 0x886E
+0x95A2 0x4F45
+0x95A3 0x8887
+0x95A4 0x88BF
+0x95A5 0x88E6
+0x95A6 0x8965
+0x95A7 0x894D
+0x95A8 0x25683
+0x95A9 0x8954
+0x95AA 0x27785
+0x95AB 0x27784
+0x95AC 0x28BF5
+0x95AD 0x28BD9
+0x95AE 0x28B9C
+0x95AF 0x289F9
+0x95B0 0x3EAD
+0x95B1 0x84A3
+0x95B2 0x46F5
+0x95B3 0x46CF
+0x95B4 0x37F2
+0x95B5 0x8A3D
+0x95B6 0x8A1C
+0x95B7 0x29448
+0x95B8 0x5F4D
+0x95B9 0x922B
+0x95BA 0x24284
+0x95BB 0x65D4
+0x95BC 0x7129
+0x95BD 0x70C4
+0x95BE 0x21845
+0x95BF 0x9D6D
+0x95C0 0x8C9F
+0x95C1 0x8CE9
+0x95C2 0x27DDC
+0x95C3 0x599A
+0x95C4 0x77C3
+0x95C5 0x59F0
+0x95C6 0x436E
+0x95C7 0x36D4
+0x95C8 0x8E2A
+0x95C9 0x8EA7
+0x95CA 0x24C09
+0x95CB 0x8F30
+0x95CC 0x8F4A
+0x95CD 0x42F4
+0x95CE 0x6C58
+0x95CF 0x6FBB
+0x95D0 0x22321
+0x95D1 0x489B
+0x95D2 0x6F79
+0x95D3 0x6E8B
+0x95D4 0x217DA
+0x95D5 0x9BE9
+0x95D6 0x36B5
+0x95D7 0x2492F
+0x95D8 0x90BB
+0x95DA 0x5571
+0x95DB 0x4906
+0x95DC 0x91BB
+0x95DD 0x9404
+0x95DE 0x28A4B
+0x95DF 0x4062
+0x95E0 0x28AFC
+0x95E1 0x9427
+0x95E2 0x28C1D
+0x95E3 0x28C3B
+0x95E4 0x84E5
+0x95E5 0x8A2B
+0x95E6 0x9599
+0x95E7 0x95A7
+0x95E8 0x9597
+0x95E9 0x9596
+0x95EA 0x28D34
+0x95EB 0x7445
+0x95EC 0x3EC2
+0x95ED 0x248FF
+0x95EE 0x24A42
+0x95EF 0x243EA
+0x95F0 0x3EE7
+0x95F1 0x23225
+0x95F2 0x968F
+0x95F3 0x28EE7
+0x95F4 0x28E66
+0x95F5 0x28E65
+0x95F6 0x3ECC
+0x95F7 0x249ED
+0x95F8 0x24A78
+0x95F9 0x23FEE
+0x95FA 0x7412
+0x95FB 0x746B
+0x95FC 0x3EFC
+0x95FD 0x9741
+0x95FE 0x290B0
+0x9640 0x6847
+0x9641 0x4A1D
+0x9642 0x29093
+0x9643 0x257DF
+0x9645 0x9368
+0x9646 0x28989
+0x9647 0x28C26
+0x9648 0x28B2F
+0x9649 0x263BE
+0x964A 0x92BA
+0x964B 0x5B11
+0x964C 0x8B69
+0x964D 0x493C
+0x964E 0x73F9
+0x964F 0x2421B
+0x9650 0x979B
+0x9651 0x9771
+0x9652 0x9938
+0x9653 0x20F26
+0x9654 0x5DC1
+0x9655 0x28BC5
+0x9656 0x24AB2
+0x9657 0x981F
+0x9658 0x294DA
+0x9659 0x92F6
+0x965A 0x295D7
+0x965B 0x91E5
+0x965C 0x44C0
+0x965D 0x28B50
+0x965E 0x24A67
+0x965F 0x28B64
+0x9660 0x98DC
+0x9661 0x28A45
+0x9662 0x3F00
+0x9663 0x922A
+0x9664 0x4925
+0x9665 0x8414
+0x9666 0x993B
+0x9667 0x994D
+0x9668 0x27B06
+0x9669 0x3DFD
+0x966A 0x999B
+0x966B 0x4B6F
+0x966C 0x99AA
+0x966D 0x9A5C
+0x966E 0x28B65
+0x966F 0x258C8
+0x9670 0x6A8F
+0x9671 0x9A21
+0x9672 0x5AFE
+0x9673 0x9A2F
+0x9674 0x298F1
+0x9675 0x4B90
+0x9676 0x29948
+0x9677 0x99BC
+0x9678 0x4BBD
+0x9679 0x4B97
+0x967A 0x937D
+0x967B 0x5872
+0x967C 0x21302
+0x967D 0x5822
+0x967E 0x249B8
+0x96A1 0x214E8
+0x96A2 0x7844
+0x96A3 0x2271F
+0x96A4 0x23DB8
+0x96A5 0x68C5
+0x96A6 0x3D7D
+0x96A7 0x9458
+0x96A8 0x3927
+0x96A9 0x6150
+0x96AA 0x22781
+0x96AB 0x2296B
+0x96AC 0x6107
+0x96AD 0x9C4F
+0x96AE 0x9C53
+0x96AF 0x9C7B
+0x96B0 0x9C35
+0x96B1 0x9C10
+0x96B2 0x9B7F
+0x96B3 0x9BCF
+0x96B4 0x29E2D
+0x96B5 0x9B9F
+0x96B6 0x2A1F5
+0x96B7 0x2A0FE
+0x96B8 0x9D21
+0x96B9 0x4CAE
+0x96BA 0x24104
+0x96BB 0x9E18
+0x96BC 0x4CB0
+0x96BD 0x9D0C
+0x96BE 0x2A1B4
+0x96BF 0x2A0ED
+0x96C0 0x2A0F3
+0x96C1 0x2992F
+0x96C2 0x9DA5
+0x96C3 0x84BD
+0x96C4 0x26E12
+0x96C5 0x26FDF
+0x96C6 0x26B82
+0x96C7 0x85FC
+0x96C8 0x4533
+0x96C9 0x26DA4
+0x96CA 0x26E84
+0x96CB 0x26DF0
+0x96CC 0x8420
+0x96CD 0x85EE
+0x96CE 0x26E00
+0x96CF 0x237D7
+0x96D0 0x26064
+0x96D1 0x79E2
+0x96D2 0x2359C
+0x96D3 0x23640
+0x96D4 0x492D
+0x96D5 0x249DE
+0x96D6 0x3D62
+0x96D7 0x93DB
+0x96D8 0x92BE
+0x96D9 0x9348
+0x96DA 0x202BF
+0x96DB 0x78B9
+0x96DC 0x9277
+0x96DD 0x944D
+0x96DE 0x4FE4
+0x96DF 0x3440
+0x96E0 0x9064
+0x96E1 0x2555D
+0x96E2 0x783D
+0x96E3 0x7854
+0x96E4 0x78B6
+0x96E5 0x784B
+0x96E6 0x21757
+0x96E7 0x231C9
+0x96E8 0x24941
+0x96E9 0x369A
+0x96EA 0x4F72
+0x96EB 0x6FDA
+0x96EC 0x6FD9
+0x96EE 0x701E
+0x96EF 0x5414
+0x96F0 0x241B5
+0x96F1 0x57BB
+0x96F2 0x58F3
+0x96F3 0x578A
+0x96F4 0x9D16
+0x96F5 0x57D7
+0x96F6 0x7134
+0x96F7 0x34AF
+0x96F8 0x241AC
+0x96F9 0x71EB
+0x96FA 0x26C40
+0x96FB 0x24F97
+0x96FD 0x217B5
+0x96FE 0x28A49
+0x9740 0x610C
+0x9741 0x5ACE
+0x9742 0x5A0B
+0x9743 0x42BC
+0x9744 0x24488
+0x9745 0x372C
+0x9746 0x4B7B
+0x9747 0x289FC
+0x9748 0x93BB
+0x9749 0x93B8
+0x974A 0x218D6
+0x974B 0x20F1D
+0x974C 0x8472
+0x974D 0x26CC0
+0x974E 0x21413
+0x974F 0x242FA
+0x9750 0x22C26
+0x9751 0x243C1
+0x9752 0x5994
+0x9753 0x23DB7
+0x9754 0x26741
+0x9755 0x7DA8
+0x9756 0x2615B
+0x9757 0x260A4
+0x9758 0x249B9
+0x9759 0x2498B
+0x975A 0x289FA
+0x975B 0x92E5
+0x975C 0x73E2
+0x975D 0x3EE9
+0x975E 0x74B4
+0x975F 0x28B63
+0x9760 0x2189F
+0x9761 0x3EE1
+0x9762 0x24AB3
+0x9763 0x6AD8
+0x9764 0x73F3
+0x9765 0x73FB
+0x9766 0x3ED6
+0x9767 0x24A3E
+0x9768 0x24A94
+0x9769 0x217D9
+0x976A 0x24A66
+0x976B 0x203A7
+0x976C 0x21424
+0x976D 0x249E5
+0x976E 0x7448
+0x976F 0x24916
+0x9770 0x70A5
+0x9771 0x24976
+0x9772 0x9284
+0x9773 0x73E6
+0x9774 0x935F
+0x9775 0x204FE
+0x9776 0x9331
+0x9777 0x28ACE
+0x9778 0x28A16
+0x9779 0x9386
+0x977A 0x28BE7
+0x977B 0x255D5
+0x977C 0x4935
+0x977D 0x28A82
+0x977E 0x716B
+0x97A1 0x24943
+0x97A2 0x20CFF
+0x97A3 0x56A4
+0x97A4 0x2061A
+0x97A5 0x20BEB
+0x97A6 0x20CB8
+0x97A7 0x5502
+0x97A8 0x79C4
+0x97A9 0x217FA
+0x97AA 0x7DFE
+0x97AB 0x216C2
+0x97AC 0x24A50
+0x97AD 0x21852
+0x97AE 0x452E
+0x97AF 0x9401
+0x97B0 0x370A
+0x97B1 0x28AC0
+0x97B2 0x249AD
+0x97B3 0x59B0
+0x97B4 0x218BF
+0x97B5 0x21883
+0x97B6 0x27484
+0x97B7 0x5AA1
+0x97B8 0x36E2
+0x97B9 0x23D5B
+0x97BA 0x36B0
+0x97BB 0x925F
+0x97BC 0x5A79
+0x97BD 0x28A81
+0x97BE 0x21862
+0x97BF 0x9374
+0x97C0 0x3CCD
+0x97C1 0x20AB4
+0x97C2 0x4A96
+0x97C3 0x398A
+0x97C4 0x50F4
+0x97C5 0x3D69
+0x97C6 0x3D4C
+0x97C7 0x2139C
+0x97C8 0x7175
+0x97C9 0x42FB
+0x97CA 0x28218
+0x97CB 0x6E0F
+0x97CC 0x290E4
+0x97CD 0x44EB
+0x97CE 0x6D57
+0x97CF 0x27E4F
+0x97D0 0x7067
+0x97D1 0x6CAF
+0x97D2 0x3CD6
+0x97D3 0x23FED
+0x97D4 0x23E2D
+0x97D5 0x6E02
+0x97D6 0x6F0C
+0x97D7 0x3D6F
+0x97D8 0x203F5
+0x97D9 0x7551
+0x97DA 0x36BC
+0x97DB 0x34C8
+0x97DC 0x4680
+0x97DD 0x3EDA
+0x97DE 0x4871
+0x97DF 0x59C4
+0x97E0 0x926E
+0x97E1 0x493E
+0x97E2 0x8F41
+0x97E3 0x28C1C
+0x97E4 0x26BC0
+0x97E5 0x5812
+0x97E6 0x57C8
+0x97E7 0x36D6
+0x97E8 0x21452
+0x97E9 0x70FE
+0x97EA 0x24362
+0x97EB 0x24A71
+0x97EC 0x22FE3
+0x97ED 0x212B0
+0x97EE 0x223BD
+0x97EF 0x68B9
+0x97F0 0x6967
+0x97F1 0x21398
+0x97F2 0x234E5
+0x97F3 0x27BF4
+0x97F4 0x236DF
+0x97F5 0x28A83
+0x97F6 0x237D6
+0x97F7 0x233FA
+0x97F8 0x24C9F
+0x97F9 0x6A1A
+0x97FA 0x236AD
+0x97FB 0x26CB7
+0x97FC 0x843E
+0x97FD 0x44DF
+0x97FE 0x44CE
+0x9840 0x26D26
+0x9841 0x26D51
+0x9842 0x26C82
+0x9843 0x26FDE
+0x9844 0x6F17
+0x9845 0x27109
+0x9846 0x833D
+0x9847 0x2173A
+0x9848 0x83ED
+0x9849 0x26C80
+0x984A 0x27053
+0x984B 0x217DB
+0x984C 0x5989
+0x984D 0x5A82
+0x984E 0x217B3
+0x984F 0x5A61
+0x9850 0x5A71
+0x9851 0x21905
+0x9852 0x241FC
+0x9853 0x372D
+0x9854 0x59EF
+0x9855 0x2173C
+0x9856 0x36C7
+0x9857 0x718E
+0x9858 0x9390
+0x9859 0x669A
+0x985A 0x242A5
+0x985B 0x5A6E
+0x985C 0x5A2B
+0x985D 0x24293
+0x985E 0x6A2B
+0x985F 0x23EF9
+0x9860 0x27736
+0x9861 0x2445B
+0x9862 0x242CA
+0x9863 0x711D
+0x9864 0x24259
+0x9865 0x289E1
+0x9866 0x4FB0
+0x9867 0x26D28
+0x9868 0x5CC2
+0x9869 0x244CE
+0x986A 0x27E4D
+0x986B 0x243BD
+0x986C 0x6A0C
+0x986D 0x24256
+0x986E 0x21304
+0x986F 0x70A6
+0x9870 0x7133
+0x9871 0x243E9
+0x9872 0x3DA5
+0x9873 0x6CDF
+0x9874 0x2F825
+0x9875 0x24A4F
+0x9876 0x7E65
+0x9877 0x59EB
+0x9878 0x5D2F
+0x9879 0x3DF3
+0x987A 0x5F5C
+0x987B 0x24A5D
+0x987C 0x217DF
+0x987D 0x7DA4
+0x987E 0x8426
+0x98A1 0x5485
+0x98A2 0x23AFA
+0x98A3 0x23300
+0x98A4 0x20214
+0x98A5 0x577E
+0x98A6 0x208D5
+0x98A7 0x20619
+0x98A8 0x3FE5
+0x98A9 0x21F9E
+0x98AA 0x2A2B6
+0x98AB 0x7003
+0x98AC 0x2915B
+0x98AD 0x5D70
+0x98AE 0x738F
+0x98AF 0x7CD3
+0x98B0 0x28A59
+0x98B1 0x29420
+0x98B2 0x4FC8
+0x98B3 0x7FE7
+0x98B4 0x72CD
+0x98B5 0x7310
+0x98B6 0x27AF4
+0x98B7 0x7338
+0x98B8 0x7339
+0x98B9 0x256F6
+0x98BA 0x7341
+0x98BB 0x7348
+0x98BC 0x3EA9
+0x98BD 0x27B18
+0x98BE 0x906C
+0x98BF 0x71F5
+0x98C0 0x248F2
+0x98C1 0x73E1
+0x98C2 0x81F6
+0x98C3 0x3ECA
+0x98C4 0x770C
+0x98C5 0x3ED1
+0x98C6 0x6CA2
+0x98C7 0x56FD
+0x98C8 0x7419
+0x98C9 0x741E
+0x98CA 0x741F
+0x98CB 0x3EE2
+0x98CC 0x3EF0
+0x98CD 0x3EF4
+0x98CE 0x3EFA
+0x98CF 0x74D3
+0x98D0 0x3F0E
+0x98D1 0x3F53
+0x98D2 0x7542
+0x98D3 0x756D
+0x98D4 0x7572
+0x98D5 0x758D
+0x98D6 0x3F7C
+0x98D7 0x75C8
+0x98D8 0x75DC
+0x98D9 0x3FC0
+0x98DA 0x764D
+0x98DB 0x3FD7
+0x98DC 0x7674
+0x98DD 0x3FDC
+0x98DE 0x767A
+0x98DF 0x24F5C
+0x98E0 0x7188
+0x98E1 0x5623
+0x98E2 0x8980
+0x98E3 0x5869
+0x98E4 0x401D
+0x98E5 0x7743
+0x98E6 0x4039
+0x98E7 0x6761
+0x98E8 0x4045
+0x98E9 0x35DB
+0x98EA 0x7798
+0x98EB 0x406A
+0x98EC 0x406F
+0x98ED 0x5C5E
+0x98EE 0x77BE
+0x98EF 0x77CB
+0x98F0 0x58F2
+0x98F1 0x7818
+0x98F2 0x70B9
+0x98F3 0x781C
+0x98F4 0x40A8
+0x98F5 0x7839
+0x98F6 0x7847
+0x98F7 0x7851
+0x98F8 0x7866
+0x98F9 0x8448
+0x98FA 0x25535
+0x98FB 0x7933
+0x98FC 0x6803
+0x98FD 0x7932
+0x98FE 0x4103
+0x9940 0x4109
+0x9941 0x7991
+0x9942 0x7999
+0x9943 0x8FBB
+0x9944 0x7A06
+0x9945 0x8FBC
+0x9946 0x4167
+0x9947 0x7A91
+0x9948 0x41B2
+0x9949 0x7ABC
+0x994A 0x8279
+0x994B 0x41C4
+0x994C 0x7ACF
+0x994D 0x7ADB
+0x994E 0x41CF
+0x994F 0x4E21
+0x9950 0x7B62
+0x9951 0x7B6C
+0x9952 0x7B7B
+0x9953 0x7C12
+0x9954 0x7C1B
+0x9955 0x4260
+0x9956 0x427A
+0x9957 0x7C7B
+0x9958 0x7C9C
+0x9959 0x428C
+0x995A 0x7CB8
+0x995B 0x4294
+0x995C 0x7CED
+0x995D 0x8F93
+0x995E 0x70C0
+0x995F 0x20CCF
+0x9960 0x7DCF
+0x9961 0x7DD4
+0x9962 0x7DD0
+0x9963 0x7DFD
+0x9964 0x7FAE
+0x9965 0x7FB4
+0x9966 0x729F
+0x9967 0x4397
+0x9968 0x8020
+0x9969 0x8025
+0x996A 0x7B39
+0x996B 0x802E
+0x996C 0x8031
+0x996D 0x8054
+0x996E 0x3DCC
+0x996F 0x57B4
+0x9970 0x70A0
+0x9971 0x80B7
+0x9972 0x80E9
+0x9973 0x43ED
+0x9974 0x810C
+0x9975 0x732A
+0x9976 0x810E
+0x9977 0x8112
+0x9978 0x7560
+0x9979 0x8114
+0x997A 0x4401
+0x997B 0x3B39
+0x997C 0x8156
+0x997D 0x8159
+0x997E 0x815A
+0x99A1 0x4413
+0x99A2 0x583A
+0x99A3 0x817C
+0x99A4 0x8184
+0x99A5 0x4425
+0x99A6 0x8193
+0x99A7 0x442D
+0x99A8 0x81A5
+0x99A9 0x57EF
+0x99AA 0x81C1
+0x99AB 0x81E4
+0x99AC 0x8254
+0x99AD 0x448F
+0x99AE 0x82A6
+0x99AF 0x8276
+0x99B0 0x82CA
+0x99B1 0x82D8
+0x99B2 0x82FF
+0x99B3 0x44B0
+0x99B4 0x8357
+0x99B5 0x9669
+0x99B6 0x698A
+0x99B7 0x8405
+0x99B8 0x70F5
+0x99B9 0x8464
+0x99BA 0x60E3
+0x99BB 0x8488
+0x99BC 0x4504
+0x99BD 0x84BE
+0x99BE 0x84E1
+0x99BF 0x84F8
+0x99C0 0x8510
+0x99C1 0x8538
+0x99C2 0x8552
+0x99C3 0x453B
+0x99C4 0x856F
+0x99C5 0x8570
+0x99C6 0x85E0
+0x99C7 0x4577
+0x99C8 0x8672
+0x99C9 0x8692
+0x99CA 0x86B2
+0x99CB 0x86EF
+0x99CC 0x9645
+0x99CD 0x878B
+0x99CE 0x4606
+0x99CF 0x4617
+0x99D0 0x88AE
+0x99D1 0x88FF
+0x99D2 0x8924
+0x99D3 0x8947
+0x99D4 0x8991
+0x99D5 0x27967
+0x99D6 0x8A29
+0x99D7 0x8A38
+0x99D8 0x8A94
+0x99D9 0x8AB4
+0x99DA 0x8C51
+0x99DB 0x8CD4
+0x99DC 0x8CF2
+0x99DD 0x8D1C
+0x99DE 0x4798
+0x99DF 0x585F
+0x99E0 0x8DC3
+0x99E1 0x47ED
+0x99E2 0x4EEE
+0x99E3 0x8E3A
+0x99E4 0x55D8
+0x99E5 0x5754
+0x99E6 0x8E71
+0x99E7 0x55F5
+0x99E8 0x8EB0
+0x99E9 0x4837
+0x99EA 0x8ECE
+0x99EB 0x8EE2
+0x99EC 0x8EE4
+0x99ED 0x8EED
+0x99EE 0x8EF2
+0x99EF 0x8FB7
+0x99F0 0x8FC1
+0x99F1 0x8FCA
+0x99F2 0x8FCC
+0x99F3 0x9033
+0x99F4 0x99C4
+0x99F5 0x48AD
+0x99F6 0x98E0
+0x99F7 0x9213
+0x99F8 0x491E
+0x99F9 0x9228
+0x99FA 0x9258
+0x99FB 0x926B
+0x99FC 0x92B1
+0x99FD 0x92AE
+0x99FE 0x92BF
+0x9A40 0x92E3
+0x9A41 0x92EB
+0x9A42 0x92F3
+0x9A43 0x92F4
+0x9A44 0x92FD
+0x9A45 0x9343
+0x9A46 0x9384
+0x9A47 0x93AD
+0x9A48 0x4945
+0x9A49 0x4951
+0x9A4A 0x9EBF
+0x9A4B 0x9417
+0x9A4C 0x5301
+0x9A4D 0x941D
+0x9A4E 0x942D
+0x9A4F 0x943E
+0x9A50 0x496A
+0x9A51 0x9454
+0x9A52 0x9479
+0x9A53 0x952D
+0x9A54 0x95A2
+0x9A55 0x49A7
+0x9A56 0x95F4
+0x9A57 0x9633
+0x9A58 0x49E5
+0x9A59 0x67A0
+0x9A5A 0x4A24
+0x9A5B 0x9740
+0x9A5C 0x4A35
+0x9A5D 0x97B2
+0x9A5E 0x97C2
+0x9A5F 0x5654
+0x9A60 0x4AE4
+0x9A61 0x60E8
+0x9A62 0x98B9
+0x9A63 0x4B19
+0x9A64 0x98F1
+0x9A65 0x5844
+0x9A66 0x990E
+0x9A67 0x9919
+0x9A68 0x51B4
+0x9A69 0x991C
+0x9A6A 0x9937
+0x9A6B 0x9942
+0x9A6C 0x995D
+0x9A6D 0x9962
+0x9A6E 0x4B70
+0x9A6F 0x99C5
+0x9A70 0x4B9D
+0x9A71 0x9A3C
+0x9A72 0x9B0F
+0x9A73 0x7A83
+0x9A74 0x9B69
+0x9A75 0x9B81
+0x9A76 0x9BDD
+0x9A77 0x9BF1
+0x9A78 0x9BF4
+0x9A79 0x4C6D
+0x9A7A 0x9C20
+0x9A7B 0x376F
+0x9A7C 0x21BC2
+0x9A7D 0x9D49
+0x9A7E 0x9C3A
+0x9AA1 0x9EFE
+0x9AA2 0x5650
+0x9AA3 0x9D93
+0x9AA4 0x9DBD
+0x9AA5 0x9DC0
+0x9AA6 0x9DFC
+0x9AA7 0x94F6
+0x9AA8 0x8FB6
+0x9AA9 0x9E7B
+0x9AAA 0x9EAC
+0x9AAB 0x9EB1
+0x9AAC 0x9EBD
+0x9AAD 0x9EC6
+0x9AAE 0x94DC
+0x9AAF 0x9EE2
+0x9AB0 0x9EF1
+0x9AB1 0x9EF8
+0x9AB2 0x7AC8
+0x9AB3 0x9F44
+0x9AB4 0x20094
+0x9AB5 0x202B7
+0x9AB6 0x203A0
+0x9AB7 0x691A
+0x9AB8 0x94C3
+0x9AB9 0x59AC
+0x9ABA 0x204D7
+0x9ABB 0x5840
+0x9ABC 0x94C1
+0x9ABD 0x37B9
+0x9ABE 0x205D5
+0x9ABF 0x20615
+0x9AC0 0x20676
+0x9AC1 0x216BA
+0x9AC2 0x5757
+0x9AC3 0x7173
+0x9AC4 0x20AC2
+0x9AC5 0x20ACD
+0x9AC6 0x20BBF
+0x9AC7 0x546A
+0x9AC8 0x2F83B
+0x9AC9 0x20BCB
+0x9ACA 0x549E
+0x9ACB 0x20BFB
+0x9ACC 0x20C3B
+0x9ACD 0x20C53
+0x9ACE 0x20C65
+0x9ACF 0x20C7C
+0x9AD0 0x60E7
+0x9AD1 0x20C8D
+0x9AD2 0x567A
+0x9AD3 0x20CB5
+0x9AD4 0x20CDD
+0x9AD5 0x20CED
+0x9AD6 0x20D6F
+0x9AD7 0x20DB2
+0x9AD8 0x20DC8
+0x9AD9 0x6955
+0x9ADA 0x9C2F
+0x9ADB 0x87A5
+0x9ADC 0x20E04
+0x9ADD 0x20E0E
+0x9ADE 0x20ED7
+0x9ADF 0x20F90
+0x9AE0 0x20F2D
+0x9AE1 0x20E73
+0x9AE2 0x5C20
+0x9AE3 0x20FBC
+0x9AE4 0x5E0B
+0x9AE5 0x2105C
+0x9AE6 0x2104F
+0x9AE7 0x21076
+0x9AE8 0x671E
+0x9AE9 0x2107B
+0x9AEA 0x21088
+0x9AEB 0x21096
+0x9AEC 0x3647
+0x9AED 0x210BF
+0x9AEE 0x210D3
+0x9AEF 0x2112F
+0x9AF0 0x2113B
+0x9AF1 0x5364
+0x9AF2 0x84AD
+0x9AF3 0x212E3
+0x9AF4 0x21375
+0x9AF5 0x21336
+0x9AF6 0x8B81
+0x9AF7 0x21577
+0x9AF8 0x21619
+0x9AF9 0x217C3
+0x9AFA 0x217C7
+0x9AFB 0x4E78
+0x9AFC 0x70BB
+0x9AFD 0x2182D
+0x9AFE 0x2196A
+0x9B40 0x21A2D
+0x9B41 0x21A45
+0x9B42 0x21C2A
+0x9B43 0x21C70
+0x9B44 0x21CAC
+0x9B45 0x21EC8
+0x9B46 0x62C3
+0x9B47 0x21ED5
+0x9B48 0x21F15
+0x9B49 0x7198
+0x9B4A 0x6855
+0x9B4B 0x22045
+0x9B4C 0x69E9
+0x9B4D 0x36C8
+0x9B4E 0x2227C
+0x9B4F 0x223D7
+0x9B50 0x223FA
+0x9B51 0x2272A
+0x9B52 0x22871
+0x9B53 0x2294F
+0x9B54 0x82FD
+0x9B55 0x22967
+0x9B56 0x22993
+0x9B57 0x22AD5
+0x9B58 0x89A5
+0x9B59 0x22AE8
+0x9B5A 0x8FA0
+0x9B5B 0x22B0E
+0x9B5C 0x97B8
+0x9B5D 0x22B3F
+0x9B5E 0x9847
+0x9B5F 0x9ABD
+0x9B60 0x22C4C
+0x9B62 0x22C88
+0x9B63 0x22CB7
+0x9B64 0x25BE8
+0x9B65 0x22D08
+0x9B66 0x22D12
+0x9B67 0x22DB7
+0x9B68 0x22D95
+0x9B69 0x22E42
+0x9B6A 0x22F74
+0x9B6B 0x22FCC
+0x9B6C 0x23033
+0x9B6D 0x23066
+0x9B6E 0x2331F
+0x9B6F 0x233DE
+0x9B70 0x5FB1
+0x9B71 0x6648
+0x9B72 0x66BF
+0x9B73 0x27A79
+0x9B74 0x23567
+0x9B75 0x235F3
+0x9B77 0x249BA
+0x9B79 0x2361A
+0x9B7A 0x23716
+0x9B7C 0x20346
+0x9B7D 0x58B5
+0x9B7E 0x670E
+0x9BA1 0x6918
+0x9BA2 0x23AA7
+0x9BA3 0x27657
+0x9BA4 0x25FE2
+0x9BA5 0x23E11
+0x9BA6 0x23EB9
+0x9BA7 0x275FE
+0x9BA8 0x2209A
+0x9BA9 0x48D0
+0x9BAA 0x4AB8
+0x9BAB 0x24119
+0x9BAC 0x28A9A
+0x9BAD 0x242EE
+0x9BAE 0x2430D
+0x9BAF 0x2403B
+0x9BB0 0x24334
+0x9BB1 0x24396
+0x9BB2 0x24A45
+0x9BB3 0x205CA
+0x9BB4 0x51D2
+0x9BB5 0x20611
+0x9BB6 0x599F
+0x9BB7 0x21EA8
+0x9BB8 0x3BBE
+0x9BB9 0x23CFF
+0x9BBA 0x24404
+0x9BBB 0x244D6
+0x9BBC 0x5788
+0x9BBD 0x24674
+0x9BBE 0x399B
+0x9BBF 0x2472F
+0x9BC0 0x285E8
+0x9BC1 0x299C9
+0x9BC2 0x3762
+0x9BC3 0x221C3
+0x9BC4 0x8B5E
+0x9BC5 0x28B4E
+0x9BC7 0x24812
+0x9BC8 0x248FB
+0x9BC9 0x24A15
+0x9BCA 0x7209
+0x9BCB 0x24AC0
+0x9BCC 0x20C78
+0x9BCD 0x5965
+0x9BCE 0x24EA5
+0x9BCF 0x24F86
+0x9BD0 0x20779
+0x9BD1 0x8EDA
+0x9BD2 0x2502C
+0x9BD3 0x528F
+0x9BD4 0x573F
+0x9BD5 0x7171
+0x9BD6 0x25299
+0x9BD7 0x25419
+0x9BD8 0x23F4A
+0x9BD9 0x24AA7
+0x9BDA 0x55BC
+0x9BDB 0x25446
+0x9BDC 0x2546E
+0x9BDD 0x26B52
+0x9BDF 0x3473
+0x9BE0 0x2553F
+0x9BE1 0x27632
+0x9BE2 0x2555E
+0x9BE3 0x4718
+0x9BE4 0x25562
+0x9BE5 0x25566
+0x9BE6 0x257C7
+0x9BE7 0x2493F
+0x9BE8 0x2585D
+0x9BE9 0x5066
+0x9BEA 0x34FB
+0x9BEB 0x233CC
+0x9BED 0x25903
+0x9BEE 0x477C
+0x9BEF 0x28948
+0x9BF0 0x25AAE
+0x9BF1 0x25B89
+0x9BF2 0x25C06
+0x9BF3 0x21D90
+0x9BF4 0x57A1
+0x9BF5 0x7151
+0x9BF7 0x26102
+0x9BF8 0x27C12
+0x9BF9 0x9056
+0x9BFA 0x261B2
+0x9BFB 0x24F9A
+0x9BFC 0x8B62
+0x9BFD 0x26402
+0x9BFE 0x2644A
+0x9C40 0x5D5B
+0x9C41 0x26BF7
+0x9C43 0x26484
+0x9C44 0x2191C
+0x9C45 0x8AEA
+0x9C46 0x249F6
+0x9C47 0x26488
+0x9C48 0x23FEF
+0x9C49 0x26512
+0x9C4A 0x4BC0
+0x9C4B 0x265BF
+0x9C4C 0x266B5
+0x9C4D 0x2271B
+0x9C4E 0x9465
+0x9C4F 0x257E1
+0x9C50 0x6195
+0x9C51 0x5A27
+0x9C52 0x2F8CD
+0x9C54 0x56B9
+0x9C55 0x24521
+0x9C56 0x266FC
+0x9C57 0x4E6A
+0x9C58 0x24934
+0x9C59 0x9656
+0x9C5A 0x6D8F
+0x9C5B 0x26CBD
+0x9C5C 0x3618
+0x9C5D 0x8977
+0x9C5E 0x26799
+0x9C5F 0x2686E
+0x9C60 0x26411
+0x9C61 0x2685E
+0x9C63 0x268C7
+0x9C64 0x7B42
+0x9C65 0x290C0
+0x9C66 0x20A11
+0x9C67 0x26926
+0x9C69 0x26939
+0x9C6A 0x7A45
+0x9C6C 0x269FA
+0x9C6D 0x9A26
+0x9C6E 0x26A2D
+0x9C6F 0x365F
+0x9C70 0x26469
+0x9C71 0x20021
+0x9C72 0x7983
+0x9C73 0x26A34
+0x9C74 0x26B5B
+0x9C75 0x5D2C
+0x9C76 0x23519
+0x9C78 0x26B9D
+0x9C79 0x46D0
+0x9C7A 0x26CA4
+0x9C7B 0x753B
+0x9C7C 0x8865
+0x9C7D 0x26DAE
+0x9C7E 0x58B6
+0x9CA1 0x371C
+0x9CA2 0x2258D
+0x9CA3 0x2704B
+0x9CA4 0x271CD
+0x9CA5 0x3C54
+0x9CA6 0x27280
+0x9CA7 0x27285
+0x9CA8 0x9281
+0x9CA9 0x2217A
+0x9CAA 0x2728B
+0x9CAB 0x9330
+0x9CAC 0x272E6
+0x9CAD 0x249D0
+0x9CAE 0x6C39
+0x9CAF 0x949F
+0x9CB0 0x27450
+0x9CB1 0x20EF8
+0x9CB2 0x8827
+0x9CB3 0x88F5
+0x9CB4 0x22926
+0x9CB5 0x28473
+0x9CB6 0x217B1
+0x9CB7 0x6EB8
+0x9CB8 0x24A2A
+0x9CB9 0x21820
+0x9CBA 0x39A4
+0x9CBB 0x36B9
+0x9CBE 0x453F
+0x9CBF 0x66B6
+0x9CC0 0x29CAD
+0x9CC1 0x298A4
+0x9CC2 0x8943
+0x9CC3 0x277CC
+0x9CC4 0x27858
+0x9CC5 0x56D6
+0x9CC6 0x40DF
+0x9CC7 0x2160A
+0x9CC8 0x39A1
+0x9CC9 0x2372F
+0x9CCA 0x280E8
+0x9CCB 0x213C5
+0x9CCC 0x71AD
+0x9CCD 0x8366
+0x9CCE 0x279DD
+0x9CCF 0x291A8
+0x9CD1 0x4CB7
+0x9CD2 0x270AF
+0x9CD3 0x289AB
+0x9CD4 0x279FD
+0x9CD5 0x27A0A
+0x9CD6 0x27B0B
+0x9CD7 0x27D66
+0x9CD8 0x2417A
+0x9CD9 0x7B43
+0x9CDA 0x797E
+0x9CDB 0x28009
+0x9CDC 0x6FB5
+0x9CDD 0x2A2DF
+0x9CDE 0x6A03
+0x9CDF 0x28318
+0x9CE0 0x53A2
+0x9CE1 0x26E07
+0x9CE2 0x93BF
+0x9CE3 0x6836
+0x9CE4 0x975D
+0x9CE5 0x2816F
+0x9CE6 0x28023
+0x9CE7 0x269B5
+0x9CE8 0x213ED
+0x9CE9 0x2322F
+0x9CEA 0x28048
+0x9CEB 0x5D85
+0x9CEC 0x28C30
+0x9CED 0x28083
+0x9CEE 0x5715
+0x9CEF 0x9823
+0x9CF0 0x28949
+0x9CF1 0x5DAB
+0x9CF2 0x24988
+0x9CF3 0x65BE
+0x9CF4 0x69D5
+0x9CF5 0x53D2
+0x9CF6 0x24AA5
+0x9CF7 0x23F81
+0x9CF8 0x3C11
+0x9CF9 0x6736
+0x9CFA 0x28090
+0x9CFB 0x280F4
+0x9CFC 0x2812E
+0x9CFD 0x21FA1
+0x9CFE 0x2814F
+0x9D40 0x28189
+0x9D41 0x281AF
+0x9D42 0x2821A
+0x9D43 0x28306
+0x9D44 0x2832F
+0x9D45 0x2838A
+0x9D46 0x35CA
+0x9D47 0x28468
+0x9D48 0x286AA
+0x9D49 0x48FA
+0x9D4A 0x63E6
+0x9D4B 0x28956
+0x9D4C 0x7808
+0x9D4D 0x9255
+0x9D4E 0x289B8
+0x9D4F 0x43F2
+0x9D50 0x289E7
+0x9D51 0x43DF
+0x9D52 0x289E8
+0x9D53 0x28B46
+0x9D54 0x28BD4
+0x9D55 0x59F8
+0x9D56 0x28C09
+0x9D58 0x28FC5
+0x9D59 0x290EC
+0x9D5B 0x29110
+0x9D5C 0x2913C
+0x9D5D 0x3DF7
+0x9D5E 0x2915E
+0x9D5F 0x24ACA
+0x9D60 0x8FD0
+0x9D61 0x728F
+0x9D62 0x568B
+0x9D63 0x294E7
+0x9D64 0x295E9
+0x9D65 0x295B0
+0x9D66 0x295B8
+0x9D67 0x29732
+0x9D68 0x298D1
+0x9D69 0x29949
+0x9D6A 0x2996A
+0x9D6B 0x299C3
+0x9D6C 0x29A28
+0x9D6D 0x29B0E
+0x9D6E 0x29D5A
+0x9D6F 0x29D9B
+0x9D70 0x7E9F
+0x9D71 0x29EF8
+0x9D72 0x29F23
+0x9D73 0x4CA4
+0x9D74 0x9547
+0x9D75 0x2A293
+0x9D76 0x71A2
+0x9D77 0x2A2FF
+0x9D78 0x4D91
+0x9D79 0x9012
+0x9D7A 0x2A5CB
+0x9D7B 0x4D9C
+0x9D7C 0x20C9C
+0x9D7D 0x8FBE
+0x9D7E 0x55C1
+0x9DA1 0x8FBA
+0x9DA2 0x224B0
+0x9DA3 0x8FB9
+0x9DA4 0x24A93
+0x9DA5 0x4509
+0x9DA6 0x7E7F
+0x9DA7 0x6F56
+0x9DA8 0x6AB1
+0x9DA9 0x4EEA
+0x9DAA 0x34E4
+0x9DAB 0x28B2C
+0x9DAC 0x2789D
+0x9DAD 0x373A
+0x9DAE 0x8E80
+0x9DAF 0x217F5
+0x9DB0 0x28024
+0x9DB1 0x28B6C
+0x9DB2 0x28B99
+0x9DB3 0x27A3E
+0x9DB4 0x266AF
+0x9DB5 0x3DEB
+0x9DB6 0x27655
+0x9DB7 0x23CB7
+0x9DB8 0x25635
+0x9DB9 0x25956
+0x9DBA 0x4E9A
+0x9DBB 0x25E81
+0x9DBC 0x26258
+0x9DBD 0x56BF
+0x9DBE 0x20E6D
+0x9DBF 0x8E0E
+0x9DC0 0x5B6D
+0x9DC1 0x23E88
+0x9DC2 0x24C9E
+0x9DC3 0x63DE
+0x9DC5 0x217F6
+0x9DC6 0x2187B
+0x9DC7 0x6530
+0x9DC8 0x562D
+0x9DC9 0x25C4A
+0x9DCA 0x541A
+0x9DCB 0x25311
+0x9DCC 0x3DC6
+0x9DCD 0x29D98
+0x9DCE 0x4C7D
+0x9DCF 0x5622
+0x9DD0 0x561E
+0x9DD1 0x7F49
+0x9DD2 0x25ED8
+0x9DD3 0x5975
+0x9DD4 0x23D40
+0x9DD5 0x8770
+0x9DD6 0x4E1C
+0x9DD7 0x20FEA
+0x9DD8 0x20D49
+0x9DD9 0x236BA
+0x9DDA 0x8117
+0x9DDB 0x9D5E
+0x9DDC 0x8D18
+0x9DDD 0x763B
+0x9DDE 0x9C45
+0x9DDF 0x764E
+0x9DE0 0x77B9
+0x9DE1 0x9345
+0x9DE2 0x5432
+0x9DE3 0x8148
+0x9DE4 0x82F7
+0x9DE5 0x5625
+0x9DE6 0x8132
+0x9DE7 0x8418
+0x9DE8 0x80BD
+0x9DE9 0x55EA
+0x9DEA 0x7962
+0x9DEB 0x5643
+0x9DEC 0x5416
+0x9DED 0x20E9D
+0x9DEE 0x35CE
+0x9DEF 0x5605
+0x9DF0 0x55F1
+0x9DF1 0x66F1
+0x9DF2 0x282E2
+0x9DF3 0x362D
+0x9DF4 0x7534
+0x9DF5 0x55F0
+0x9DF6 0x55BA
+0x9DF7 0x5497
+0x9DF8 0x5572
+0x9DF9 0x20C41
+0x9DFA 0x20C96
+0x9DFB 0x5ED0
+0x9DFC 0x25148
+0x9DFD 0x20E76
+0x9DFE 0x22C62
+0x9E40 0x20EA2
+0x9E41 0x9EAB
+0x9E42 0x7D5A
+0x9E43 0x55DE
+0x9E44 0x21075
+0x9E45 0x629D
+0x9E46 0x976D
+0x9E47 0x5494
+0x9E48 0x8CCD
+0x9E49 0x71F6
+0x9E4A 0x9176
+0x9E4B 0x63FC
+0x9E4C 0x63B9
+0x9E4D 0x63FE
+0x9E4E 0x5569
+0x9E4F 0x22B43
+0x9E50 0x9C72
+0x9E51 0x22EB3
+0x9E52 0x519A
+0x9E53 0x34DF
+0x9E54 0x20DA7
+0x9E55 0x51A7
+0x9E56 0x544D
+0x9E57 0x551E
+0x9E58 0x5513
+0x9E59 0x7666
+0x9E5A 0x8E2D
+0x9E5B 0x2688A
+0x9E5C 0x75B1
+0x9E5D 0x80B6
+0x9E5E 0x8804
+0x9E5F 0x8786
+0x9E60 0x88C7
+0x9E61 0x81B6
+0x9E62 0x841C
+0x9E63 0x210C1
+0x9E64 0x44EC
+0x9E65 0x7304
+0x9E66 0x24706
+0x9E67 0x5B90
+0x9E68 0x830B
+0x9E69 0x26893
+0x9E6A 0x567B
+0x9E6B 0x226F4
+0x9E6C 0x27D2F
+0x9E6D 0x241A3
+0x9E6E 0x27D73
+0x9E6F 0x26ED0
+0x9E70 0x272B6
+0x9E71 0x9170
+0x9E72 0x211D9
+0x9E73 0x9208
+0x9E74 0x23CFC
+0x9E75 0x2A6A9
+0x9E76 0x20EAC
+0x9E77 0x20EF9
+0x9E78 0x7266
+0x9E79 0x21CA2
+0x9E7A 0x474E
+0x9E7B 0x24FC2
+0x9E7C 0x27FF9
+0x9E7D 0x20FEB
+0x9E7E 0x40FA
+0x9EA1 0x9C5D
+0x9EA2 0x651F
+0x9EA3 0x22DA0
+0x9EA4 0x48F3
+0x9EA5 0x247E0
+0x9EA6 0x29D7C
+0x9EA7 0x20FEC
+0x9EA8 0x20E0A
+0x9EAA 0x275A3
+0x9EAB 0x20FED
+0x9EAD 0x26048
+0x9EAE 0x21187
+0x9EAF 0x71A3
+0x9EB0 0x7E8E
+0x9EB1 0x9D50
+0x9EB2 0x4E1A
+0x9EB3 0x4E04
+0x9EB4 0x3577
+0x9EB5 0x5B0D
+0x9EB6 0x6CB2
+0x9EB7 0x5367
+0x9EB8 0x36AC
+0x9EB9 0x39DC
+0x9EBA 0x537D
+0x9EBB 0x36A5
+0x9EBC 0x24618
+0x9EBD 0x589A
+0x9EBE 0x24B6E
+0x9EBF 0x822D
+0x9EC0 0x544B
+0x9EC1 0x57AA
+0x9EC2 0x25A95
+0x9EC3 0x20979
+0x9EC5 0x3A52
+0x9EC6 0x22465
+0x9EC7 0x7374
+0x9EC8 0x29EAC
+0x9EC9 0x4D09
+0x9ECA 0x9BED
+0x9ECB 0x23CFE
+0x9ECC 0x29F30
+0x9ECD 0x4C5B
+0x9ECE 0x24FA9
+0x9ECF 0x2959E
+0x9ED0 0x29FDE
+0x9ED1 0x845C
+0x9ED2 0x23DB6
+0x9ED3 0x272B2
+0x9ED4 0x267B3
+0x9ED5 0x23720
+0x9ED6 0x632E
+0x9ED7 0x7D25
+0x9ED8 0x23EF7
+0x9ED9 0x23E2C
+0x9EDA 0x3A2A
+0x9EDB 0x9008
+0x9EDC 0x52CC
+0x9EDD 0x3E74
+0x9EDE 0x367A
+0x9EDF 0x45E9
+0x9EE0 0x2048E
+0x9EE1 0x7640
+0x9EE2 0x5AF0
+0x9EE3 0x20EB6
+0x9EE4 0x787A
+0x9EE5 0x47B6
+0x9EE6 0x58A7
+0x9EE7 0x40BF
+0x9EE8 0x567C
+0x9EE9 0x9B8B
+0x9EEA 0x5D74
+0x9EEB 0x7654
+0x9EEC 0x2A434
+0x9EED 0x9E85
+0x9EEE 0x4CE1
+0x9EF0 0x37FB
+0x9EF1 0x6119
+0x9EF2 0x230DA
+0x9EF3 0x243F2
+0x9EF5 0x565D
+0x9EF6 0x212A9
+0x9EF7 0x57A7
+0x9EF8 0x24963
+0x9EF9 0x29E06
+0x9EFA 0x5234
+0x9EFB 0x270AE
+0x9EFC 0x35AD
+0x9EFE 0x9D7C
+0x9F40 0x7C56
+0x9F41 0x9B39
+0x9F42 0x57DE
+0x9F43 0x2176C
+0x9F44 0x5C53
+0x9F45 0x64D3
+0x9F46 0x294D0
+0x9F47 0x26335
+0x9F48 0x27164
+0x9F49 0x86AD
+0x9F4A 0x20D28
+0x9F4B 0x26D22
+0x9F4C 0x24AE2
+0x9F4D 0x20D71
+0x9F4F 0x51FE
+0x9F50 0x21F0F
+0x9F51 0x5D8E
+0x9F52 0x9703
+0x9F53 0x21DD1
+0x9F54 0x9E81
+0x9F55 0x904C
+0x9F56 0x7B1F
+0x9F57 0x9B02
+0x9F58 0x5CD1
+0x9F59 0x7BA3
+0x9F5A 0x6268
+0x9F5B 0x6335
+0x9F5C 0x9AFF
+0x9F5D 0x7BCF
+0x9F5E 0x9B2A
+0x9F5F 0x7C7E
+0x9F61 0x7C42
+0x9F62 0x7C86
+0x9F63 0x9C15
+0x9F64 0x7BFC
+0x9F65 0x9B09
+0x9F67 0x9C1B
+0x9F68 0x2493E
+0x9F69 0x9F5A
+0x9F6A 0x5573
+0x9F6B 0x5BC3
+0x9F6C 0x4FFD
+0x9F6D 0x9E98
+0x9F6E 0x4FF2
+0x9F6F 0x5260
+0x9F70 0x3E06
+0x9F71 0x52D1
+0x9F72 0x5767
+0x9F73 0x5056
+0x9F74 0x59B7
+0x9F75 0x5E12
+0x9F76 0x97C8
+0x9F77 0x9DAB
+0x9F78 0x8F5C
+0x9F79 0x5469
+0x9F7A 0x97B4
+0x9F7B 0x9940
+0x9F7C 0x97BA
+0x9F7D 0x532C
+0x9F7E 0x6130
+0x9FA1 0x692C
+0x9FA2 0x53DA
+0x9FA3 0x9C0A
+0x9FA4 0x9D02
+0x9FA5 0x4C3B
+0x9FA6 0x9641
+0x9FA7 0x6980
+0x9FA8 0x50A6
+0x9FA9 0x7546
+0x9FAA 0x2176D
+0x9FAB 0x99DA
+0x9FAC 0x5273
+0x9FAE 0x9159
+0x9FAF 0x9681
+0x9FB0 0x915C
+0x9FB2 0x9151
+0x9FB3 0x28E97
+0x9FB4 0x637F
+0x9FB5 0x26D23
+0x9FB6 0x6ACA
+0x9FB7 0x5611
+0x9FB8 0x918E
+0x9FB9 0x757A
+0x9FBA 0x6285
+0x9FBB 0x203FC
+0x9FBC 0x734F
+0x9FBD 0x7C70
+0x9FBE 0x25C21
+0x9FBF 0x23CFD
+0x9FC1 0x24919
+0x9FC2 0x76D6
+0x9FC3 0x9B9D
+0x9FC4 0x4E2A
+0x9FC5 0x20CD4
+0x9FC6 0x83BE
+0x9FC7 0x8842
+0x9FC9 0x5C4A
+0x9FCA 0x69C0
+0x9FCC 0x577A
+0x9FCD 0x521F
+0x9FCE 0x5DF5
+0x9FCF 0x4ECE
+0x9FD0 0x6C31
+0x9FD1 0x201F2
+0x9FD2 0x4F39
+0x9FD3 0x549C
+0x9FD4 0x54DA
+0x9FD5 0x529A
+0x9FD6 0x8D82
+0x9FD7 0x35FE
+0x9FD9 0x35F3
+0x9FDB 0x6B52
+0x9FDC 0x917C
+0x9FDD 0x9FA5
+0x9FDE 0x9B97
+0x9FDF 0x982E
+0x9FE0 0x98B4
+0x9FE1 0x9ABA
+0x9FE2 0x9EA8
+0x9FE3 0x9E84
+0x9FE4 0x717A
+0x9FE5 0x7B14
+0x9FE7 0x6BFA
+0x9FE8 0x8818
+0x9FE9 0x7F78
+0x9FEB 0x5620
+0x9FEC 0x2A64A
+0x9FED 0x8E77
+0x9FEE 0x9F53
+0x9FF0 0x8DD4
+0x9FF1 0x8E4F
+0x9FF2 0x9E1C
+0x9FF3 0x8E01
+0x9FF4 0x6282
+0x9FF5 0x2837D
+0x9FF6 0x8E28
+0x9FF7 0x8E75
+0x9FF8 0x7AD3
+0x9FF9 0x24A77
+0x9FFA 0x7A3E
+0x9FFB 0x78D8
+0x9FFC 0x6CEA
+0x9FFD 0x8A67
+0x9FFE 0x7607
+0xA040 0x28A5A
+0xA041 0x9F26
+0xA042 0x6CCE
+0xA043 0x87D6
+0xA044 0x75C3
+0xA045 0x2A2B2
+0xA046 0x7853
+0xA047 0x2F840
+0xA048 0x8D0C
+0xA049 0x72E2
+0xA04A 0x7371
+0xA04B 0x8B2D
+0xA04C 0x7302
+0xA04D 0x74F1
+0xA04E 0x8CEB
+0xA04F 0x24ABB
+0xA050 0x862F
+0xA051 0x5FBA
+0xA052 0x88A0
+0xA053 0x44B7
+0xA055 0x2183B
+0xA056 0x26E05
+0xA058 0x8A7E
+0xA059 0x2251B
+0xA05B 0x60FD
+0xA05C 0x7667
+0xA05D 0x9AD7
+0xA05E 0x9D44
+0xA05F 0x936E
+0xA060 0x9B8F
+0xA061 0x87F5
+0xA064 0x8CF7
+0xA065 0x732C
+0xA066 0x9721
+0xA067 0x9BB0
+0xA068 0x35D6
+0xA069 0x72B2
+0xA06A 0x4C07
+0xA06B 0x7C51
+0xA06C 0x994A
+0xA06D 0x26159
+0xA06E 0x6159
+0xA06F 0x4C04
+0xA070 0x9E96
+0xA071 0x617D
+0xA073 0x575F
+0xA074 0x616F
+0xA075 0x62A6
+0xA076 0x6239
+0xA078 0x3A5C
+0xA079 0x61E2
+0xA07A 0x53AA
+0xA07B 0x233F5
+0xA07C 0x6364
+0xA07D 0x6802
+0xA07E 0x35D2
+0xA0A1 0x5D57
+0xA0A2 0x28BC2
+0xA0A3 0x8FDA
+0xA0A4 0x28E39
+0xA0A6 0x50D9
+0xA0A7 0x21D46
+0xA0A8 0x7906
+0xA0A9 0x5332
+0xA0AA 0x9638
+0xA0AB 0x20F3B
+0xA0AC 0x4065
+0xA0AE 0x77FE
+0xA0B0 0x7CC2
+0xA0B1 0x25F1A
+0xA0B2 0x7CDA
+0xA0B3 0x7A2D
+0xA0B4 0x8066
+0xA0B5 0x8063
+0xA0B6 0x7D4D
+0xA0B7 0x7505
+0xA0B8 0x74F2
+0xA0B9 0x8994
+0xA0BA 0x821A
+0xA0BB 0x670C
+0xA0BC 0x8062
+0xA0BD 0x27486
+0xA0BE 0x805B
+0xA0BF 0x74F0
+0xA0C0 0x8103
+0xA0C1 0x7724
+0xA0C2 0x8989
+0xA0C3 0x267CC
+0xA0C4 0x7553
+0xA0C5 0x26ED1
+0xA0C6 0x87A9
+0xA0C7 0x87CE
+0xA0C8 0x81C8
+0xA0C9 0x878C
+0xA0CA 0x8A49
+0xA0CB 0x8CAD
+0xA0CC 0x8B43
+0xA0CD 0x772B
+0xA0CE 0x74F8
+0xA0CF 0x84DA
+0xA0D0 0x3635
+0xA0D1 0x69B2
+0xA0D2 0x8DA6
+0xA0D4 0x89A9
+0xA0D6 0x6DB9
+0xA0D7 0x87C1
+0xA0D8 0x24011
+0xA0D9 0x74E7
+0xA0DA 0x3DDB
+0xA0DB 0x7176
+0xA0DC 0x60A4
+0xA0DD 0x619C
+0xA0DE 0x3CD1
+0xA0E0 0x6077
+0xA0E2 0x7F71
+0xA0E3 0x28B2D
+0xA0E5 0x60E9
+0xA0E6 0x4B7E
+0xA0E7 0x5220
+0xA0E8 0x3C18
+0xA0E9 0x23CC7
+0xA0EA 0x25ED7
+0xA0EB 0x27656
+0xA0EC 0x25531
+0xA0ED 0x21944
+0xA0EE 0x212FE
+0xA0EF 0x29903
+0xA0F0 0x26DDC
+0xA0F1 0x270AD
+0xA0F2 0x5CC1
+0xA0F3 0x261AD
+0xA0F4 0x28A0F
+0xA0F5 0x23677
+0xA0F6 0x200EE
+0xA0F7 0x26846
+0xA0F8 0x24F0E
+0xA0F9 0x4562
+0xA0FA 0x5B1F
+0xA0FB 0x2634C
+0xA0FC 0x9F50
+0xA0FD 0x9EA6
+0xA0FE 0x2626B
+0xC6A1 0x2460
+0xC6A2 0x2461
+0xC6A3 0x2462
+0xC6A4 0x2463
+0xC6A5 0x2464
+0xC6A6 0x2465
+0xC6A7 0x2466
+0xC6A8 0x2467
+0xC6A9 0x2468
+0xC6AA 0x2469
+0xC6AB 0x2474
+0xC6AC 0x2475
+0xC6AD 0x2476
+0xC6AE 0x2477
+0xC6AF 0x2478
+0xC6B0 0x2479
+0xC6B1 0x247A
+0xC6B2 0x247B
+0xC6B3 0x247C
+0xC6B4 0x247D
+0xC6B5 0x2170
+0xC6B6 0x2171
+0xC6B7 0x2172
+0xC6B8 0x2173
+0xC6B9 0x2174
+0xC6BA 0x2175
+0xC6BB 0x2176
+0xC6BC 0x2177
+0xC6BD 0x2178
+0xC6BE 0x2179
+0xC6BF 0x4E36
+0xC6C0 0x4E3F
+0xC6C1 0x4E85
+0xC6C2 0x4EA0
+0xC6C3 0x5182
+0xC6C4 0x5196
+0xC6C5 0x51AB
+0xC6C6 0x52F9
+0xC6C7 0x5338
+0xC6C8 0x5369
+0xC6C9 0x53B6
+0xC6CA 0x590A
+0xC6CB 0x5B80
+0xC6CC 0x5DDB
+0xC6CD 0x2F33
+0xC6CE 0x5E7F
+0xC6D0 0x5F50
+0xC6D1 0x5F61
+0xC6D2 0x6534
+0xC6D4 0x7592
+0xC6D6 0x8FB5
+0xC6D8 0xA8
+0xC6D9 0x2C6
+0xC6DA 0x30FD
+0xC6DB 0x30FE
+0xC6DC 0x309D
+0xC6DD 0x309E
+0xC6E0 0x3005
+0xC6E1 0x3006
+0xC6E2 0x3007
+0xC6E3 0x30FC
+0xC6E4 0xFF3B
+0xC6E5 0xFF3D
+0xC6E6 0x273D
+0xC6E7 0x3041
+0xC6E8 0x3042
+0xC6E9 0x3043
+0xC6EA 0x3044
+0xC6EB 0x3045
+0xC6EC 0x3046
+0xC6ED 0x3047
+0xC6EE 0x3048
+0xC6EF 0x3049
+0xC6F0 0x304A
+0xC6F1 0x304B
+0xC6F2 0x304C
+0xC6F3 0x304D
+0xC6F4 0x304E
+0xC6F5 0x304F
+0xC6F6 0x3050
+0xC6F7 0x3051
+0xC6F8 0x3052
+0xC6F9 0x3053
+0xC6FA 0x3054
+0xC6FB 0x3055
+0xC6FC 0x3056
+0xC6FD 0x3057
+0xC6FE 0x3058
+0xC740 0x3059
+0xC741 0x305A
+0xC742 0x305B
+0xC743 0x305C
+0xC744 0x305D
+0xC745 0x305E
+0xC746 0x305F
+0xC747 0x3060
+0xC748 0x3061
+0xC749 0x3062
+0xC74A 0x3063
+0xC74B 0x3064
+0xC74C 0x3065
+0xC74D 0x3066
+0xC74E 0x3067
+0xC74F 0x3068
+0xC750 0x3069
+0xC751 0x306A
+0xC752 0x306B
+0xC753 0x306C
+0xC754 0x306D
+0xC755 0x306E
+0xC756 0x306F
+0xC757 0x3070
+0xC758 0x3071
+0xC759 0x3072
+0xC75A 0x3073
+0xC75B 0x3074
+0xC75C 0x3075
+0xC75D 0x3076
+0xC75E 0x3077
+0xC75F 0x3078
+0xC760 0x3079
+0xC761 0x307A
+0xC762 0x307B
+0xC763 0x307C
+0xC764 0x307D
+0xC765 0x307E
+0xC766 0x307F
+0xC767 0x3080
+0xC768 0x3081
+0xC769 0x3082
+0xC76A 0x3083
+0xC76B 0x3084
+0xC76C 0x3085
+0xC76D 0x3086
+0xC76E 0x3087
+0xC76F 0x3088
+0xC770 0x3089
+0xC771 0x308A
+0xC772 0x308B
+0xC773 0x308C
+0xC774 0x308D
+0xC775 0x308E
+0xC776 0x308F
+0xC777 0x3090
+0xC778 0x3091
+0xC779 0x3092
+0xC77A 0x3093
+0xC77B 0x30A1
+0xC77C 0x30A2
+0xC77D 0x30A3
+0xC77E 0x30A4
+0xC7A1 0x30A5
+0xC7A2 0x30A6
+0xC7A3 0x30A7
+0xC7A4 0x30A8
+0xC7A5 0x30A9
+0xC7A6 0x30AA
+0xC7A7 0x30AB
+0xC7A8 0x30AC
+0xC7A9 0x30AD
+0xC7AA 0x30AE
+0xC7AB 0x30AF
+0xC7AC 0x30B0
+0xC7AD 0x30B1
+0xC7AE 0x30B2
+0xC7AF 0x30B3
+0xC7B0 0x30B4
+0xC7B1 0x30B5
+0xC7B2 0x30B6
+0xC7B3 0x30B7
+0xC7B4 0x30B8
+0xC7B5 0x30B9
+0xC7B6 0x30BA
+0xC7B7 0x30BB
+0xC7B8 0x30BC
+0xC7B9 0x30BD
+0xC7BA 0x30BE
+0xC7BB 0x30BF
+0xC7BC 0x30C0
+0xC7BD 0x30C1
+0xC7BE 0x30C2
+0xC7BF 0x30C3
+0xC7C0 0x30C4
+0xC7C1 0x30C5
+0xC7C2 0x30C6
+0xC7C3 0x30C7
+0xC7C4 0x30C8
+0xC7C5 0x30C9
+0xC7C6 0x30CA
+0xC7C7 0x30CB
+0xC7C8 0x30CC
+0xC7C9 0x30CD
+0xC7CA 0x30CE
+0xC7CB 0x30CF
+0xC7CC 0x30D0
+0xC7CD 0x30D1
+0xC7CE 0x30D2
+0xC7CF 0x30D3
+0xC7D0 0x30D4
+0xC7D1 0x30D5
+0xC7D2 0x30D6
+0xC7D3 0x30D7
+0xC7D4 0x30D8
+0xC7D5 0x30D9
+0xC7D6 0x30DA
+0xC7D7 0x30DB
+0xC7D8 0x30DC
+0xC7D9 0x30DD
+0xC7DA 0x30DE
+0xC7DB 0x30DF
+0xC7DC 0x30E0
+0xC7DD 0x30E1
+0xC7DE 0x30E2
+0xC7DF 0x30E3
+0xC7E0 0x30E4
+0xC7E1 0x30E5
+0xC7E2 0x30E6
+0xC7E3 0x30E7
+0xC7E4 0x30E8
+0xC7E5 0x30E9
+0xC7E6 0x30EA
+0xC7E7 0x30EB
+0xC7E8 0x30EC
+0xC7E9 0x30ED
+0xC7EA 0x30EE
+0xC7EB 0x30EF
+0xC7EC 0x30F0
+0xC7ED 0x30F1
+0xC7EE 0x30F2
+0xC7EF 0x30F3
+0xC7F0 0x30F4
+0xC7F1 0x30F5
+0xC7F2 0x30F6
+0xC7F3 0x410
+0xC7F4 0x411
+0xC7F5 0x412
+0xC7F6 0x413
+0xC7F7 0x414
+0xC7F8 0x415
+0xC7F9 0x401
+0xC7FA 0x416
+0xC7FB 0x417
+0xC7FC 0x418
+0xC7FD 0x419
+0xC7FE 0x41A
+0xC840 0x41B
+0xC841 0x41C
+0xC842 0x41D
+0xC843 0x41E
+0xC844 0x41F
+0xC845 0x420
+0xC846 0x421
+0xC847 0x422
+0xC848 0x423
+0xC849 0x424
+0xC84A 0x425
+0xC84B 0x426
+0xC84C 0x427
+0xC84D 0x428
+0xC84E 0x429
+0xC84F 0x42A
+0xC850 0x42B
+0xC851 0x42C
+0xC852 0x42D
+0xC853 0x42E
+0xC854 0x42F
+0xC855 0x430
+0xC856 0x431
+0xC857 0x432
+0xC858 0x433
+0xC859 0x434
+0xC85A 0x435
+0xC85B 0x451
+0xC85C 0x436
+0xC85D 0x437
+0xC85E 0x438
+0xC85F 0x439
+0xC860 0x43A
+0xC861 0x43B
+0xC862 0x43C
+0xC863 0x43D
+0xC864 0x43E
+0xC865 0x43F
+0xC866 0x440
+0xC867 0x441
+0xC868 0x442
+0xC869 0x443
+0xC86A 0x444
+0xC86B 0x445
+0xC86C 0x446
+0xC86D 0x447
+0xC86E 0x448
+0xC86F 0x449
+0xC870 0x44A
+0xC871 0x44B
+0xC872 0x44C
+0xC873 0x44D
+0xC874 0x44E
+0xC875 0x44F
+0xC876 0x21E7
+0xC877 0x21B8
+0xC878 0x21B9
+0xC879 0xF7E5
+0xC87A 0x200CC
+0xC87B 0x4E5A
+0xC87C 0x2008A
+0xC87D 0x5202
+0xC87E 0xF7EA
+0xC8A1 0xF7EB
+0xC8A2 0x5188
+0xC8A3 0xF7ED
+0xC8A4 0x27607
+0xC8CD 0xFFE2
+0xC8CE 0xFFE4
+0xC8CF 0xFF07
+0xC8D0 0xFF02
+0xC8D1 0x3231
+0xC8D2 0x2116
+0xC8D3 0x2121
+0xC8D4 0x309B
+0xC8D5 0x309C
+0xC8D6 0x2E80
+0xC8D7 0x2E84
+0xC8D8 0x2E86
+0xC8D9 0x2E87
+0xC8DA 0x2E88
+0xC8DB 0x2E8A
+0xC8DC 0x2E8C
+0xC8DD 0x2E8D
+0xC8DE 0x2E95
+0xC8DF 0x2E9C
+0xC8E0 0x2E9D
+0xC8E1 0x2EA5
+0xC8E2 0x2EA7
+0xC8E3 0x2EAA
+0xC8E4 0x2EAC
+0xC8E5 0x2EAE
+0xC8E6 0x2EB6
+0xC8E7 0x2EBC
+0xC8E8 0x2EBE
+0xC8E9 0x2EC6
+0xC8EA 0x2ECA
+0xC8EB 0x2ECC
+0xC8EC 0x2ECD
+0xC8ED 0x2ECF
+0xC8EE 0x2ED6
+0xC8EF 0x2ED7
+0xC8F0 0x2EDE
+0xC8F1 0x2EE3
+0xC8F5 0x283
+0xC8F6 0x250
+0xC8F7 0x25B
+0xC8F8 0x254
+0xC8F9 0x275
+0xC8FA 0x153
+0xC8FB 0xF8
+0xC8FC 0x14B
+0xC8FD 0x28A
+0xC8FE 0x26A
+0xF9D6 0x7881
+0xF9D7 0x92B9
+0xF9D8 0x88CF
+0xF9D9 0x58BB
+0xF9DA 0x6052
+0xF9DB 0x7CA7
+0xF9DC 0x5AFA
+0xF9DD 0x2554
+0xF9DE 0x2566
+0xF9DF 0x2557
+0xF9E0 0x2560
+0xF9E1 0x256C
+0xF9E2 0x2563
+0xF9E3 0x255A
+0xF9E4 0x2569
+0xF9E5 0x255D
+0xF9E6 0x2552
+0xF9E7 0x2564
+0xF9E8 0x2555
+0xF9E9 0x255E
+0xF9EA 0x256A
+0xF9EB 0x2561
+0xF9EC 0x2558
+0xF9ED 0x2567
+0xF9EE 0x255B
+0xF9EF 0x2553
+0xF9F0 0x2565
+0xF9F1 0x2556
+0xF9F2 0x255F
+0xF9F3 0x256B
+0xF9F4 0x2562
+0xF9F5 0x2559
+0xF9F6 0x2568
+0xF9F7 0x255C
+0xF9F8 0x2551
+0xF9F9 0x2550
+0xF9FA 0x256D
+0xF9FB 0x256E
+0xF9FC 0x2570
+0xF9FD 0x256F
+0xF9FE 0xFFED
+0xFA40 0x20547
+0xFA41 0x92DB
+0xFA42 0x205DF
+0xFA43 0x23FC5
+0xFA44 0x854C
+0xFA45 0x42B5
+0xFA46 0x73EF
+0xFA47 0x51B5
+0xFA48 0x3649
+0xFA49 0x24942
+0xFA4A 0x289E4
+0xFA4B 0x9344
+0xFA4C 0x219DB
+0xFA4D 0x82EE
+0xFA4E 0x23CC8
+0xFA4F 0x783C
+0xFA50 0x6744
+0xFA51 0x62DF
+0xFA52 0x24933
+0xFA53 0x289AA
+0xFA54 0x202A0
+0xFA55 0x26BB3
+0xFA56 0x21305
+0xFA57 0x4FAB
+0xFA58 0x224ED
+0xFA59 0x5008
+0xFA5A 0x26D29
+0xFA5B 0x27A84
+0xFA5C 0x23600
+0xFA5D 0x24AB1
+0xFA5E 0x22513
+0xFA60 0x2037E
+0xFA61 0x5FA4
+0xFA62 0x20380
+0xFA63 0x20347
+0xFA64 0x6EDB
+0xFA65 0x2041F
+0xFA67 0x5101
+0xFA68 0x347A
+0xFA69 0x510E
+0xFA6A 0x986C
+0xFA6B 0x3743
+0xFA6C 0x8416
+0xFA6D 0x249A4
+0xFA6E 0x20487
+0xFA6F 0x5160
+0xFA70 0x233B4
+0xFA71 0x516A
+0xFA72 0x20BFF
+0xFA73 0x220FC
+0xFA74 0x202E5
+0xFA75 0x22530
+0xFA76 0x2058E
+0xFA77 0x23233
+0xFA78 0x21983
+0xFA79 0x5B82
+0xFA7A 0x877D
+0xFA7B 0x205B3
+0xFA7C 0x23C99
+0xFA7D 0x51B2
+0xFA7E 0x51B8
+0xFAA1 0x9D34
+0xFAA2 0x51C9
+0xFAA3 0x51CF
+0xFAA4 0x51D1
+0xFAA5 0x3CDC
+0xFAA6 0x51D3
+0xFAA7 0x24AA6
+0xFAA8 0x51B3
+0xFAA9 0x51E2
+0xFAAA 0x5342
+0xFAAB 0x51ED
+0xFAAC 0x83CD
+0xFAAD 0x693E
+0xFAAE 0x2372D
+0xFAAF 0x5F7B
+0xFAB0 0x520B
+0xFAB1 0x5226
+0xFAB2 0x523C
+0xFAB3 0x52B5
+0xFAB4 0x5257
+0xFAB5 0x5294
+0xFAB6 0x52B9
+0xFAB7 0x52C5
+0xFAB8 0x7C15
+0xFAB9 0x8542
+0xFABA 0x52E0
+0xFABB 0x860D
+0xFABC 0x26B13
+0xFABE 0x28ADE
+0xFABF 0x5549
+0xFAC0 0x6ED9
+0xFAC1 0x23F80
+0xFAC2 0x20954
+0xFAC3 0x23FEC
+0xFAC4 0x5333
+0xFAC6 0x20BE2
+0xFAC7 0x6CCB
+0xFAC8 0x21726
+0xFAC9 0x681B
+0xFACA 0x73D5
+0xFACB 0x604A
+0xFACC 0x3EAA
+0xFACD 0x38CC
+0xFACE 0x216E8
+0xFACF 0x71DD
+0xFAD0 0x44A2
+0xFAD1 0x536D
+0xFAD2 0x5374
+0xFAD3 0x286AB
+0xFAD4 0x537E
+0xFAD6 0x21596
+0xFAD7 0x21613
+0xFAD8 0x77E6
+0xFAD9 0x5393
+0xFADA 0x28A9B
+0xFADB 0x53A0
+0xFADC 0x53AB
+0xFADD 0x53AE
+0xFADE 0x73A7
+0xFADF 0x25772
+0xFAE0 0x3F59
+0xFAE1 0x739C
+0xFAE2 0x53C1
+0xFAE3 0x53C5
+0xFAE4 0x6C49
+0xFAE5 0x4E49
+0xFAE6 0x57FE
+0xFAE7 0x53D9
+0xFAE8 0x3AAB
+0xFAE9 0x20B8F
+0xFAEA 0x53E0
+0xFAEB 0x23FEB
+0xFAEC 0x22DA3
+0xFAED 0x53F6
+0xFAEE 0x20C77
+0xFAEF 0x5413
+0xFAF0 0x7079
+0xFAF1 0x552B
+0xFAF2 0x6657
+0xFAF3 0x6D5B
+0xFAF4 0x546D
+0xFAF5 0x26B53
+0xFAF6 0x20D74
+0xFAF7 0x555D
+0xFAF8 0x548F
+0xFAF9 0x54A4
+0xFAFA 0x47A6
+0xFAFB 0x2170D
+0xFAFC 0x20EDD
+0xFAFD 0x3DB4
+0xFAFE 0x20D4D
+0xFB40 0x289BC
+0xFB41 0x22698
+0xFB42 0x5547
+0xFB43 0x4CED
+0xFB44 0x542F
+0xFB45 0x7417
+0xFB46 0x5586
+0xFB47 0x55A9
+0xFB49 0x218D7
+0xFB4A 0x2403A
+0xFB4B 0x4552
+0xFB4C 0x24435
+0xFB4D 0x66B3
+0xFB4E 0x210B4
+0xFB4F 0x5637
+0xFB50 0x66CD
+0xFB51 0x2328A
+0xFB52 0x66A4
+0xFB53 0x66AD
+0xFB54 0x564D
+0xFB55 0x564F
+0xFB56 0x78F1
+0xFB57 0x56F1
+0xFB58 0x9787
+0xFB59 0x53FE
+0xFB5A 0x5700
+0xFB5B 0x56EF
+0xFB5C 0x56ED
+0xFB5D 0x28B66
+0xFB5E 0x3623
+0xFB5F 0x2124F
+0xFB60 0x5746
+0xFB61 0x241A5
+0xFB62 0x6C6E
+0xFB63 0x708B
+0xFB64 0x5742
+0xFB65 0x36B1
+0xFB66 0x26C7E
+0xFB67 0x57E6
+0xFB68 0x21416
+0xFB69 0x5803
+0xFB6A 0x21454
+0xFB6B 0x24363
+0xFB6C 0x5826
+0xFB6D 0x24BF5
+0xFB6E 0x585C
+0xFB6F 0x58AA
+0xFB70 0x3561
+0xFB71 0x58E0
+0xFB72 0x58DC
+0xFB73 0x2123C
+0xFB74 0x58FB
+0xFB75 0x5BFF
+0xFB76 0x5743
+0xFB77 0x2A150
+0xFB78 0x24278
+0xFB79 0x93D3
+0xFB7A 0x35A1
+0xFB7B 0x591F
+0xFB7C 0x68A6
+0xFB7D 0x36C3
+0xFB7E 0x6E59
+0xFBA1 0x2163E
+0xFBA2 0x5A24
+0xFBA3 0x5553
+0xFBA4 0x21692
+0xFBA5 0x8505
+0xFBA6 0x59C9
+0xFBA7 0x20D4E
+0xFBA8 0x26C81
+0xFBA9 0x26D2A
+0xFBAA 0x217DC
+0xFBAB 0x59D9
+0xFBAC 0x217FB
+0xFBAD 0x217B2
+0xFBAE 0x26DA6
+0xFBAF 0x6D71
+0xFBB0 0x21828
+0xFBB1 0x216D5
+0xFBB2 0x59F9
+0xFBB3 0x26E45
+0xFBB4 0x5AAB
+0xFBB5 0x5A63
+0xFBB6 0x36E6
+0xFBB7 0x249A9
+0xFBB9 0x3708
+0xFBBA 0x5A96
+0xFBBB 0x7465
+0xFBBC 0x5AD3
+0xFBBD 0x26FA1
+0xFBBE 0x22554
+0xFBBF 0x3D85
+0xFBC0 0x21911
+0xFBC1 0x3732
+0xFBC2 0x216B8
+0xFBC3 0x5E83
+0xFBC4 0x52D0
+0xFBC5 0x5B76
+0xFBC6 0x6588
+0xFBC7 0x5B7C
+0xFBC8 0x27A0E
+0xFBC9 0x4004
+0xFBCA 0x485D
+0xFBCB 0x20204
+0xFBCC 0x5BD5
+0xFBCD 0x6160
+0xFBCE 0x21A34
+0xFBCF 0x259CC
+0xFBD0 0x205A5
+0xFBD1 0x5BF3
+0xFBD2 0x5B9D
+0xFBD3 0x4D10
+0xFBD4 0x5C05
+0xFBD5 0x21B44
+0xFBD6 0x5C13
+0xFBD7 0x73CE
+0xFBD8 0x5C14
+0xFBD9 0x21CA5
+0xFBDA 0x26B28
+0xFBDB 0x5C49
+0xFBDC 0x48DD
+0xFBDD 0x5C85
+0xFBDE 0x5CE9
+0xFBDF 0x5CEF
+0xFBE0 0x5D8B
+0xFBE1 0x21DF9
+0xFBE2 0x21E37
+0xFBE3 0x5D10
+0xFBE4 0x5D18
+0xFBE5 0x5D46
+0xFBE6 0x21EA4
+0xFBE7 0x5CBA
+0xFBE8 0x5DD7
+0xFBE9 0x82FC
+0xFBEA 0x382D
+0xFBEB 0x24901
+0xFBEC 0x22049
+0xFBED 0x22173
+0xFBEE 0x8287
+0xFBEF 0x3836
+0xFBF0 0x3BC2
+0xFBF1 0x5E2E
+0xFBF2 0x6A8A
+0xFBF4 0x5E7A
+0xFBF5 0x244BC
+0xFBF6 0x20CD3
+0xFBF7 0x53A6
+0xFBF8 0x4EB7
+0xFBFA 0x53A8
+0xFBFB 0x21771
+0xFBFC 0x5E09
+0xFBFD 0x5EF4
+0xFBFE 0x28482
+0xFC40 0x5EF9
+0xFC41 0x5EFB
+0xFC42 0x38A0
+0xFC43 0x5EFC
+0xFC44 0x683E
+0xFC45 0x941B
+0xFC46 0x5F0D
+0xFC47 0x201C1
+0xFC48 0x2F894
+0xFC49 0x3ADE
+0xFC4A 0x48AE
+0xFC4B 0x2133A
+0xFC4C 0x5F3A
+0xFC4D 0x26888
+0xFC4E 0x223D0
+0xFC50 0x22471
+0xFC51 0x5F63
+0xFC52 0x97BD
+0xFC53 0x26E6E
+0xFC54 0x5F72
+0xFC55 0x9340
+0xFC56 0x28A36
+0xFC57 0x5FA7
+0xFC58 0x5DB6
+0xFC59 0x3D5F
+0xFC5A 0x25250
+0xFC5B 0x21F6A
+0xFC5C 0x270F8
+0xFC5D 0x22668
+0xFC5E 0x91D6
+0xFC5F 0x2029E
+0xFC60 0x28A29
+0xFC61 0x6031
+0xFC62 0x6685
+0xFC63 0x21877
+0xFC64 0x3963
+0xFC65 0x3DC7
+0xFC66 0x3639
+0xFC67 0x5790
+0xFC68 0x227B4
+0xFC69 0x7971
+0xFC6A 0x3E40
+0xFC6B 0x609E
+0xFC6D 0x60B3
+0xFC6E 0x24982
+0xFC6F 0x2498F
+0xFC70 0x27A53
+0xFC71 0x74A4
+0xFC72 0x50E1
+0xFC73 0x5AA0
+0xFC74 0x6164
+0xFC75 0x8424
+0xFC76 0x6142
+0xFC77 0x2F8A6
+0xFC78 0x26ED2
+0xFC79 0x6181
+0xFC7A 0x51F4
+0xFC7B 0x20656
+0xFC7C 0x6187
+0xFC7D 0x5BAA
+0xFC7E 0x23FB7
+0xFCA1 0x2285F
+0xFCA2 0x61D3
+0xFCA3 0x28B9D
+0xFCA4 0x2995D
+0xFCA5 0x61D0
+0xFCA6 0x3932
+0xFCA7 0x22980
+0xFCA8 0x228C1
+0xFCA9 0x6023
+0xFCAA 0x615C
+0xFCAB 0x651E
+0xFCAC 0x638B
+0xFCAD 0x20118
+0xFCAE 0x62C5
+0xFCAF 0x21770
+0xFCB0 0x62D5
+0xFCB1 0x22E0D
+0xFCB2 0x636C
+0xFCB3 0x249DF
+0xFCB4 0x3A17
+0xFCB5 0x6438
+0xFCB6 0x63F8
+0xFCB7 0x2138E
+0xFCB8 0x217FC
+0xFCBA 0x6F8A
+0xFCBB 0x22E36
+0xFCBC 0x9814
+0xFCBD 0x2408C
+0xFCBE 0x2571D
+0xFCBF 0x64E1
+0xFCC0 0x64E5
+0xFCC1 0x947B
+0xFCC2 0x3A66
+0xFCC3 0x643A
+0xFCC4 0x3A57
+0xFCC5 0x654D
+0xFCC6 0x6F16
+0xFCC7 0x24A28
+0xFCC8 0x24A23
+0xFCC9 0x6585
+0xFCCA 0x656D
+0xFCCB 0x655F
+0xFCCC 0x2307E
+0xFCCD 0x65B5
+0xFCCE 0x24940
+0xFCCF 0x4B37
+0xFCD0 0x65D1
+0xFCD1 0x40D8
+0xFCD2 0x21829
+0xFCD3 0x65E0
+0xFCD4 0x65E3
+0xFCD5 0x5FDF
+0xFCD6 0x23400
+0xFCD7 0x6618
+0xFCD8 0x231F7
+0xFCD9 0x231F8
+0xFCDA 0x6644
+0xFCDB 0x231A4
+0xFCDC 0x231A5
+0xFCDD 0x664B
+0xFCDE 0x20E75
+0xFCDF 0x6667
+0xFCE0 0x251E6
+0xFCE1 0x6673
+0xFCE3 0x21E3D
+0xFCE4 0x23231
+0xFCE5 0x285F4
+0xFCE6 0x231C8
+0xFCE7 0x25313
+0xFCE8 0x77C5
+0xFCE9 0x228F7
+0xFCEA 0x99A4
+0xFCEB 0x6702
+0xFCEC 0x2439C
+0xFCED 0x24A21
+0xFCEE 0x3B2B
+0xFCEF 0x69FA
+0xFCF0 0x237C2
+0xFCF2 0x6767
+0xFCF3 0x6762
+0xFCF4 0x241CD
+0xFCF5 0x290ED
+0xFCF6 0x67D7
+0xFCF7 0x44E9
+0xFCF8 0x6822
+0xFCF9 0x6E50
+0xFCFA 0x923C
+0xFCFB 0x6801
+0xFCFC 0x233E6
+0xFCFD 0x26DA0
+0xFCFE 0x685D
+0xFD40 0x2346F
+0xFD41 0x69E1
+0xFD42 0x6A0B
+0xFD43 0x28ADF
+0xFD44 0x6973
+0xFD45 0x68C3
+0xFD46 0x235CD
+0xFD47 0x6901
+0xFD48 0x6900
+0xFD49 0x3D32
+0xFD4A 0x3A01
+0xFD4B 0x2363C
+0xFD4C 0x3B80
+0xFD4D 0x67AC
+0xFD4E 0x6961
+0xFD4F 0x28A4A
+0xFD50 0x42FC
+0xFD51 0x6936
+0xFD52 0x6998
+0xFD53 0x3BA1
+0xFD54 0x203C9
+0xFD55 0x8363
+0xFD56 0x5090
+0xFD57 0x69F9
+0xFD58 0x23659
+0xFD59 0x2212A
+0xFD5A 0x6A45
+0xFD5B 0x23703
+0xFD5C 0x6A9D
+0xFD5D 0x3BF3
+0xFD5E 0x67B1
+0xFD5F 0x6AC8
+0xFD60 0x2919C
+0xFD61 0x3C0D
+0xFD62 0x6B1D
+0xFD63 0x20923
+0xFD64 0x60DE
+0xFD65 0x6B35
+0xFD66 0x6B74
+0xFD67 0x227CD
+0xFD68 0x6EB5
+0xFD69 0x23ADB
+0xFD6A 0x203B5
+0xFD6B 0x21958
+0xFD6C 0x3740
+0xFD6D 0x5421
+0xFD6E 0x23B5A
+0xFD6F 0x6BE1
+0xFD70 0x23EFC
+0xFD71 0x6BDC
+0xFD72 0x6C37
+0xFD73 0x2248B
+0xFD74 0x248F1
+0xFD75 0x26B51
+0xFD76 0x6C5A
+0xFD77 0x8226
+0xFD78 0x6C79
+0xFD79 0x23DBC
+0xFD7A 0x44C5
+0xFD7B 0x23DBD
+0xFD7C 0x241A4
+0xFD7D 0x2490C
+0xFD7E 0x24900
+0xFDA1 0x23CC9
+0xFDA2 0x36E5
+0xFDA3 0x3CEB
+0xFDA4 0x20D32
+0xFDA5 0x9B83
+0xFDA6 0x231F9
+0xFDA7 0x22491
+0xFDA8 0x7F8F
+0xFDA9 0x6837
+0xFDAA 0x26D25
+0xFDAB 0x26DA1
+0xFDAC 0x26DEB
+0xFDAD 0x6D96
+0xFDAE 0x6D5C
+0xFDAF 0x6E7C
+0xFDB0 0x6F04
+0xFDB1 0x2497F
+0xFDB2 0x24085
+0xFDB3 0x26E72
+0xFDB4 0x8533
+0xFDB5 0x26F74
+0xFDB6 0x51C7
+0xFDB9 0x842E
+0xFDBA 0x28B21
+0xFDBC 0x23E2F
+0xFDBD 0x7453
+0xFDBE 0x23F82
+0xFDBF 0x79CC
+0xFDC0 0x6E4F
+0xFDC1 0x5A91
+0xFDC2 0x2304B
+0xFDC3 0x6FF8
+0xFDC4 0x370D
+0xFDC5 0x6F9D
+0xFDC6 0x23E30
+0xFDC7 0x6EFA
+0xFDC8 0x21497
+0xFDC9 0x2403D
+0xFDCA 0x4555
+0xFDCB 0x93F0
+0xFDCC 0x6F44
+0xFDCD 0x6F5C
+0xFDCE 0x3D4E
+0xFDCF 0x6F74
+0xFDD0 0x29170
+0xFDD1 0x3D3B
+0xFDD2 0x6F9F
+0xFDD3 0x24144
+0xFDD4 0x6FD3
+0xFDD5 0x24091
+0xFDD6 0x24155
+0xFDD7 0x24039
+0xFDD8 0x23FF0
+0xFDD9 0x23FB4
+0xFDDA 0x2413F
+0xFDDB 0x51DF
+0xFDDC 0x24156
+0xFDDD 0x24157
+0xFDDE 0x24140
+0xFDDF 0x261DD
+0xFDE0 0x704B
+0xFDE1 0x707E
+0xFDE2 0x70A7
+0xFDE3 0x7081
+0xFDE4 0x70CC
+0xFDE5 0x70D5
+0xFDE6 0x70D6
+0xFDE7 0x70DF
+0xFDE8 0x4104
+0xFDE9 0x3DE8
+0xFDEA 0x71B4
+0xFDEB 0x7196
+0xFDEC 0x24277
+0xFDED 0x712B
+0xFDEE 0x7145
+0xFDEF 0x5A88
+0xFDF0 0x714A
+0xFDF2 0x5C9C
+0xFDF3 0x24365
+0xFDF4 0x714F
+0xFDF5 0x9362
+0xFDF6 0x242C1
+0xFDF7 0x712C
+0xFDF8 0x2445A
+0xFDF9 0x24A27
+0xFDFA 0x24A22
+0xFDFB 0x71BA
+0xFDFC 0x28BE8
+0xFDFD 0x70BD
+0xFDFE 0x720E
+0xFE40 0x9442
+0xFE41 0x7215
+0xFE42 0x5911
+0xFE43 0x9443
+0xFE44 0x7224
+0xFE45 0x9341
+0xFE46 0x25605
+0xFE47 0x722E
+0xFE48 0x7240
+0xFE49 0x24974
+0xFE4A 0x68BD
+0xFE4B 0x7255
+0xFE4C 0x7257
+0xFE4D 0x3E55
+0xFE4E 0x23044
+0xFE4F 0x680D
+0xFE50 0x6F3D
+0xFE51 0x7282
+0xFE53 0x732B
+0xFE54 0x24823
+0xFE55 0x2882B
+0xFE56 0x48ED
+0xFE57 0x28804
+0xFE58 0x7328
+0xFE59 0x732E
+0xFE5A 0x73CF
+0xFE5B 0x73AA
+0xFE5C 0x20C3A
+0xFE5D 0x26A2E
+0xFE5E 0x73C9
+0xFE5F 0x7449
+0xFE60 0x241E2
+0xFE61 0x216E7
+0xFE62 0x24A24
+0xFE63 0x6623
+0xFE64 0x36C5
+0xFE65 0x249B7
+0xFE66 0x2498D
+0xFE67 0x249FB
+0xFE68 0x73F7
+0xFE69 0x7415
+0xFE6A 0x6903
+0xFE6B 0x24A26
+0xFE6C 0x7439
+0xFE6D 0x205C3
+0xFE6E 0x3ED7
+0xFE70 0x228AD
+0xFE71 0x7460
+0xFE72 0x28EB2
+0xFE73 0x7447
+0xFE74 0x73E4
+0xFE75 0x7476
+0xFE76 0x83B9
+0xFE77 0x746C
+0xFE78 0x3730
+0xFE79 0x7474
+0xFE7A 0x93F1
+0xFE7B 0x6A2C
+0xFE7C 0x7482
+0xFE7D 0x4953
+0xFE7E 0x24A8C
+0xFEA1 0x2415F
+0xFEA2 0x24A79
+0xFEA3 0x28B8F
+0xFEA4 0x5B46
+0xFEA5 0x28C03
+0xFEA6 0x2189E
+0xFEA7 0x74C8
+0xFEA8 0x21988
+0xFEA9 0x750E
+0xFEAB 0x751E
+0xFEAC 0x28ED9
+0xFEAD 0x21A4B
+0xFEAE 0x5BD7
+0xFEAF 0x28EAC
+0xFEB0 0x9385
+0xFEB1 0x754D
+0xFEB2 0x754A
+0xFEB3 0x7567
+0xFEB4 0x756E
+0xFEB5 0x24F82
+0xFEB6 0x3F04
+0xFEB7 0x24D13
+0xFEB8 0x758E
+0xFEB9 0x745D
+0xFEBA 0x759E
+0xFEBB 0x75B4
+0xFEBC 0x7602
+0xFEBD 0x762C
+0xFEBE 0x7651
+0xFEBF 0x764F
+0xFEC0 0x766F
+0xFEC1 0x7676
+0xFEC2 0x263F5
+0xFEC3 0x7690
+0xFEC4 0x81EF
+0xFEC5 0x37F8
+0xFEC6 0x26911
+0xFEC7 0x2690E
+0xFEC8 0x76A1
+0xFEC9 0x76A5
+0xFECA 0x76B7
+0xFECB 0x76CC
+0xFECC 0x26F9F
+0xFECD 0x8462
+0xFECE 0x2509D
+0xFECF 0x2517D
+0xFED0 0x21E1C
+0xFED1 0x771E
+0xFED2 0x7726
+0xFED3 0x7740
+0xFED4 0x64AF
+0xFED5 0x25220
+0xFED6 0x7758
+0xFED7 0x232AC
+0xFED8 0x77AF
+0xFED9 0x28964
+0xFEDA 0x28968
+0xFEDB 0x216C1
+0xFEDC 0x77F4
+0xFEDE 0x21376
+0xFEDF 0x24A12
+0xFEE0 0x68CA
+0xFEE1 0x78AF
+0xFEE2 0x78C7
+0xFEE3 0x78D3
+0xFEE4 0x96A5
+0xFEE5 0x792E
+0xFEE6 0x255E0
+0xFEE7 0x78D7
+0xFEE8 0x7934
+0xFEE9 0x78B1
+0xFEEA 0x2760C
+0xFEEB 0x8FB8
+0xFEEC 0x8884
+0xFEED 0x28B2B
+0xFEEE 0x26083
+0xFEEF 0x2261C
+0xFEF0 0x7986
+0xFEF1 0x8900
+0xFEF2 0x6902
+0xFEF3 0x7980
+0xFEF4 0x25857
+0xFEF5 0x799D
+0xFEF6 0x27B39
+0xFEF7 0x793C
+0xFEF8 0x79A9
+0xFEF9 0x6E2A
+0xFEFA 0x27126
+0xFEFB 0x3EA8
+0xFEFC 0x79C6
+0xFEFD 0x2910D
+0xFEFE 0x79D4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2008.c2b Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,4969 @@
+8740 F266
+8741 F267
+8742 F268
+8743 F269
+8744 F26A
+8745 F26B
+8746 F26C
+8747 F26D
+8748 F26E
+8749 F26F
+874A F270
+874B F271
+874C F272
+874D F273
+874E F274
+874F F275
+8750 F276
+8751 F277
+8752 F278
+8753 F279
+8754 F27A
+8755 F27B
+8756 F27C
+8757 F27D
+8758 F27E
+8759 F27F
+875A F280
+875B F281
+875C F282
+875D F283
+875E F284
+875F F285
+8760 F286
+8761 F287
+8762 F288
+8763 F289
+8764 F28A
+8765 F28B
+8767 F28D
+8768 F28E
+8769 F28F
+876A F290
+876B F291
+876C F292
+876D F293
+876E F294
+876F F295
+8770 F296
+8771 F297
+8772 F298
+8773 F299
+8774 F29A
+8775 F29B
+8776 F29C
+8777 F29D
+8778 F29E
+8779 F29F
+877A F2A0
+877B F2A1
+877C F2A2
+877D F2A3
+877E F2A4
+87A1 F2A5
+87A2 F2A6
+87A3 F2A7
+87A4 F2A8
+87A5 F2A9
+87A6 F2AA
+87A7 F2AB
+87A8 F2AC
+87A9 F2AD
+87AA F2AE
+87AB F2AF
+87AC F2B0
+87AD F2B1
+87AE F2B2
+87AF F2B3
+87B0 F2B4
+87B1 F2B5
+87B2 F2B6
+87B3 F2B7
+87B4 F2B8
+87B5 F2B9
+87B6 F2BA
+87B7 F2BB
+87B8 F2BC
+87B9 F2BD
+87BA F2BE
+87BB F2BF
+87BC F2C0
+87BD F2C1
+87BE F2C2
+87BF F2C3
+87C0 F2C4
+87C1 F2C5
+87C2 F2C6
+87C3 F2C7
+87C4 F2C8
+87C5 F2C9
+87C6 F2CA
+87C7 F2CB
+87C8 F2CC
+87C9 F2CD
+87CA F2CE
+87CB F2CF
+87CC F2D0
+87CD F2D1
+87CE F2D2
+87CF F2D3
+87D0 F2D4
+87D1 F2D5
+87D2 F2D6
+87D3 F2D7
+87D4 F2D8
+87D5 F2D9
+87D6 F2DA
+87D7 F2DB
+87D8 F2DC
+87D9 F2DD
+87DA F2DE
+87DB F2DF
+87DC F2E0
+87DD F2E1
+87DE F2E2
+87DF F2E3
+8840 F303
+8841 F304
+8842 F305
+8843 F306
+8844 F307
+8845 F308
+8846 F309
+8847 F30A
+8848 F30B
+8849 F30C
+884A F30D
+884B F30E
+884C F30F
+884D F310
+884E F311
+884F F312
+8850 F313
+8851 F314
+8852 F315
+8853 F316
+8854 F317
+8855 F318
+8856 F319
+8857 F31A
+8858 F31B
+8859 F31C
+885A F31D
+885B F31E
+885C F31F
+885D F320
+885E F321
+885F F322
+8860 F323
+8861 F324
+8862 F325
+8863 F326
+8864 F327
+8865 F328
+8866 F329
+8867 F32A
+8868 F32B
+8869 F32C
+886A F32D
+886B F32E
+886C F32F
+886D F330
+886E F331
+886F F332
+8870 F333
+8871 F334
+8872 F335
+8873 F336
+8874 F337
+8875 F338
+8876 F339
+8877 F33A
+8878 F33B
+8879 F33C
+887A F33D
+887B F33E
+887C F33F
+887D F340
+887E F341
+88A1 F342
+88A2 F343
+88A3 F344
+88A4 F345
+88A5 F346
+88A6 F347
+88A7 F348
+88A8 F349
+88A9 F34A
+88AA F34B
+8940 F3A0
+8941 F3A1
+8943 F3A3
+8946 F3A6
+8947 F3A7
+8948 F3A8
+8949 F3A9
+894C F3AC
+894D F3AD
+894E F3AE
+894F F3AF
+8950 F3B0
+8951 F3B1
+8952 F3B2
+8953 F3B3
+8954 F3B4
+8955 F3B5
+8956 F3B6
+8957 F3B7
+8958 F3B8
+8959 F3B9
+895A F3BA
+895B F3BB
+895C F3BC
+895D F3BD
+895E F3BE
+895F F3BF
+8960 F3C0
+8961 F3C1
+8962 F3C2
+8963 F3C3
+8964 F3C4
+8965 F3C5
+8966 F3C6
+8967 F3C7
+8968 F3C8
+8969 F3C9
+896A F3CA
+896B F3CB
+896C F3CC
+896D F3CD
+896E F3CE
+896F F3CF
+8970 F3D0
+8971 F3D1
+8972 F3D2
+8973 F3D3
+8974 F3D4
+8975 F3D5
+8976 F3D6
+8977 F3D7
+8978 F3D8
+8979 F3D9
+897A F3DA
+897B F3DB
+897C F3DC
+897D F3DD
+897E F3DE
+89A1 F3DF
+89A2 F3E0
+89A3 F3E1
+89A4 F3E2
+89A5 F3E3
+89A6 F3E4
+89AB F3E9
+89AC F3EA
+89AD F3EB
+89AE F3EC
+89B0 F3EE
+89B1 F3EF
+89B2 F3F0
+89B5 F3F3
+89B6 F3F4
+89B7 F3F5
+89B8 F3F6
+89B9 F3F7
+89BA F3F8
+89BB F3F9
+89BC F3FA
+89BD F3FB
+89BE F3FC
+89BF F3FD
+89C1 F3FF
+89C2 F400
+89C3 F401
+89C5 F403
+89C6 F404
+89C7 F405
+89C8 F406
+89C9 F407
+89CA F408
+89CB F409
+89CC F40A
+89CD F40B
+89CE F40C
+89CF F40D
+89D0 F40E
+89D1 F40F
+89D2 F410
+89D3 F411
+89D4 F412
+89D5 F413
+89D6 F414
+89D7 F415
+89D8 F416
+89D9 F417
+89DA F418
+89DB F419
+89DC F41A
+89DD F41B
+89DE F41C
+89DF F41D
+89E0 F41E
+89E1 F41F
+89E2 F420
+89E3 F421
+89E4 F422
+89E5 F423
+89E6 F424
+89E7 F425
+89E8 F426
+89E9 F427
+89EA F428
+89EB F429
+89EC F42A
+89ED F42B
+89EE F42C
+89EF F42D
+89F0 F42E
+89F1 F42F
+89F2 F430
+89F3 F431
+89F4 F432
+89F5 F433
+89F6 F434
+89F7 F435
+89F8 F436
+89F9 F437
+89FA F438
+89FB F439
+89FC F43A
+89FD F43B
+89FE F43C
+8A40 F43D
+8A41 F43E
+8A43 F440
+8A44 F441
+8A45 F442
+8A46 F443
+8A47 F444
+8A48 F445
+8A49 F446
+8A4A F447
+8A4B F448
+8A4C F449
+8A4D F44A
+8A4E F44B
+8A4F F44C
+8A50 F44D
+8A51 F44E
+8A52 F44F
+8A53 F450
+8A54 F451
+8A55 F452
+8A56 F453
+8A57 F454
+8A58 F455
+8A59 F456
+8A5A F457
+8A5B F458
+8A5C F459
+8A5D F45A
+8A5E F45B
+8A5F F45C
+8A60 F45D
+8A61 F45E
+8A62 F45F
+8A64 F461
+8A65 F462
+8A66 F463
+8A67 F464
+8A68 F465
+8A69 F466
+8A6A F467
+8A6B F468
+8A6C F469
+8A6D F46A
+8A6E F46B
+8A6F F46C
+8A70 F46D
+8A71 F46E
+8A72 F46F
+8A73 F470
+8A74 F471
+8A76 F473
+8A77 F474
+8A78 F475
+8A79 F476
+8A7A F477
+8A7B F478
+8A7C F479
+8A7D F47A
+8A7E F47B
+8AA1 F47C
+8AA2 F47D
+8AA3 F47E
+8AA4 F47F
+8AA5 F480
+8AA6 F481
+8AA7 F482
+8AA8 F483
+8AA9 F484
+8AAA F485
+8AAC F487
+8AAD F488
+8AAE F489
+8AAF F48A
+8AB0 F48B
+8AB2 F48D
+8AB3 F48E
+8AB4 F48F
+8AB5 F490
+8AB6 F491
+8AB7 F492
+8AB8 F493
+8AB9 F494
+8ABB F496
+8ABC F497
+8ABD F498
+8ABE F499
+8ABF F49A
+8AC0 F49B
+8AC1 F49C
+8AC2 F49D
+8AC3 F49E
+8AC4 F49F
+8AC5 F4A0
+8AC6 F4A1
+8AC7 F4A2
+8AC9 F4A4
+8ACA F4A5
+8ACB F4A6
+8ACC F4A7
+8ACE F4A9
+8ACF F4AA
+8AD0 F4AB
+8AD1 F4AC
+8AD2 F4AD
+8AD3 F4AE
+8AD4 F4AF
+8AD5 F4B0
+8AD6 F4B1
+8AD7 F4B2
+8AD8 F4B3
+8AD9 F4B4
+8ADA F4B5
+8ADB F4B6
+8ADC F4B7
+8ADF F4BA
+8AE0 F4BB
+8AE1 F4BC
+8AE2 F4BD
+8AE3 F4BE
+8AE4 F4BF
+8AE5 F4C0
+8AE6 F4C1
+8AE7 F4C2
+8AE8 F4C3
+8AE9 F4C4
+8AEA F4C5
+8AEB F4C6
+8AEC F4C7
+8AED F4C8
+8AEE F4C9
+8AEF F4CA
+8AF0 F4CB
+8AF1 F4CC
+8AF2 F4CD
+8AF3 F4CE
+8AF4 F4CF
+8AF6 F4D1
+8AF7 F4D2
+8AF8 F4D3
+8AF9 F4D4
+8AFA F4D5
+8AFB F4D6
+8AFC F4D7
+8AFD F4D8
+8AFE F4D9
+8B40 F4DA
+8B41 F4DB
+8B42 F4DC
+8B43 F4DD
+8B44 F4DE
+8B45 F4DF
+8B46 F4E0
+8B47 F4E1
+8B48 F4E2
+8B49 F4E3
+8B4A F4E4
+8B4B F4E5
+8B4C F4E6
+8B4D F4E7
+8B4E F4E8
+8B4F F4E9
+8B50 F4EA
+8B51 F4EB
+8B52 F4EC
+8B53 F4ED
+8B55 F4EF
+8B56 F4F0
+8B57 F4F1
+8B58 F4F2
+8B59 F4F3
+8B5A F4F4
+8B5B F4F5
+8B5C F4F6
+8B5D F4F7
+8B5E F4F8
+8B5F F4F9
+8B60 F4FA
+8B61 F4FB
+8B62 F4FC
+8B63 F4FD
+8B64 F4FE
+8B65 F4FF
+8B66 F500
+8B67 F501
+8B68 F502
+8B69 F503
+8B6A F504
+8B6B F505
+8B6C F506
+8B6D F507
+8B6E F508
+8B6F F509
+8B70 F50A
+8B71 F50B
+8B72 F50C
+8B73 F50D
+8B74 F50E
+8B75 F50F
+8B76 F510
+8B77 F511
+8B78 F512
+8B79 F513
+8B7A F514
+8B7B F515
+8B7C F516
+8B7D F517
+8B7E F518
+8BA1 F519
+8BA2 F51A
+8BA3 F51B
+8BA4 F51C
+8BA5 F51D
+8BA6 F51E
+8BA7 F51F
+8BA8 F520
+8BA9 F521
+8BAA F522
+8BAB F523
+8BAC F524
+8BAD F525
+8BAE F526
+8BAF F527
+8BB0 F528
+8BB1 F529
+8BB2 F52A
+8BB3 F52B
+8BB4 F52C
+8BB5 F52D
+8BB6 F52E
+8BB7 F52F
+8BB8 F530
+8BB9 F531
+8BBA F532
+8BBB F533
+8BBC F534
+8BBD F535
+8BBE F536
+8BBF F537
+8BC0 F538
+8BC1 F539
+8BC2 F53A
+8BC3 F53B
+8BC4 F53C
+8BC5 F53D
+8BC6 F53E
+8BC7 F53F
+8BC8 F540
+8BC9 F541
+8BCA F542
+8BCB F543
+8BCC F544
+8BCD F545
+8BCE F546
+8BCF F547
+8BD0 F548
+8BD1 F549
+8BD2 F54A
+8BD3 F54B
+8BD4 F54C
+8BD5 F54D
+8BD6 F54E
+8BD7 F54F
+8BD8 F550
+8BD9 F551
+8BDA F552
+8BDB F553
+8BDC F554
+8BDE F556
+8BDF F557
+8BE0 F558
+8BE1 F559
+8BE2 F55A
+8BE3 F55B
+8BE4 F55C
+8BE5 F55D
+8BE6 F55E
+8BE7 F55F
+8BE8 F560
+8BE9 F561
+8BEA F562
+8BEB F563
+8BEC F564
+8BED F565
+8BEE F566
+8BEF F567
+8BF0 F568
+8BF1 F569
+8BF2 F56A
+8BF3 F56B
+8BF4 F56C
+8BF5 F56D
+8BF6 F56E
+8BF7 F56F
+8BF8 F570
+8BF9 F571
+8BFA F572
+8BFB F573
+8BFC F574
+8BFD F575
+8C40 F577
+8C41 F578
+8C42 F579
+8C43 F57A
+8C44 F57B
+8C45 F57C
+8C46 F57D
+8C47 F57E
+8C48 F57F
+8C49 F580
+8C4A F581
+8C4B F582
+8C4C F583
+8C4D F584
+8C4E F585
+8C4F F586
+8C50 F587
+8C51 F588
+8C52 F589
+8C53 F58A
+8C54 F58B
+8C55 F58C
+8C56 F58D
+8C57 F58E
+8C58 F58F
+8C59 F590
+8C5A F591
+8C5B F592
+8C5C F593
+8C5D F594
+8C5E F595
+8C5F F596
+8C60 F597
+8C61 F598
+8C62 F599
+8C63 F59A
+8C64 F59B
+8C65 F59C
+8C66 F59D
+8C67 F59E
+8C68 F59F
+8C69 F5A0
+8C6A F5A1
+8C6B F5A2
+8C6C F5A3
+8C6D F5A4
+8C6E F5A5
+8C6F F5A6
+8C70 F5A7
+8C71 F5A8
+8C72 F5A9
+8C73 F5AA
+8C74 F5AB
+8C75 F5AC
+8C76 F5AD
+8C77 F5AE
+8C78 F5AF
+8C79 F5B0
+8C7A F5B1
+8C7B F5B2
+8C7C F5B3
+8C7D F5B4
+8C7E F5B5
+8CA1 F5B6
+8CA2 F5B7
+8CA3 F5B8
+8CA4 F5B9
+8CA5 F5BA
+8CA7 F5BC
+8CA8 F5BD
+8CA9 F5BE
+8CAA F5BF
+8CAB F5C0
+8CAC F5C1
+8CAD F5C2
+8CAE F5C3
+8CAF F5C4
+8CB0 F5C5
+8CB1 F5C6
+8CB2 F5C7
+8CB3 F5C8
+8CB4 F5C9
+8CB5 F5CA
+8CB6 F5CB
+8CB7 F5CC
+8CB8 F5CD
+8CB9 F5CE
+8CBA F5CF
+8CBB F5D0
+8CBC F5D1
+8CBD F5D2
+8CBE F5D3
+8CBF F5D4
+8CC0 F5D5
+8CC1 F5D6
+8CC2 F5D7
+8CC3 F5D8
+8CC4 F5D9
+8CC5 F5DA
+8CC9 F5DE
+8CCA F5DF
+8CCB F5E0
+8CCC F5E1
+8CCE F5E3
+8CCF F5E4
+8CD0 F5E5
+8CD1 F5E6
+8CD2 F5E7
+8CD3 F5E8
+8CD4 F5E9
+8CD5 F5EA
+8CD6 F5EB
+8CD7 F5EC
+8CD8 F5ED
+8CD9 F5EE
+8CDA F5EF
+8CDB F5F0
+8CDC F5F1
+8CDD F5F2
+8CDE F5F3
+8CDF F5F4
+8CE0 F5F5
+8CE1 F5F6
+8CE2 F5F7
+8CE3 F5F8
+8CE4 F5F9
+8CE6 F5FB
+8CE7 F5FC
+8CE8 F5FD
+8CE9 F5FE
+8CEA F5FF
+8CEB F600
+8CEC F601
+8CED F602
+8CEE F603
+8CEF F604
+8CF0 F605
+8CF1 F606
+8CF2 F607
+8CF3 F608
+8CF4 F609
+8CF5 F60A
+8CF6 F60B
+8CF7 F60C
+8CF8 F60D
+8CF9 F60E
+8CFA F60F
+8CFB F610
+8CFC F611
+8CFD F612
+8CFE F613
+8D40 F614
+8D42 F616
+8D43 F617
+8D44 F618
+8D45 F619
+8D46 F61A
+8D47 F61B
+8D48 F61C
+8D49 F61D
+8D4A F61E
+8D4B F61F
+8D4C F620
+8D4D F621
+8D4E F622
+8D4F F623
+8D50 F624
+8D51 F625
+8D52 F626
+8D53 F627
+8D54 F628
+8D55 F629
+8D56 F62A
+8D57 F62B
+8D58 F62C
+8D59 F62D
+8D5A F62E
+8D5B F62F
+8D5C F630
+8D5D F631
+8D5E F632
+8D5F F633
+8D60 F634
+8D61 F635
+8D62 F636
+8D63 F637
+8D64 F638
+8D65 F639
+8D66 F63A
+8D67 F63B
+8D68 F63C
+8D69 F63D
+8D6A F63E
+8D6B F63F
+8D6C F640
+8D6D F641
+8D6E F642
+8D6F F643
+8D70 F644
+8D71 F645
+8D72 F646
+8D73 F647
+8D74 F648
+8D75 F649
+8D76 F64A
+8D77 F64B
+8D78 F64C
+8D79 F64D
+8D7A F64E
+8D7B F64F
+8D7C F650
+8D7D F651
+8D7E F652
+8DA1 F653
+8DA2 F654
+8DA3 F655
+8DA4 F656
+8DA5 F657
+8DA6 F658
+8DA7 F659
+8DA8 F65A
+8DA9 F65B
+8DAA F65C
+8DAB F65D
+8DAC F65E
+8DAD F65F
+8DAE F660
+8DAF F661
+8DB0 F662
+8DB1 F663
+8DB2 F664
+8DB3 F665
+8DB4 F666
+8DB5 F667
+8DB6 F668
+8DB7 F669
+8DB8 F66A
+8DB9 F66B
+8DBA F66C
+8DBB F66D
+8DBC F66E
+8DBD F66F
+8DBE F670
+8DBF F671
+8DC0 F672
+8DC1 F673
+8DC2 F674
+8DC3 F675
+8DC4 F676
+8DC5 F677
+8DC6 F678
+8DC7 F679
+8DC8 F67A
+8DC9 F67B
+8DCA F67C
+8DCB F67D
+8DCC F67E
+8DCD F67F
+8DCE F680
+8DCF F681
+8DD0 F682
+8DD1 F683
+8DD2 F684
+8DD3 F685
+8DD4 F686
+8DD5 F687
+8DD6 F688
+8DD7 F689
+8DD8 F68A
+8DD9 F68B
+8DDA F68C
+8DDB F68D
+8DDC F68E
+8DDD F68F
+8DDE F690
+8DDF F691
+8DE0 F692
+8DE1 F693
+8DE2 F694
+8DE3 F695
+8DE4 F696
+8DE5 F697
+8DE6 F698
+8DE7 F699
+8DE8 F69A
+8DE9 F69B
+8DEA F69C
+8DEB F69D
+8DEC F69E
+8DED F69F
+8DEE F6A0
+8DEF F6A1
+8DF0 F6A2
+8DF1 F6A3
+8DF2 F6A4
+8DF3 F6A5
+8DF4 F6A6
+8DF5 F6A7
+8DF6 F6A8
+8DF7 F6A9
+8DF8 F6AA
+8DF9 F6AB
+8DFA F6AC
+8DFB F6AD
+8DFC F6AE
+8DFD F6AF
+8DFE F6B0
+8E40 E311
+8E41 E312
+8E42 E313
+8E43 E314
+8E44 E315
+8E45 E316
+8E46 E317
+8E47 E318
+8E48 E319
+8E49 E31A
+8E4A E31B
+8E4B E31C
+8E4C E31D
+8E4D E31E
+8E4E E31F
+8E4F E320
+8E50 E321
+8E51 E322
+8E52 E323
+8E53 E324
+8E54 E325
+8E55 E326
+8E56 E327
+8E57 E328
+8E58 E329
+8E59 E32A
+8E5A E32B
+8E5B E32C
+8E5C E32D
+8E5D E32E
+8E5E E32F
+8E5F E330
+8E60 E331
+8E61 E332
+8E62 E333
+8E63 E334
+8E64 E335
+8E65 E336
+8E66 E337
+8E67 E338
+8E68 E339
+8E6A E33B
+8E6B E33C
+8E6C E33D
+8E6D E33E
+8E6E E33F
+8E70 E341
+8E71 E342
+8E72 E343
+8E73 E344
+8E74 E345
+8E75 E346
+8E76 E347
+8E77 E348
+8E78 E349
+8E79 E34A
+8E7A E34B
+8E7B E34C
+8E7C E34D
+8E7D E34E
+8EA1 E350
+8EA2 E351
+8EA3 E352
+8EA4 E353
+8EA5 E354
+8EA6 E355
+8EA7 E356
+8EA8 E357
+8EA9 E358
+8EAA E359
+8EAC E35B
+8EAD E35C
+8EAE E35D
+8EAF E35E
+8EB0 E35F
+8EB1 E360
+8EB2 E361
+8EB3 E362
+8EB5 E364
+8EB6 E365
+8EB7 E366
+8EB8 E367
+8EB9 E368
+8EBA E369
+8EBB E36A
+8EBC E36B
+8EBD E36C
+8EBE E36D
+8EBF E36E
+8EC0 E36F
+8EC1 E370
+8EC2 E371
+8EC3 E372
+8EC4 E373
+8EC5 E374
+8EC6 E375
+8EC7 E376
+8EC8 E377
+8EC9 E378
+8ECA E379
+8ECB E37A
+8ECC E37B
+8ECE E37D
+8ECF E37E
+8ED1 E380
+8ED2 E381
+8ED3 E382
+8ED4 E383
+8ED5 E384
+8ED6 E385
+8ED7 E386
+8ED8 E387
+8ED9 E388
+8EDA E389
+8EDB E38A
+8EDC E38B
+8EDD E38C
+8EDE E38D
+8EDF E38E
+8EE0 E38F
+8EE1 E390
+8EE2 E391
+8EE3 E392
+8EE4 E393
+8EE5 E394
+8EE6 E395
+8EE7 E396
+8EE8 E397
+8EE9 E398
+8EEA E399
+8EEB E39A
+8EEC E39B
+8EED E39C
+8EEE E39D
+8EEF E39E
+8EF0 E39F
+8EF1 E3A0
+8EF2 E3A1
+8EF3 E3A2
+8EF4 E3A3
+8EF5 E3A4
+8EF6 E3A5
+8EF7 E3A6
+8EF8 E3A7
+8EF9 E3A8
+8EFA E3A9
+8EFB E3AA
+8EFC E3AB
+8EFD E3AC
+8EFE E3AD
+8F40 E3AE
+8F41 E3AF
+8F42 E3B0
+8F43 E3B1
+8F44 E3B2
+8F45 E3B3
+8F46 E3B4
+8F47 E3B5
+8F48 E3B6
+8F49 E3B7
+8F4A E3B8
+8F4B E3B9
+8F4C E3BA
+8F4D E3BB
+8F4E E3BC
+8F4F E3BD
+8F50 E3BE
+8F51 E3BF
+8F52 E3C0
+8F53 E3C1
+8F54 E3C2
+8F55 E3C3
+8F56 E3C4
+8F58 E3C6
+8F59 E3C7
+8F5A E3C8
+8F5B E3C9
+8F5C E3CA
+8F5D E3CB
+8F5E E3CC
+8F5F E3CD
+8F60 E3CE
+8F61 E3CF
+8F62 E3D0
+8F63 E3D1
+8F64 E3D2
+8F65 E3D3
+8F66 E3D4
+8F67 E3D5
+8F68 E3D6
+8F6A E3D8
+8F6B E3D9
+8F6C E3DA
+8F6D E3DB
+8F6F E3DD
+8F70 E3DE
+8F71 E3DF
+8F72 E3E0
+8F73 E3E1
+8F74 E3E2
+8F75 E3E3
+8F76 E3E4
+8F77 E3E5
+8F78 E3E6
+8F79 E3E7
+8F7A E3E8
+8F7B E3E9
+8F7C E3EA
+8F7D E3EB
+8F7E E3EC
+8FA1 E3ED
+8FA2 E3EE
+8FA3 E3EF
+8FA4 E3F0
+8FA5 E3F1
+8FA6 E3F2
+8FA7 E3F3
+8FA8 E3F4
+8FA9 E3F5
+8FAA E3F6
+8FAB E3F7
+8FAC E3F8
+8FAD E3F9
+8FAE E3FA
+8FAF E3FB
+8FB0 E3FC
+8FB1 E3FD
+8FB2 E3FE
+8FB3 E3FF
+8FB4 E400
+8FB5 E401
+8FB6 E402
+8FB7 E403
+8FB8 E404
+8FB9 E405
+8FBA E406
+8FBB E407
+8FBC E408
+8FBD E409
+8FBE E40A
+8FBF E40B
+8FC0 E40C
+8FC1 E40D
+8FC2 E40E
+8FC3 E40F
+8FC4 E410
+8FC5 E411
+8FC6 E412
+8FC7 E413
+8FC8 E414
+8FC9 E415
+8FCA E416
+8FCD E419
+8FCE E41A
+8FCF E41B
+8FD0 E41C
+8FD1 E41D
+8FD2 E41E
+8FD3 E41F
+8FD4 E420
+8FD5 E421
+8FD6 E422
+8FD7 E423
+8FD8 E424
+8FD9 E425
+8FDA E426
+8FDB E427
+8FDC E428
+8FDD E429
+8FDE E42A
+8FDF E42B
+8FE0 E42C
+8FE1 E42D
+8FE2 E42E
+8FE3 E42F
+8FE4 E430
+8FE5 E431
+8FE6 E432
+8FE7 E433
+8FE8 E434
+8FE9 E435
+8FEA E436
+8FEB E437
+8FEC E438
+8FED E439
+8FEE E43A
+8FEF E43B
+8FF0 E43C
+8FF1 E43D
+8FF2 E43E
+8FF3 E43F
+8FF4 E440
+8FF5 E441
+8FF6 E442
+8FF7 E443
+8FF8 E444
+8FF9 E445
+8FFA E446
+8FFB E447
+8FFC E448
+8FFD E449
+9040 E44B
+9041 E44C
+9042 E44D
+9043 E44E
+9044 E44F
+9045 E450
+9046 E451
+9047 E452
+9048 E453
+9049 E454
+904A E455
+904B E456
+904C E457
+904D E458
+904E E459
+904F E45A
+9050 E45B
+9051 E45C
+9052 E45D
+9053 E45E
+9054 E45F
+9055 E460
+9056 E461
+9057 E462
+9058 E463
+9059 E464
+905A E465
+905B E466
+905C E467
+905D E468
+905E E469
+905F E46A
+9060 E46B
+9061 E46C
+9062 E46D
+9063 E46E
+9064 E46F
+9065 E470
+9066 E471
+9067 E472
+9068 E473
+9069 E474
+906A E475
+906B E476
+906C E477
+906E E479
+906F E47A
+9070 E47B
+9071 E47C
+9072 E47D
+9073 E47E
+9074 E47F
+9075 E480
+9076 E481
+9077 E482
+9078 E483
+9079 E484
+907B E486
+907C E487
+907D E488
+907E E489
+90A1 E48A
+90A2 E48B
+90A3 E48C
+90A4 E48D
+90A5 E48E
+90A6 E48F
+90A7 E490
+90A8 E491
+90A9 E492
+90AA E493
+90AB E494
+90AC E495
+90AD E496
+90AE E497
+90AF E498
+90B0 E499
+90B1 E49A
+90B2 E49B
+90B3 E49C
+90B4 E49D
+90B5 E49E
+90B6 E49F
+90B7 E4A0
+90B8 E4A1
+90B9 E4A2
+90BA E4A3
+90BB E4A4
+90BC E4A5
+90BD E4A6
+90BE E4A7
+90BF E4A8
+90C0 E4A9
+90C1 E4AA
+90C2 E4AB
+90C3 E4AC
+90C4 E4AD
+90C5 E4AE
+90C6 E4AF
+90C7 E4B0
+90C8 E4B1
+90C9 E4B2
+90CA E4B3
+90CB E4B4
+90CC E4B5
+90CD E4B6
+90CE E4B7
+90CF E4B8
+90D0 E4B9
+90D1 E4BA
+90D2 E4BB
+90D3 E4BC
+90D4 E4BD
+90D5 E4BE
+90D6 E4BF
+90D7 E4C0
+90D8 E4C1
+90D9 E4C2
+90DA E4C3
+90DB E4C4
+90DD E4C6
+90DE E4C7
+90DF E4C8
+90E0 E4C9
+90E1 E4CA
+90E2 E4CB
+90E3 E4CC
+90E4 E4CD
+90E5 E4CE
+90E6 E4CF
+90E7 E4D0
+90E8 E4D1
+90E9 E4D2
+90EA E4D3
+90EB E4D4
+90EC E4D5
+90ED E4D6
+90EE E4D7
+90EF E4D8
+90F0 E4D9
+90F2 E4DB
+90F3 E4DC
+90F4 E4DD
+90F5 E4DE
+90F6 E4DF
+90F7 E4E0
+90F8 E4E1
+90F9 E4E2
+90FA E4E3
+90FB E4E4
+90FC E4E5
+90FD E4E6
+90FE E4E7
+9140 E4E8
+9141 E4E9
+9142 E4EA
+9143 E4EB
+9144 E4EC
+9145 E4ED
+9146 E4EE
+9147 E4EF
+9148 E4F0
+9149 E4F1
+914A E4F2
+914B E4F3
+914C E4F4
+914D E4F5
+914E E4F6
+914F E4F7
+9150 E4F8
+9151 E4F9
+9152 E4FA
+9153 E4FB
+9154 E4FC
+9155 E4FD
+9156 E4FE
+9157 E4FF
+9158 E500
+9159 E501
+915A E502
+915B E503
+915C E504
+915D E505
+915E E506
+915F E507
+9160 E508
+9161 E509
+9162 E50A
+9163 E50B
+9164 E50C
+9165 E50D
+9166 E50E
+9167 E50F
+9168 E510
+9169 E511
+916A E512
+916B E513
+916C E514
+916D E515
+916E E516
+916F E517
+9170 E518
+9171 E519
+9172 E51A
+9173 E51B
+9174 E51C
+9175 E51D
+9176 E51E
+9177 E51F
+9178 E520
+9179 E521
+917A E522
+917B E523
+917C E524
+917D E525
+917E E526
+91A1 E527
+91A2 E528
+91A3 E529
+91A4 E52A
+91A5 E52B
+91A6 E52C
+91A7 E52D
+91A8 E52E
+91A9 E52F
+91AA E530
+91AB E531
+91AC E532
+91AD E533
+91AE E534
+91AF E535
+91B0 E536
+91B1 E537
+91B2 E538
+91B3 E539
+91B4 E53A
+91B5 E53B
+91B6 E53C
+91B7 E53D
+91B8 E53E
+91B9 E53F
+91BA E540
+91BB E541
+91BC E542
+91BD E543
+91BE E544
+91C0 E546
+91C1 E547
+91C2 E548
+91C3 E549
+91C4 E54A
+91C5 E54B
+91C6 E54C
+91C7 E54D
+91C8 E54E
+91C9 E54F
+91CA E550
+91CB E551
+91CC E552
+91CD E553
+91CE E554
+91CF E555
+91D0 E556
+91D1 E557
+91D2 E558
+91D3 E559
+91D4 E55A
+91D5 E55B
+91D6 E55C
+91D7 E55D
+91D8 E55E
+91D9 E55F
+91DA E560
+91DB E561
+91DC E562
+91DD E563
+91DE E564
+91DF E565
+91E0 E566
+91E1 E567
+91E2 E568
+91E3 E569
+91E4 E56A
+91E5 E56B
+91E6 E56C
+91E7 E56D
+91E8 E56E
+91E9 E56F
+91EA E570
+91EB E571
+91EC E572
+91ED E573
+91EE E574
+91EF E575
+91F0 E576
+91F1 E577
+91F2 E578
+91F3 E579
+91F4 E57A
+91F5 E57B
+91F6 E57C
+91F7 E57D
+91F8 E57E
+91F9 E57F
+91FA E580
+91FB E581
+91FC E582
+91FD E583
+91FE E584
+9240 E585
+9241 E586
+9242 E587
+9243 E588
+9245 E58A
+9246 E58B
+9247 E58C
+9248 E58D
+9249 E58E
+924A E58F
+924B E590
+924C E591
+924D E592
+924E E593
+924F E594
+9250 E595
+9251 E596
+9252 E597
+9253 E598
+9254 E599
+9255 E59A
+9256 E59B
+9257 E59C
+9258 E59D
+9259 E59E
+925A E59F
+925B E5A0
+925C E5A1
+925D E5A2
+925E E5A3
+925F E5A4
+9260 E5A5
+9261 E5A6
+9262 E5A7
+9263 E5A8
+9264 E5A9
+9265 E5AA
+9266 E5AB
+9267 E5AC
+9268 E5AD
+9269 E5AE
+926A E5AF
+926B E5B0
+926C E5B1
+926D E5B2
+926E E5B3
+926F E5B4
+9270 E5B5
+9271 E5B6
+9272 E5B7
+9273 E5B8
+9274 E5B9
+9275 E5BA
+9276 E5BB
+9277 E5BC
+9278 E5BD
+9279 E5BE
+927A E5BF
+927B E5C0
+927C E5C1
+927D E5C2
+927E E5C3
+92A1 E5C4
+92A2 E5C5
+92A3 E5C6
+92A4 E5C7
+92A5 E5C8
+92A6 E5C9
+92A7 E5CA
+92A8 E5CB
+92A9 E5CC
+92AA E5CD
+92AB E5CE
+92AC E5CF
+92AD E5D0
+92AE E5D1
+92B3 E5D6
+92B4 E5D7
+92B5 E5D8
+92B6 E5D9
+92B7 E5DA
+92B8 E5DB
+92B9 E5DC
+92BA E5DD
+92BB E5DE
+92BC E5DF
+92BD E5E0
+92BE E5E1
+92BF E5E2
+92C0 E5E3
+92C1 E5E4
+92C2 E5E5
+92C3 E5E6
+92C4 E5E7
+92C5 E5E8
+92C6 E5E9
+92C7 E5EA
+92C9 E5EC
+92CA E5ED
+92CB E5EE
+92CC E5EF
+92CD E5F0
+92CE E5F1
+92CF E5F2
+92D0 E5F3
+92D2 E5F5
+92D3 E5F6
+92D4 E5F7
+92D5 E5F8
+92D6 E5F9
+92D7 E5FA
+92D8 E5FB
+92D9 E5FC
+92DA E5FD
+92DB E5FE
+92DC E5FF
+92DD E600
+92DE E601
+92DF E602
+92E0 E603
+92E1 E604
+92E2 E605
+92E3 E606
+92E4 E607
+92E5 E608
+92E6 E609
+92E7 E60A
+92E8 E60B
+92E9 E60C
+92EA E60D
+92EB E60E
+92EC E60F
+92ED E610
+92EE E611
+92EF E612
+92F0 E613
+92F1 E614
+92F2 E615
+92F3 E616
+92F4 E617
+92F5 E618
+92F6 E619
+92F7 E61A
+92F8 E61B
+92F9 E61C
+92FA E61D
+92FB E61E
+92FC E61F
+92FD E620
+92FE E621
+9340 E622
+9341 E623
+9342 E624
+9343 E625
+9344 E626
+9345 E627
+9346 E628
+9347 E629
+9348 E62A
+9349 E62B
+934A E62C
+934B E62D
+934C E62E
+934D E62F
+934E E630
+934F E631
+9350 E632
+9351 E633
+9352 E634
+9353 E635
+9354 E636
+9355 E637
+9356 E638
+9357 E639
+9358 E63A
+9359 E63B
+935A E63C
+935B E63D
+935C E63E
+935D E63F
+935E E640
+935F E641
+9360 E642
+9361 E643
+9362 E644
+9363 E645
+9364 E646
+9365 E647
+9366 E648
+9367 E649
+9368 E64A
+9369 E64B
+936A E64C
+936B E64D
+936C E64E
+936D E64F
+936E E650
+936F E651
+9370 E652
+9371 E653
+9372 E654
+9373 E655
+9374 E656
+9375 E657
+9376 E658
+9377 E659
+9378 E65A
+9379 E65B
+937A E65C
+937B E65D
+937C E65E
+937D E65F
+937E E660
+93A1 E661
+93A2 E662
+93A3 E663
+93A4 E664
+93A5 E665
+93A6 E666
+93A7 E667
+93A8 E668
+93A9 E669
+93AA E66A
+93AB E66B
+93AC E66C
+93AD E66D
+93AE E66E
+93AF E66F
+93B0 E670
+93B1 E671
+93B2 E672
+93B3 E673
+93B4 E674
+93B5 E675
+93B6 E676
+93B7 E677
+93B8 E678
+93B9 E679
+93BA E67A
+93BB E67B
+93BC E67C
+93BD E67D
+93BE E67E
+93BF E67F
+93C0 E680
+93C1 E681
+93C2 E682
+93C3 E683
+93C4 E684
+93C5 E685
+93C6 E686
+93C7 E687
+93C8 E688
+93C9 E689
+93CA E68A
+93CB E68B
+93CC E68C
+93CD E68D
+93CE E68E
+93CF E68F
+93D0 E690
+93D1 E691
+93D2 E692
+93D3 E693
+93D4 E694
+93D5 E695
+93D6 E696
+93D7 E697
+93D8 E698
+93D9 E699
+93DA E69A
+93DB E69B
+93DC E69C
+93DD E69D
+93DE E69E
+93DF E69F
+93E0 E6A0
+93E1 E6A1
+93E2 E6A2
+93E3 E6A3
+93E4 E6A4
+93E5 E6A5
+93E6 E6A6
+93E7 E6A7
+93E8 E6A8
+93E9 E6A9
+93EA E6AA
+93EB E6AB
+93EC E6AC
+93ED E6AD
+93EE E6AE
+93EF E6AF
+93F0 E6B0
+93F1 E6B1
+93F2 E6B2
+93F3 E6B3
+93F4 E6B4
+93F5 E6B5
+93F6 E6B6
+93F7 E6B7
+93F8 E6B8
+93F9 E6B9
+93FA E6BA
+93FB E6BB
+93FC E6BC
+93FD E6BD
+93FE E6BE
+9440 E6BF
+9441 E6C0
+9442 E6C1
+9443 E6C2
+9444 E6C3
+9445 E6C4
+9446 E6C5
+9448 E6C7
+9449 E6C8
+944A E6C9
+944B E6CA
+944C E6CB
+944D E6CC
+944E E6CD
+944F E6CE
+9450 E6CF
+9451 E6D0
+9452 E6D1
+9453 E6D2
+9454 E6D3
+9455 E6D4
+9456 E6D5
+9457 E6D6
+9458 E6D7
+9459 E6D8
+945A E6D9
+945B E6DA
+945C E6DB
+945D E6DC
+945E E6DD
+945F E6DE
+9460 E6DF
+9461 E6E0
+9462 E6E1
+9463 E6E2
+9464 E6E3
+9465 E6E4
+9466 E6E5
+9467 E6E6
+9468 E6E7
+9469 E6E8
+946A E6E9
+946B E6EA
+946C E6EB
+946D E6EC
+946E E6ED
+946F E6EE
+9470 E6EF
+9471 E6F0
+9472 E6F1
+9473 E6F2
+9474 E6F3
+9475 E6F4
+9476 E6F5
+9477 E6F6
+9478 E6F7
+9479 E6F8
+947A E6F9
+947B E6FA
+947C E6FB
+947D E6FC
+947E E6FD
+94A1 E6FE
+94A2 E6FF
+94A3 E700
+94A4 E701
+94A5 E702
+94A6 E703
+94A7 E704
+94A8 E705
+94A9 E706
+94AA E707
+94AB E708
+94AC E709
+94AD E70A
+94AE E70B
+94AF E70C
+94B0 E70D
+94B1 E70E
+94B2 E70F
+94B3 E710
+94B4 E711
+94B5 E712
+94B6 E713
+94B7 E714
+94B8 E715
+94B9 E716
+94BA E717
+94BB E718
+94BC E719
+94BD E71A
+94BE E71B
+94BF E71C
+94C0 E71D
+94C1 E71E
+94C2 E71F
+94C3 E720
+94C4 E721
+94C5 E722
+94C6 E723
+94C7 E724
+94C8 E725
+94C9 E726
+94CB E728
+94CC E729
+94CD E72A
+94CE E72B
+94CF E72C
+94D0 E72D
+94D1 E72E
+94D2 E72F
+94D3 E730
+94D4 E731
+94D5 E732
+94D6 E733
+94D7 E734
+94D8 E735
+94D9 E736
+94DA E737
+94DB E738
+94DC E739
+94DD E73A
+94DE E73B
+94DF E73C
+94E0 E73D
+94E1 E73E
+94E2 E73F
+94E3 E740
+94E4 E741
+94E5 E742
+94E6 E743
+94E7 E744
+94E8 E745
+94E9 E746
+94EA E747
+94EB E748
+94EC E749
+94ED E74A
+94EE E74B
+94EF E74C
+94F0 E74D
+94F1 E74E
+94F2 E74F
+94F3 E750
+94F4 E751
+94F5 E752
+94F6 E753
+94F7 E754
+94F8 E755
+94F9 E756
+94FA E757
+94FB E758
+94FC E759
+94FD E75A
+94FE E75B
+9540 E75C
+9541 E75D
+9542 E75E
+9543 E75F
+9544 E760
+9545 E761
+9546 E762
+9547 E763
+9548 E764
+9549 E765
+954A E766
+954B E767
+954C E768
+954D E769
+954E E76A
+954F E76B
+9550 E76C
+9551 E76D
+9552 E76E
+9553 E76F
+9554 E770
+9555 E771
+9556 E772
+9557 E773
+9558 E774
+9559 E775
+955A E776
+955B E777
+955C E778
+955D E779
+955E E77A
+955F E77B
+9560 E77C
+9561 E77D
+9562 E77E
+9563 E77F
+9564 E780
+9565 E781
+9566 E782
+9567 E783
+9568 E784
+9569 E785
+956A E786
+956B E787
+956C E788
+956D E789
+956E E78A
+956F E78B
+9570 E78C
+9571 E78D
+9572 E78E
+9573 E78F
+9574 E790
+9575 E791
+9576 E792
+9577 E793
+9578 E794
+9579 E795
+957A E796
+957B E797
+957C E798
+957D E799
+957E E79A
+95A1 E79B
+95A2 E79C
+95A3 E79D
+95A4 E79E
+95A5 E79F
+95A6 E7A0
+95A7 E7A1
+95A8 E7A2
+95A9 E7A3
+95AA E7A4
+95AB E7A5
+95AC E7A6
+95AD E7A7
+95AE E7A8
+95AF E7A9
+95B0 E7AA
+95B1 E7AB
+95B2 E7AC
+95B3 E7AD
+95B4 E7AE
+95B5 E7AF
+95B6 E7B0
+95B7 E7B1
+95B8 E7B2
+95B9 E7B3
+95BA E7B4
+95BB E7B5
+95BC E7B6
+95BD E7B7
+95BE E7B8
+95BF E7B9
+95C0 E7BA
+95C1 E7BB
+95C2 E7BC
+95C3 E7BD
+95C4 E7BE
+95C5 E7BF
+95C6 E7C0
+95C7 E7C1
+95C8 E7C2
+95C9 E7C3
+95CA E7C4
+95CB E7C5
+95CC E7C6
+95CD E7C7
+95CE E7C8
+95CF E7C9
+95D0 E7CA
+95D1 E7CB
+95D2 E7CC
+95D3 E7CD
+95D4 E7CE
+95D5 E7CF
+95D6 E7D0
+95D7 E7D1
+95D8 E7D2
+95DA E7D4
+95DB E7D5
+95DC E7D6
+95DD E7D7
+95DE E7D8
+95DF E7D9
+95E0 E7DA
+95E1 E7DB
+95E2 E7DC
+95E3 E7DD
+95E4 E7DE
+95E5 E7DF
+95E6 E7E0
+95E7 E7E1
+95E8 E7E2
+95E9 E7E3
+95EA E7E4
+95EB E7E5
+95EC E7E6
+95ED E7E7
+95EE E7E8
+95EF E7E9
+95F0 E7EA
+95F1 E7EB
+95F2 E7EC
+95F3 E7ED
+95F4 E7EE
+95F5 E7EF
+95F6 E7F0
+95F7 E7F1
+95F8 E7F2
+95F9 E7F3
+95FA E7F4
+95FB E7F5
+95FC E7F6
+95FD E7F7
+95FE E7F8
+9640 E7F9
+9641 E7FA
+9642 E7FB
+9643 E7FC
+9645 E7FE
+9646 E7FF
+9647 E800
+9648 E801
+9649 E802
+964A E803
+964B E804
+964C E805
+964D E806
+964E E807
+964F E808
+9650 E809
+9651 E80A
+9652 E80B
+9653 E80C
+9654 E80D
+9655 E80E
+9656 E80F
+9657 E810
+9658 E811
+9659 E812
+965A E813
+965B E814
+965C E815
+965D E816
+965E E817
+965F E818
+9660 E819
+9661 E81A
+9662 E81B
+9663 E81C
+9664 E81D
+9665 E81E
+9666 E81F
+9667 E820
+9668 E821
+9669 E822
+966A E823
+966B E824
+966C E825
+966D E826
+966E E827
+966F E828
+9670 E829
+9671 E82A
+9672 E82B
+9673 E82C
+9674 E82D
+9675 E82E
+9676 E82F
+9677 E830
+9678 E831
+9679 E832
+967A E833
+967B E834
+967C E835
+967D E836
+967E E837
+96A1 E838
+96A2 E839
+96A3 E83A
+96A4 E83B
+96A5 E83C
+96A6 E83D
+96A7 E83E
+96A8 E83F
+96A9 E840
+96AA E841
+96AB E842
+96AC E843
+96AD E844
+96AE E845
+96AF E846
+96B0 E847
+96B1 E848
+96B2 E849
+96B3 E84A
+96B4 E84B
+96B5 E84C
+96B6 E84D
+96B7 E84E
+96B8 E84F
+96B9 E850
+96BA E851
+96BB E852
+96BC E853
+96BD E854
+96BE E855
+96BF E856
+96C0 E857
+96C1 E858
+96C2 E859
+96C3 E85A
+96C4 E85B
+96C5 E85C
+96C6 E85D
+96C7 E85E
+96C8 E85F
+96C9 E860
+96CA E861
+96CB E862
+96CC E863
+96CD E864
+96CE E865
+96CF E866
+96D0 E867
+96D1 E868
+96D2 E869
+96D3 E86A
+96D4 E86B
+96D5 E86C
+96D6 E86D
+96D7 E86E
+96D8 E86F
+96D9 E870
+96DA E871
+96DB E872
+96DC E873
+96DD E874
+96DE E875
+96DF E876
+96E0 E877
+96E1 E878
+96E2 E879
+96E3 E87A
+96E4 E87B
+96E5 E87C
+96E6 E87D
+96E7 E87E
+96E8 E87F
+96E9 E880
+96EA E881
+96EB E882
+96EC E883
+96EE E885
+96EF E886
+96F0 E887
+96F1 E888
+96F2 E889
+96F3 E88A
+96F4 E88B
+96F5 E88C
+96F6 E88D
+96F7 E88E
+96F8 E88F
+96F9 E890
+96FA E891
+96FB E892
+96FD E894
+96FE E895
+9740 E896
+9741 E897
+9742 E898
+9743 E899
+9744 E89A
+9745 E89B
+9746 E89C
+9747 E89D
+9748 E89E
+9749 E89F
+974A E8A0
+974B E8A1
+974C E8A2
+974D E8A3
+974E E8A4
+974F E8A5
+9750 E8A6
+9751 E8A7
+9752 E8A8
+9753 E8A9
+9754 E8AA
+9755 E8AB
+9756 E8AC
+9757 E8AD
+9758 E8AE
+9759 E8AF
+975A E8B0
+975B E8B1
+975C E8B2
+975D E8B3
+975E E8B4
+975F E8B5
+9760 E8B6
+9761 E8B7
+9762 E8B8
+9763 E8B9
+9764 E8BA
+9765 E8BB
+9766 E8BC
+9767 E8BD
+9768 E8BE
+9769 E8BF
+976A E8C0
+976B E8C1
+976C E8C2
+976D E8C3
+976E E8C4
+976F E8C5
+9770 E8C6
+9771 E8C7
+9772 E8C8
+9773 E8C9
+9774 E8CA
+9775 E8CB
+9776 E8CC
+9777 E8CD
+9778 E8CE
+9779 E8CF
+977A E8D0
+977B E8D1
+977C E8D2
+977D E8D3
+977E E8D4
+97A1 E8D5
+97A2 E8D6
+97A3 E8D7
+97A4 E8D8
+97A5 E8D9
+97A6 E8DA
+97A7 E8DB
+97A8 E8DC
+97A9 E8DD
+97AA E8DE
+97AB E8DF
+97AC E8E0
+97AD E8E1
+97AE E8E2
+97AF E8E3
+97B0 E8E4
+97B1 E8E5
+97B2 E8E6
+97B3 E8E7
+97B4 E8E8
+97B5 E8E9
+97B6 E8EA
+97B7 E8EB
+97B8 E8EC
+97B9 E8ED
+97BA E8EE
+97BB E8EF
+97BC E8F0
+97BD E8F1
+97BE E8F2
+97BF E8F3
+97C0 E8F4
+97C1 E8F5
+97C2 E8F6
+97C3 E8F7
+97C4 E8F8
+97C5 E8F9
+97C6 E8FA
+97C7 E8FB
+97C8 E8FC
+97C9 E8FD
+97CA E8FE
+97CB E8FF
+97CC E900
+97CD E901
+97CE E902
+97CF E903
+97D0 E904
+97D1 E905
+97D2 E906
+97D3 E907
+97D4 E908
+97D5 E909
+97D6 E90A
+97D7 E90B
+97D8 E90C
+97D9 E90D
+97DA E90E
+97DB E90F
+97DC E910
+97DD E911
+97DE E912
+97DF E913
+97E0 E914
+97E1 E915
+97E2 E916
+97E3 E917
+97E4 E918
+97E5 E919
+97E6 E91A
+97E7 E91B
+97E8 E91C
+97E9 E91D
+97EA E91E
+97EB E91F
+97EC E920
+97ED E921
+97EE E922
+97EF E923
+97F0 E924
+97F1 E925
+97F2 E926
+97F3 E927
+97F4 E928
+97F5 E929
+97F6 E92A
+97F7 E92B
+97F8 E92C
+97F9 E92D
+97FA E92E
+97FB E92F
+97FC E930
+97FD E931
+97FE E932
+9840 E933
+9841 E934
+9842 E935
+9843 E936
+9844 E937
+9845 E938
+9846 E939
+9847 E93A
+9848 E93B
+9849 E93C
+984A E93D
+984B E93E
+984C E93F
+984D E940
+984E E941
+984F E942
+9850 E943
+9851 E944
+9852 E945
+9853 E946
+9854 E947
+9855 E948
+9856 E949
+9857 E94A
+9858 E94B
+9859 E94C
+985A E94D
+985B E94E
+985C E94F
+985D E950
+985E E951
+985F E952
+9860 E953
+9861 E954
+9862 E955
+9863 E956
+9864 E957
+9865 E958
+9866 E959
+9867 E95A
+9868 E95B
+9869 E95C
+986A E95D
+986B E95E
+986C E95F
+986D E960
+986E E961
+986F E962
+9870 E963
+9871 E964
+9872 E965
+9873 E966
+9874 E967
+9875 E968
+9876 E969
+9877 E96A
+9878 E96B
+9879 E96C
+987A E96D
+987B E96E
+987C E96F
+987D E970
+987E E971
+98A1 E972
+98A2 E973
+98A3 E974
+98A4 E975
+98A5 E976
+98A6 E977
+98A7 E978
+98A8 E979
+98A9 E97A
+98AA E97B
+98AB E97C
+98AC E97D
+98AD E97E
+98AE E97F
+98AF E980
+98B0 E981
+98B1 E982
+98B2 E983
+98B3 E984
+98B4 E985
+98B5 E986
+98B6 E987
+98B7 E988
+98B8 E989
+98B9 E98A
+98BA E98B
+98BB E98C
+98BC E98D
+98BD E98E
+98BE E98F
+98BF E990
+98C0 E991
+98C1 E992
+98C2 E993
+98C3 E994
+98C4 E995
+98C5 E996
+98C6 E997
+98C7 E998
+98C8 E999
+98C9 E99A
+98CA E99B
+98CB E99C
+98CC E99D
+98CD E99E
+98CE E99F
+98CF E9A0
+98D0 E9A1
+98D1 E9A2
+98D2 E9A3
+98D3 E9A4
+98D4 E9A5
+98D5 E9A6
+98D6 E9A7
+98D7 E9A8
+98D8 E9A9
+98D9 E9AA
+98DA E9AB
+98DB E9AC
+98DC E9AD
+98DD E9AE
+98DE E9AF
+98DF E9B0
+98E0 E9B1
+98E1 E9B2
+98E2 E9B3
+98E3 E9B4
+98E4 E9B5
+98E5 E9B6
+98E6 E9B7
+98E7 E9B8
+98E8 E9B9
+98E9 E9BA
+98EA E9BB
+98EB E9BC
+98EC E9BD
+98ED E9BE
+98EE E9BF
+98EF E9C0
+98F0 E9C1
+98F1 E9C2
+98F2 E9C3
+98F3 E9C4
+98F4 E9C5
+98F5 E9C6
+98F6 E9C7
+98F7 E9C8
+98F8 E9C9
+98F9 E9CA
+98FA E9CB
+98FB E9CC
+98FC E9CD
+98FD E9CE
+98FE E9CF
+9940 E9D0
+9941 E9D1
+9942 E9D2
+9943 E9D3
+9944 E9D4
+9945 E9D5
+9946 E9D6
+9947 E9D7
+9948 E9D8
+9949 E9D9
+994A E9DA
+994B E9DB
+994C E9DC
+994D E9DD
+994E E9DE
+994F E9DF
+9950 E9E0
+9951 E9E1
+9952 E9E2
+9953 E9E3
+9954 E9E4
+9955 E9E5
+9956 E9E6
+9957 E9E7
+9958 E9E8
+9959 E9E9
+995A E9EA
+995B E9EB
+995C E9EC
+995D E9ED
+995E E9EE
+995F E9EF
+9960 E9F0
+9961 E9F1
+9962 E9F2
+9963 E9F3
+9964 E9F4
+9965 E9F5
+9966 E9F6
+9967 E9F7
+9968 E9F8
+9969 E9F9
+996A E9FA
+996B E9FB
+996C E9FC
+996D E9FD
+996E E9FE
+996F E9FF
+9970 EA00
+9971 EA01
+9972 EA02
+9973 EA03
+9974 EA04
+9975 EA05
+9976 EA06
+9977 EA07
+9978 EA08
+9979 EA09
+997A EA0A
+997B EA0B
+997C EA0C
+997D EA0D
+997E EA0E
+99A1 EA0F
+99A2 EA10
+99A3 EA11
+99A4 EA12
+99A5 EA13
+99A6 EA14
+99A7 EA15
+99A8 EA16
+99A9 EA17
+99AA EA18
+99AB EA19
+99AC EA1A
+99AD EA1B
+99AE EA1C
+99AF EA1D
+99B0 EA1E
+99B1 EA1F
+99B2 EA20
+99B3 EA21
+99B4 EA22
+99B5 EA23
+99B6 EA24
+99B7 EA25
+99B8 EA26
+99B9 EA27
+99BA EA28
+99BB EA29
+99BC EA2A
+99BD EA2B
+99BE EA2C
+99BF EA2D
+99C0 EA2E
+99C1 EA2F
+99C2 EA30
+99C3 EA31
+99C4 EA32
+99C5 EA33
+99C6 EA34
+99C7 EA35
+99C8 EA36
+99C9 EA37
+99CA EA38
+99CB EA39
+99CC EA3A
+99CD EA3B
+99CE EA3C
+99CF EA3D
+99D0 EA3E
+99D1 EA3F
+99D2 EA40
+99D3 EA41
+99D4 EA42
+99D5 EA43
+99D6 EA44
+99D7 EA45
+99D8 EA46
+99D9 EA47
+99DA EA48
+99DB EA49
+99DC EA4A
+99DD EA4B
+99DE EA4C
+99DF EA4D
+99E0 EA4E
+99E1 EA4F
+99E2 EA50
+99E3 EA51
+99E4 EA52
+99E5 EA53
+99E6 EA54
+99E7 EA55
+99E8 EA56
+99E9 EA57
+99EA EA58
+99EB EA59
+99EC EA5A
+99ED EA5B
+99EE EA5C
+99EF EA5D
+99F0 EA5E
+99F1 EA5F
+99F2 EA60
+99F3 EA61
+99F4 EA62
+99F5 EA63
+99F6 EA64
+99F7 EA65
+99F8 EA66
+99F9 EA67
+99FA EA68
+99FB EA69
+99FC EA6A
+99FD EA6B
+99FE EA6C
+9A40 EA6D
+9A41 EA6E
+9A42 EA6F
+9A43 EA70
+9A44 EA71
+9A45 EA72
+9A46 EA73
+9A47 EA74
+9A48 EA75
+9A49 EA76
+9A4A EA77
+9A4B EA78
+9A4C EA79
+9A4D EA7A
+9A4E EA7B
+9A4F EA7C
+9A50 EA7D
+9A51 EA7E
+9A52 EA7F
+9A53 EA80
+9A54 EA81
+9A55 EA82
+9A56 EA83
+9A57 EA84
+9A58 EA85
+9A59 EA86
+9A5A EA87
+9A5B EA88
+9A5C EA89
+9A5D EA8A
+9A5E EA8B
+9A5F EA8C
+9A60 EA8D
+9A61 EA8E
+9A62 EA8F
+9A63 EA90
+9A64 EA91
+9A65 EA92
+9A66 EA93
+9A67 EA94
+9A68 EA95
+9A69 EA96
+9A6A EA97
+9A6B EA98
+9A6C EA99
+9A6D EA9A
+9A6E EA9B
+9A6F EA9C
+9A70 EA9D
+9A71 EA9E
+9A72 EA9F
+9A73 EAA0
+9A74 EAA1
+9A75 EAA2
+9A76 EAA3
+9A77 EAA4
+9A78 EAA5
+9A79 EAA6
+9A7A EAA7
+9A7B EAA8
+9A7C EAA9
+9A7D EAAA
+9A7E EAAB
+9AA1 EAAC
+9AA2 EAAD
+9AA3 EAAE
+9AA4 EAAF
+9AA5 EAB0
+9AA6 EAB1
+9AA7 EAB2
+9AA8 EAB3
+9AA9 EAB4
+9AAA EAB5
+9AAB EAB6
+9AAC EAB7
+9AAD EAB8
+9AAE EAB9
+9AAF EABA
+9AB0 EABB
+9AB1 EABC
+9AB2 EABD
+9AB3 EABE
+9AB4 EABF
+9AB5 EAC0
+9AB6 EAC1
+9AB7 EAC2
+9AB8 EAC3
+9AB9 EAC4
+9ABA EAC5
+9ABB EAC6
+9ABC EAC7
+9ABD EAC8
+9ABE EAC9
+9ABF EACA
+9AC0 EACB
+9AC1 EACC
+9AC2 EACD
+9AC3 EACE
+9AC4 EACF
+9AC5 EAD0
+9AC6 EAD1
+9AC7 EAD2
+9AC8 EAD3
+9AC9 EAD4
+9ACA EAD5
+9ACB EAD6
+9ACC EAD7
+9ACD EAD8
+9ACE EAD9
+9ACF EADA
+9AD0 EADB
+9AD1 EADC
+9AD2 EADD
+9AD3 EADE
+9AD4 EADF
+9AD5 EAE0
+9AD6 EAE1
+9AD7 EAE2
+9AD8 EAE3
+9AD9 EAE4
+9ADA EAE5
+9ADB EAE6
+9ADC EAE7
+9ADD EAE8
+9ADE EAE9
+9ADF EAEA
+9AE0 EAEB
+9AE1 EAEC
+9AE2 EAED
+9AE3 EAEE
+9AE4 EAEF
+9AE5 EAF0
+9AE6 EAF1
+9AE7 EAF2
+9AE8 EAF3
+9AE9 EAF4
+9AEA EAF5
+9AEB EAF6
+9AEC EAF7
+9AED EAF8
+9AEE EAF9
+9AEF EAFA
+9AF0 EAFB
+9AF1 EAFC
+9AF2 EAFD
+9AF3 EAFE
+9AF4 EAFF
+9AF5 EB00
+9AF6 EB01
+9AF7 EB02
+9AF8 EB03
+9AF9 EB04
+9AFA EB05
+9AFB EB06
+9AFC EB07
+9AFD EB08
+9AFE EB09
+9B40 EB0A
+9B41 EB0B
+9B42 EB0C
+9B43 EB0D
+9B44 EB0E
+9B45 EB0F
+9B46 EB10
+9B47 EB11
+9B48 EB12
+9B49 EB13
+9B4A EB14
+9B4B EB15
+9B4C EB16
+9B4D EB17
+9B4E EB18
+9B4F EB19
+9B50 EB1A
+9B51 EB1B
+9B52 EB1C
+9B53 EB1D
+9B54 EB1E
+9B55 EB1F
+9B56 EB20
+9B57 EB21
+9B58 EB22
+9B59 EB23
+9B5A EB24
+9B5B EB25
+9B5C EB26
+9B5D EB27
+9B5E EB28
+9B5F EB29
+9B60 EB2A
+9B62 EB2C
+9B63 EB2D
+9B64 EB2E
+9B65 EB2F
+9B66 EB30
+9B67 EB31
+9B68 EB32
+9B69 EB33
+9B6A EB34
+9B6B EB35
+9B6C EB36
+9B6D EB37
+9B6E EB38
+9B6F EB39
+9B70 EB3A
+9B71 EB3B
+9B72 EB3C
+9B73 EB3D
+9B74 EB3E
+9B75 EB3F
+9B77 EB41
+9B79 EB43
+9B7A EB44
+9B7C EB46
+9B7D EB47
+9B7E EB48
+9BA1 EB49
+9BA2 EB4A
+9BA3 EB4B
+9BA4 EB4C
+9BA5 EB4D
+9BA6 EB4E
+9BA7 EB4F
+9BA8 EB50
+9BA9 EB51
+9BAA EB52
+9BAB EB53
+9BAC EB54
+9BAD EB55
+9BAE EB56
+9BAF EB57
+9BB0 EB58
+9BB1 EB59
+9BB2 EB5A
+9BB3 EB5B
+9BB4 EB5C
+9BB5 EB5D
+9BB6 EB5E
+9BB7 EB5F
+9BB8 EB60
+9BB9 EB61
+9BBA EB62
+9BBB EB63
+9BBC EB64
+9BBD EB65
+9BBE EB66
+9BBF EB67
+9BC0 EB68
+9BC1 EB69
+9BC2 EB6A
+9BC3 EB6B
+9BC4 EB6C
+9BC5 EB6D
+9BC7 EB6F
+9BC8 EB70
+9BC9 EB71
+9BCA EB72
+9BCB EB73
+9BCC EB74
+9BCD EB75
+9BCE EB76
+9BCF EB77
+9BD0 EB78
+9BD1 EB79
+9BD2 EB7A
+9BD3 EB7B
+9BD4 EB7C
+9BD5 EB7D
+9BD6 EB7E
+9BD7 EB7F
+9BD8 EB80
+9BD9 EB81
+9BDA EB82
+9BDB EB83
+9BDC EB84
+9BDD EB85
+9BDF EB87
+9BE0 EB88
+9BE1 EB89
+9BE2 EB8A
+9BE3 EB8B
+9BE4 EB8C
+9BE5 EB8D
+9BE6 EB8E
+9BE7 EB8F
+9BE8 EB90
+9BE9 EB91
+9BEA EB92
+9BEB EB93
+9BED EB95
+9BEE EB96
+9BEF EB97
+9BF0 EB98
+9BF1 EB99
+9BF2 EB9A
+9BF3 EB9B
+9BF4 EB9C
+9BF5 EB9D
+9BF7 EB9F
+9BF8 EBA0
+9BF9 EBA1
+9BFA EBA2
+9BFB EBA3
+9BFC EBA4
+9BFD EBA5
+9BFE EBA6
+9C40 EBA7
+9C41 EBA8
+9C43 EBAA
+9C44 EBAB
+9C45 EBAC
+9C46 EBAD
+9C47 EBAE
+9C48 EBAF
+9C49 EBB0
+9C4A EBB1
+9C4B EBB2
+9C4C EBB3
+9C4D EBB4
+9C4E EBB5
+9C4F EBB6
+9C50 EBB7
+9C51 EBB8
+9C52 EBB9
+9C54 EBBB
+9C55 EBBC
+9C56 EBBD
+9C57 EBBE
+9C58 EBBF
+9C59 EBC0
+9C5A EBC1
+9C5B EBC2
+9C5C EBC3
+9C5D EBC4
+9C5E EBC5
+9C5F EBC6
+9C60 EBC7
+9C61 EBC8
+9C63 EBCA
+9C64 EBCB
+9C65 EBCC
+9C66 EBCD
+9C67 EBCE
+9C69 EBD0
+9C6A EBD1
+9C6C EBD3
+9C6D EBD4
+9C6E EBD5
+9C6F EBD6
+9C70 EBD7
+9C71 EBD8
+9C72 EBD9
+9C73 EBDA
+9C74 EBDB
+9C75 EBDC
+9C76 EBDD
+9C78 EBDF
+9C79 EBE0
+9C7A EBE1
+9C7B EBE2
+9C7C EBE3
+9C7D EBE4
+9C7E EBE5
+9CA1 EBE6
+9CA2 EBE7
+9CA3 EBE8
+9CA4 EBE9
+9CA5 EBEA
+9CA6 EBEB
+9CA7 EBEC
+9CA8 EBED
+9CA9 EBEE
+9CAA EBEF
+9CAB EBF0
+9CAC EBF1
+9CAD EBF2
+9CAE EBF3
+9CAF EBF4
+9CB0 EBF5
+9CB1 EBF6
+9CB2 EBF7
+9CB3 EBF8
+9CB4 EBF9
+9CB5 EBFA
+9CB6 EBFB
+9CB7 EBFC
+9CB8 EBFD
+9CB9 EBFE
+9CBA EBFF
+9CBB EC00
+9CBE EC03
+9CBF EC04
+9CC0 EC05
+9CC1 EC06
+9CC2 EC07
+9CC3 EC08
+9CC4 EC09
+9CC5 EC0A
+9CC6 EC0B
+9CC7 EC0C
+9CC8 EC0D
+9CC9 EC0E
+9CCA EC0F
+9CCB EC10
+9CCC EC11
+9CCD EC12
+9CCE EC13
+9CCF EC14
+9CD1 EC16
+9CD2 EC17
+9CD3 EC18
+9CD4 EC19
+9CD5 EC1A
+9CD6 EC1B
+9CD7 EC1C
+9CD8 EC1D
+9CD9 EC1E
+9CDA EC1F
+9CDB EC20
+9CDC EC21
+9CDD EC22
+9CDE EC23
+9CDF EC24
+9CE0 EC25
+9CE1 EC26
+9CE2 EC27
+9CE3 EC28
+9CE4 EC29
+9CE5 EC2A
+9CE6 EC2B
+9CE7 EC2C
+9CE8 EC2D
+9CE9 EC2E
+9CEA EC2F
+9CEB EC30
+9CEC EC31
+9CED EC32
+9CEE EC33
+9CEF EC34
+9CF0 EC35
+9CF1 EC36
+9CF2 EC37
+9CF3 EC38
+9CF4 EC39
+9CF5 EC3A
+9CF6 EC3B
+9CF7 EC3C
+9CF8 EC3D
+9CF9 EC3E
+9CFA EC3F
+9CFB EC40
+9CFC EC41
+9CFD EC42
+9CFE EC43
+9D40 EC44
+9D41 EC45
+9D42 EC46
+9D43 EC47
+9D44 EC48
+9D45 EC49
+9D46 EC4A
+9D47 EC4B
+9D48 EC4C
+9D49 EC4D
+9D4A EC4E
+9D4B EC4F
+9D4C EC50
+9D4D EC51
+9D4E EC52
+9D4F EC53
+9D50 EC54
+9D51 EC55
+9D52 EC56
+9D53 EC57
+9D54 EC58
+9D55 EC59
+9D56 EC5A
+9D58 EC5C
+9D59 EC5D
+9D5B EC5F
+9D5C EC60
+9D5D EC61
+9D5E EC62
+9D5F EC63
+9D60 EC64
+9D61 EC65
+9D62 EC66
+9D63 EC67
+9D64 EC68
+9D65 EC69
+9D66 EC6A
+9D67 EC6B
+9D68 EC6C
+9D69 EC6D
+9D6A EC6E
+9D6B EC6F
+9D6C EC70
+9D6D EC71
+9D6E EC72
+9D6F EC73
+9D70 EC74
+9D71 EC75
+9D72 EC76
+9D73 EC77
+9D74 EC78
+9D75 EC79
+9D76 EC7A
+9D77 EC7B
+9D78 EC7C
+9D79 EC7D
+9D7A EC7E
+9D7B EC7F
+9D7C EC80
+9D7D EC81
+9D7E EC82
+9DA1 EC83
+9DA2 EC84
+9DA3 EC85
+9DA4 EC86
+9DA5 EC87
+9DA6 EC88
+9DA7 EC89
+9DA8 EC8A
+9DA9 EC8B
+9DAA EC8C
+9DAB EC8D
+9DAC EC8E
+9DAD EC8F
+9DAE EC90
+9DAF EC91
+9DB0 EC92
+9DB1 EC93
+9DB2 EC94
+9DB3 EC95
+9DB4 EC96
+9DB5 EC97
+9DB6 EC98
+9DB7 EC99
+9DB8 EC9A
+9DB9 EC9B
+9DBA EC9C
+9DBB EC9D
+9DBC EC9E
+9DBD EC9F
+9DBE ECA0
+9DBF ECA1
+9DC0 ECA2
+9DC1 ECA3
+9DC2 ECA4
+9DC3 ECA5
+9DC5 ECA7
+9DC6 ECA8
+9DC7 ECA9
+9DC8 ECAA
+9DC9 ECAB
+9DCA ECAC
+9DCB ECAD
+9DCC ECAE
+9DCD ECAF
+9DCE ECB0
+9DCF ECB1
+9DD0 ECB2
+9DD1 ECB3
+9DD2 ECB4
+9DD3 ECB5
+9DD4 ECB6
+9DD5 ECB7
+9DD6 ECB8
+9DD7 ECB9
+9DD8 ECBA
+9DD9 ECBB
+9DDA ECBC
+9DDB ECBD
+9DDC ECBE
+9DDD ECBF
+9DDE ECC0
+9DDF ECC1
+9DE0 ECC2
+9DE1 ECC3
+9DE2 ECC4
+9DE3 ECC5
+9DE4 ECC6
+9DE5 ECC7
+9DE6 ECC8
+9DE7 ECC9
+9DE8 ECCA
+9DE9 ECCB
+9DEA ECCC
+9DEB ECCD
+9DEC ECCE
+9DED ECCF
+9DEE ECD0
+9DEF ECD1
+9DF0 ECD2
+9DF1 ECD3
+9DF2 ECD4
+9DF3 ECD5
+9DF4 ECD6
+9DF5 ECD7
+9DF6 ECD8
+9DF7 ECD9
+9DF8 ECDA
+9DF9 ECDB
+9DFA ECDC
+9DFB ECDD
+9DFC ECDE
+9DFD ECDF
+9DFE ECE0
+9E40 ECE1
+9E41 ECE2
+9E42 ECE3
+9E43 ECE4
+9E44 ECE5
+9E45 ECE6
+9E46 ECE7
+9E47 ECE8
+9E48 ECE9
+9E49 ECEA
+9E4A ECEB
+9E4B ECEC
+9E4C ECED
+9E4D ECEE
+9E4E ECEF
+9E4F ECF0
+9E50 ECF1
+9E51 ECF2
+9E52 ECF3
+9E53 ECF4
+9E54 ECF5
+9E55 ECF6
+9E56 ECF7
+9E57 ECF8
+9E58 ECF9
+9E59 ECFA
+9E5A ECFB
+9E5B ECFC
+9E5C ECFD
+9E5D ECFE
+9E5E ECFF
+9E5F ED00
+9E60 ED01
+9E61 ED02
+9E62 ED03
+9E63 ED04
+9E64 ED05
+9E65 ED06
+9E66 ED07
+9E67 ED08
+9E68 ED09
+9E69 ED0A
+9E6A ED0B
+9E6B ED0C
+9E6C ED0D
+9E6D ED0E
+9E6E ED0F
+9E6F ED10
+9E70 ED11
+9E71 ED12
+9E72 ED13
+9E73 ED14
+9E74 ED15
+9E75 ED16
+9E76 ED17
+9E77 ED18
+9E78 ED19
+9E79 ED1A
+9E7A ED1B
+9E7B ED1C
+9E7C ED1D
+9E7D ED1E
+9E7E ED1F
+9EA1 ED20
+9EA2 ED21
+9EA3 ED22
+9EA4 ED23
+9EA5 ED24
+9EA6 ED25
+9EA7 ED26
+9EA8 ED27
+9EAA ED29
+9EAB ED2A
+9EAD ED2C
+9EAE ED2D
+9EAF ED2E
+9EB0 ED2F
+9EB1 ED30
+9EB2 ED31
+9EB3 ED32
+9EB4 ED33
+9EB5 ED34
+9EB6 ED35
+9EB7 ED36
+9EB8 ED37
+9EB9 ED38
+9EBA ED39
+9EBB ED3A
+9EBC ED3B
+9EBD ED3C
+9EBE ED3D
+9EBF ED3E
+9EC0 ED3F
+9EC1 ED40
+9EC2 ED41
+9EC3 ED42
+9EC5 ED44
+9EC6 ED45
+9EC7 ED46
+9EC8 ED47
+9EC9 ED48
+9ECA ED49
+9ECB ED4A
+9ECC ED4B
+9ECD ED4C
+9ECE ED4D
+9ECF ED4E
+9ED0 ED4F
+9ED1 ED50
+9ED2 ED51
+9ED3 ED52
+9ED4 ED53
+9ED5 ED54
+9ED6 ED55
+9ED7 ED56
+9ED8 ED57
+9ED9 ED58
+9EDA ED59
+9EDB ED5A
+9EDC ED5B
+9EDD ED5C
+9EDE ED5D
+9EDF ED5E
+9EE0 ED5F
+9EE1 ED60
+9EE2 ED61
+9EE3 ED62
+9EE4 ED63
+9EE5 ED64
+9EE6 ED65
+9EE7 ED66
+9EE8 ED67
+9EE9 ED68
+9EEA ED69
+9EEB ED6A
+9EEC ED6B
+9EED ED6C
+9EEE ED6D
+9EF0 ED6F
+9EF1 ED70
+9EF2 ED71
+9EF3 ED72
+9EF5 ED74
+9EF6 ED75
+9EF7 ED76
+9EF8 ED77
+9EF9 ED78
+9EFA ED79
+9EFB ED7A
+9EFC ED7B
+9EFE ED7D
+9F40 ED7E
+9F41 ED7F
+9F42 ED80
+9F43 ED81
+9F44 ED82
+9F45 ED83
+9F46 ED84
+9F47 ED85
+9F48 ED86
+9F49 ED87
+9F4A ED88
+9F4B ED89
+9F4C ED8A
+9F4D ED8B
+9F4F ED8D
+9F50 ED8E
+9F51 ED8F
+9F52 ED90
+9F53 ED91
+9F54 ED92
+9F55 ED93
+9F56 ED94
+9F57 ED95
+9F58 ED96
+9F59 ED97
+9F5A ED98
+9F5B ED99
+9F5C ED9A
+9F5D ED9B
+9F5E ED9C
+9F5F ED9D
+9F61 ED9F
+9F62 EDA0
+9F63 EDA1
+9F64 EDA2
+9F65 EDA3
+9F67 EDA5
+9F68 EDA6
+9F69 EDA7
+9F6A EDA8
+9F6B EDA9
+9F6C EDAA
+9F6D EDAB
+9F6E EDAC
+9F6F EDAD
+9F70 EDAE
+9F71 EDAF
+9F72 EDB0
+9F73 EDB1
+9F74 EDB2
+9F75 EDB3
+9F76 EDB4
+9F77 EDB5
+9F78 EDB6
+9F79 EDB7
+9F7A EDB8
+9F7B EDB9
+9F7C EDBA
+9F7D EDBB
+9F7E EDBC
+9FA1 EDBD
+9FA2 EDBE
+9FA3 EDBF
+9FA4 EDC0
+9FA5 EDC1
+9FA6 EDC2
+9FA7 EDC3
+9FA8 EDC4
+9FA9 EDC5
+9FAA EDC6
+9FAB EDC7
+9FAC EDC8
+9FAE EDCA
+9FAF EDCB
+9FB0 EDCC
+9FB2 EDCE
+9FB3 EDCF
+9FB4 EDD0
+9FB5 EDD1
+9FB6 EDD2
+9FB7 EDD3
+9FB8 EDD4
+9FB9 EDD5
+9FBA EDD6
+9FBB EDD7
+9FBC EDD8
+9FBD EDD9
+9FBE EDDA
+9FBF EDDB
+9FC1 EDDD
+9FC2 EDDE
+9FC3 EDDF
+9FC4 EDE0
+9FC5 EDE1
+9FC6 EDE2
+9FC7 EDE3
+9FC9 EDE5
+9FCA EDE6
+9FCC EDE8
+9FCD EDE9
+9FCE EDEA
+9FCF EDEB
+9FD0 EDEC
+9FD1 EDED
+9FD2 EDEE
+9FD3 EDEF
+9FD4 EDF0
+9FD5 EDF1
+9FD6 EDF2
+9FD7 EDF3
+9FD9 EDF5
+9FDB EDF7
+9FDC EDF8
+9FDD EDF9
+9FDE EDFA
+9FDF EDFB
+9FE0 EDFC
+9FE1 EDFD
+9FE2 EDFE
+9FE3 EDFF
+9FE4 EE00
+9FE5 EE01
+9FE7 EE03
+9FE8 EE04
+9FE9 EE05
+9FEB EE07
+9FEC EE08
+9FED EE09
+9FEE EE0A
+9FF0 EE0C
+9FF1 EE0D
+9FF2 EE0E
+9FF3 EE0F
+9FF4 EE10
+9FF5 EE11
+9FF6 EE12
+9FF7 EE13
+9FF8 EE14
+9FF9 EE15
+9FFA EE16
+9FFB EE17
+9FFC EE18
+9FFD EE19
+9FFE EE1A
+A040 EE1B
+A041 EE1C
+A042 EE1D
+A043 EE1E
+A044 EE1F
+A045 EE20
+A046 EE21
+A047 EE22
+A048 EE23
+A049 EE24
+A04A EE25
+A04B EE26
+A04C EE27
+A04D EE28
+A04E EE29
+A04F EE2A
+A050 EE2B
+A051 EE2C
+A052 EE2D
+A053 EE2E
+A055 EE30
+A056 EE31
+A058 EE33
+A059 EE34
+A05B EE36
+A05C EE37
+A05D EE38
+A05E EE39
+A05F EE3A
+A060 EE3B
+A061 EE3C
+A064 EE3F
+A065 EE40
+A066 EE41
+A067 EE42
+A068 EE43
+A069 EE44
+A06A EE45
+A06B EE46
+A06C EE47
+A06D EE48
+A06E EE49
+A06F EE4A
+A070 EE4B
+A071 EE4C
+A073 EE4E
+A074 EE4F
+A075 EE50
+A076 EE51
+A078 EE53
+A079 EE54
+A07A EE55
+A07B EE56
+A07C EE57
+A07D EE58
+A07E EE59
+A0A1 EE5A
+A0A2 EE5B
+A0A3 EE5C
+A0A4 EE5D
+A0A6 EE5F
+A0A7 EE60
+A0A8 EE61
+A0A9 EE62
+A0AA EE63
+A0AB EE64
+A0AC EE65
+A0AE EE67
+A0B0 EE69
+A0B1 EE6A
+A0B2 EE6B
+A0B3 EE6C
+A0B4 EE6D
+A0B5 EE6E
+A0B6 EE6F
+A0B7 EE70
+A0B8 EE71
+A0B9 EE72
+A0BA EE73
+A0BB EE74
+A0BC EE75
+A0BD EE76
+A0BE EE77
+A0BF EE78
+A0C0 EE79
+A0C1 EE7A
+A0C2 EE7B
+A0C3 EE7C
+A0C4 EE7D
+A0C5 EE7E
+A0C6 EE7F
+A0C7 EE80
+A0C8 EE81
+A0C9 EE82
+A0CA EE83
+A0CB EE84
+A0CC EE85
+A0CD EE86
+A0CE EE87
+A0CF EE88
+A0D0 EE89
+A0D1 EE8A
+A0D2 EE8B
+A0D4 EE8D
+A0D6 EE8F
+A0D7 EE90
+A0D8 EE91
+A0D9 EE92
+A0DA EE93
+A0DB EE94
+A0DC EE95
+A0DD EE96
+A0DE EE97
+A0E0 EE99
+A0E2 EE9B
+A0E3 EE9C
+A0E5 EE9E
+A0E6 EE9F
+A0E7 EEA0
+A0E8 EEA1
+A0E9 EEA2
+A0EA EEA3
+A0EB EEA4
+A0EC EEA5
+A0ED EEA6
+A0EE EEA7
+A0EF EEA8
+A0F0 EEA9
+A0F1 EEAA
+A0F2 EEAB
+A0F3 EEAC
+A0F4 EEAD
+A0F5 EEAE
+A0F6 EEAF
+A0F7 EEB0
+A0F8 EEB1
+A0F9 EEB2
+A0FA EEB3
+A0FB EEB4
+A0FC EEB5
+A0FD EEB6
+A0FE EEB7
+C6A1 F6B1
+C6A2 F6B2
+C6A3 F6B3
+C6A4 F6B4
+C6A5 F6B5
+C6A6 F6B6
+C6A7 F6B7
+C6A8 F6B8
+C6A9 F6B9
+C6AA F6BA
+C6AB F6BB
+C6AC F6BC
+C6AD F6BD
+C6AE F6BE
+C6AF F6BF
+C6B0 F6C0
+C6B1 F6C1
+C6B2 F6C2
+C6B3 F6C3
+C6B4 F6C4
+C6B5 F6C5
+C6B6 F6C6
+C6B7 F6C7
+C6B8 F6C8
+C6B9 F6C9
+C6BA F6CA
+C6BB F6CB
+C6BC F6CC
+C6BD F6CD
+C6BE F6CE
+C6BF F6CF
+C6C0 F6D0
+C6C1 F6D1
+C6C2 F6D2
+C6C3 F6D3
+C6C4 F6D4
+C6C5 F6D5
+C6C6 F6D6
+C6C7 F6D7
+C6C8 F6D8
+C6C9 F6D9
+C6CA F6DA
+C6CB F6DB
+C6CC F6DC
+C6CD F6DD
+C6CE F6DE
+C6D0 F6E0
+C6D1 F6E1
+C6D2 F6E2
+C6D4 F6E4
+C6D6 F6E6
+C6D8 F6E8
+C6D9 F6E9
+C6DA F6EA
+C6DB F6EB
+C6DC F6EC
+C6DD F6ED
+C6E0 F6F0
+C6E1 F6F1
+C6E2 F6F2
+C6E3 F6F3
+C6E4 F6F4
+C6E5 F6F5
+C6E6 F6F6
+C6E7 F6F7
+C6E8 F6F8
+C6E9 F6F9
+C6EA F6FA
+C6EB F6FB
+C6EC F6FC
+C6ED F6FD
+C6EE F6FE
+C6EF F6FF
+C6F0 F700
+C6F1 F701
+C6F2 F702
+C6F3 F703
+C6F4 F704
+C6F5 F705
+C6F6 F706
+C6F7 F707
+C6F8 F708
+C6F9 F709
+C6FA F70A
+C6FB F70B
+C6FC F70C
+C6FD F70D
+C6FE F70E
+C740 F70F
+C741 F710
+C742 F711
+C743 F712
+C744 F713
+C745 F714
+C746 F715
+C747 F716
+C748 F717
+C749 F718
+C74A F719
+C74B F71A
+C74C F71B
+C74D F71C
+C74E F71D
+C74F F71E
+C750 F71F
+C751 F720
+C752 F721
+C753 F722
+C754 F723
+C755 F724
+C756 F725
+C757 F726
+C758 F727
+C759 F728
+C75A F729
+C75B F72A
+C75C F72B
+C75D F72C
+C75E F72D
+C75F F72E
+C760 F72F
+C761 F730
+C762 F731
+C763 F732
+C764 F733
+C765 F734
+C766 F735
+C767 F736
+C768 F737
+C769 F738
+C76A F739
+C76B F73A
+C76C F73B
+C76D F73C
+C76E F73D
+C76F F73E
+C770 F73F
+C771 F740
+C772 F741
+C773 F742
+C774 F743
+C775 F744
+C776 F745
+C777 F746
+C778 F747
+C779 F748
+C77A F749
+C77B F74A
+C77C F74B
+C77D F74C
+C77E F74D
+C7A1 F74E
+C7A2 F74F
+C7A3 F750
+C7A4 F751
+C7A5 F752
+C7A6 F753
+C7A7 F754
+C7A8 F755
+C7A9 F756
+C7AA F757
+C7AB F758
+C7AC F759
+C7AD F75A
+C7AE F75B
+C7AF F75C
+C7B0 F75D
+C7B1 F75E
+C7B2 F75F
+C7B3 F760
+C7B4 F761
+C7B5 F762
+C7B6 F763
+C7B7 F764
+C7B8 F765
+C7B9 F766
+C7BA F767
+C7BB F768
+C7BC F769
+C7BD F76A
+C7BE F76B
+C7BF F76C
+C7C0 F76D
+C7C1 F76E
+C7C2 F76F
+C7C3 F770
+C7C4 F771
+C7C5 F772
+C7C6 F773
+C7C7 F774
+C7C8 F775
+C7C9 F776
+C7CA F777
+C7CB F778
+C7CC F779
+C7CD F77A
+C7CE F77B
+C7CF F77C
+C7D0 F77D
+C7D1 F77E
+C7D2 F77F
+C7D3 F780
+C7D4 F781
+C7D5 F782
+C7D6 F783
+C7D7 F784
+C7D8 F785
+C7D9 F786
+C7DA F787
+C7DB F788
+C7DC F789
+C7DD F78A
+C7DE F78B
+C7DF F78C
+C7E0 F78D
+C7E1 F78E
+C7E2 F78F
+C7E3 F790
+C7E4 F791
+C7E5 F792
+C7E6 F793
+C7E7 F794
+C7E8 F795
+C7E9 F796
+C7EA F797
+C7EB F798
+C7EC F799
+C7ED F79A
+C7EE F79B
+C7EF F79C
+C7F0 F79D
+C7F1 F79E
+C7F2 F79F
+C7F3 F7A0
+C7F4 F7A1
+C7F5 F7A2
+C7F6 F7A3
+C7F7 F7A4
+C7F8 F7A5
+C7F9 F7A6
+C7FA F7A7
+C7FB F7A8
+C7FC F7A9
+C7FD F7AA
+C7FE F7AB
+C840 F7AC
+C841 F7AD
+C842 F7AE
+C843 F7AF
+C844 F7B0
+C845 F7B1
+C846 F7B2
+C847 F7B3
+C848 F7B4
+C849 F7B5
+C84A F7B6
+C84B F7B7
+C84C F7B8
+C84D F7B9
+C84E F7BA
+C84F F7BB
+C850 F7BC
+C851 F7BD
+C852 F7BE
+C853 F7BF
+C854 F7C0
+C855 F7C1
+C856 F7C2
+C857 F7C3
+C858 F7C4
+C859 F7C5
+C85A F7C6
+C85B F7C7
+C85C F7C8
+C85D F7C9
+C85E F7CA
+C85F F7CB
+C860 F7CC
+C861 F7CD
+C862 F7CE
+C863 F7CF
+C864 F7D0
+C865 F7D1
+C866 F7D2
+C867 F7D3
+C868 F7D4
+C869 F7D5
+C86A F7D6
+C86B F7D7
+C86C F7D8
+C86D F7D9
+C86E F7DA
+C86F F7DB
+C870 F7DC
+C871 F7DD
+C872 F7DE
+C873 F7DF
+C874 F7E0
+C875 F7E1
+C876 F7E2
+C877 F7E3
+C878 F7E4
+C879 F7E5
+C87A F7E6
+C87B F7E7
+C87C F7E8
+C87D F7E9
+C87E F7EA
+C8A1 F7EB
+C8A2 F7EC
+C8A3 F7ED
+C8A4 F7EE
+C8CD F817
+C8CE F818
+C8CF F819
+C8D0 F81A
+C8D1 F81B
+C8D2 F81C
+C8D3 F81D
+C8D4 F81E
+C8D5 F81F
+C8D6 F820
+C8D7 F821
+C8D8 F822
+C8D9 F823
+C8DA F824
+C8DB F825
+C8DC F826
+C8DD F827
+C8DE F828
+C8DF F829
+C8E0 F82A
+C8E1 F82B
+C8E2 F82C
+C8E3 F82D
+C8E4 F82E
+C8E5 F82F
+C8E6 F830
+C8E7 F831
+C8E8 F832
+C8E9 F833
+C8EA F834
+C8EB F835
+C8EC F836
+C8ED F837
+C8EE F838
+C8EF F839
+C8F0 F83A
+C8F1 F83B
+C8F5 F83F
+C8F6 F840
+C8F7 F841
+C8F8 F842
+C8F9 F843
+C8FA F844
+C8FB F845
+C8FC F846
+C8FD F847
+C8FE F848
+FA40 E000
+FA41 E001
+FA42 E002
+FA43 E003
+FA44 E004
+FA45 E005
+FA46 E006
+FA47 E007
+FA48 E008
+FA49 E009
+FA4A E00A
+FA4B E00B
+FA4C E00C
+FA4D E00D
+FA4E E00E
+FA4F E00F
+FA50 E010
+FA51 E011
+FA52 E012
+FA53 E013
+FA54 E014
+FA55 E015
+FA56 E016
+FA57 E017
+FA58 E018
+FA59 E019
+FA5A E01A
+FA5B E01B
+FA5C E01C
+FA5D E01D
+FA5E E01E
+FA60 E020
+FA61 E021
+FA62 E022
+FA63 E023
+FA64 E024
+FA65 E025
+FA67 E027
+FA68 E028
+FA69 E029
+FA6A E02A
+FA6B E02B
+FA6C E02C
+FA6D E02D
+FA6E E02E
+FA6F E02F
+FA70 E030
+FA71 E031
+FA72 E032
+FA73 E033
+FA74 E034
+FA75 E035
+FA76 E036
+FA77 E037
+FA78 E038
+FA79 E039
+FA7A E03A
+FA7B E03B
+FA7C E03C
+FA7D E03D
+FA7E E03E
+FAA1 E03F
+FAA2 E040
+FAA3 E041
+FAA4 E042
+FAA5 E043
+FAA6 E044
+FAA7 E045
+FAA8 E046
+FAA9 E047
+FAAA E048
+FAAB E049
+FAAC E04A
+FAAD E04B
+FAAE E04C
+FAAF E04D
+FAB0 E04E
+FAB1 E04F
+FAB2 E050
+FAB3 E051
+FAB4 E052
+FAB5 E053
+FAB6 E054
+FAB7 E055
+FAB8 E056
+FAB9 E057
+FABA E058
+FABB E059
+FABC E05A
+FABE E05C
+FABF E05D
+FAC0 E05E
+FAC1 E05F
+FAC2 E060
+FAC3 E061
+FAC4 E062
+FAC6 E064
+FAC7 E065
+FAC8 E066
+FAC9 E067
+FACA E068
+FACB E069
+FACC E06A
+FACD E06B
+FACE E06C
+FACF E06D
+FAD0 E06E
+FAD1 E06F
+FAD2 E070
+FAD3 E071
+FAD4 E072
+FAD6 E074
+FAD7 E075
+FAD8 E076
+FAD9 E077
+FADA E078
+FADB E079
+FADC E07A
+FADD E07B
+FADE E07C
+FADF E07D
+FAE0 E07E
+FAE1 E07F
+FAE2 E080
+FAE3 E081
+FAE4 E082
+FAE5 E083
+FAE6 E084
+FAE7 E085
+FAE8 E086
+FAE9 E087
+FAEA E088
+FAEB E089
+FAEC E08A
+FAED E08B
+FAEE E08C
+FAEF E08D
+FAF0 E08E
+FAF1 E08F
+FAF2 E090
+FAF3 E091
+FAF4 E092
+FAF5 E093
+FAF6 E094
+FAF7 E095
+FAF8 E096
+FAF9 E097
+FAFA E098
+FAFB E099
+FAFC E09A
+FAFD E09B
+FAFE E09C
+FB40 E09D
+FB41 E09E
+FB42 E09F
+FB43 E0A0
+FB44 E0A1
+FB45 E0A2
+FB46 E0A3
+FB47 E0A4
+FB49 E0A6
+FB4A E0A7
+FB4B E0A8
+FB4C E0A9
+FB4D E0AA
+FB4E E0AB
+FB4F E0AC
+FB50 E0AD
+FB51 E0AE
+FB52 E0AF
+FB53 E0B0
+FB54 E0B1
+FB55 E0B2
+FB56 E0B3
+FB57 E0B4
+FB58 E0B5
+FB59 E0B6
+FB5A E0B7
+FB5B E0B8
+FB5C E0B9
+FB5D E0BA
+FB5E E0BB
+FB5F E0BC
+FB60 E0BD
+FB61 E0BE
+FB62 E0BF
+FB63 E0C0
+FB64 E0C1
+FB65 E0C2
+FB66 E0C3
+FB67 E0C4
+FB68 E0C5
+FB69 E0C6
+FB6A E0C7
+FB6B E0C8
+FB6C E0C9
+FB6D E0CA
+FB6E E0CB
+FB6F E0CC
+FB70 E0CD
+FB71 E0CE
+FB72 E0CF
+FB73 E0D0
+FB74 E0D1
+FB75 E0D2
+FB76 E0D3
+FB77 E0D4
+FB78 E0D5
+FB79 E0D6
+FB7A E0D7
+FB7B E0D8
+FB7C E0D9
+FB7D E0DA
+FB7E E0DB
+FBA1 E0DC
+FBA2 E0DD
+FBA3 E0DE
+FBA4 E0DF
+FBA5 E0E0
+FBA6 E0E1
+FBA7 E0E2
+FBA8 E0E3
+FBA9 E0E4
+FBAA E0E5
+FBAB E0E6
+FBAC E0E7
+FBAD E0E8
+FBAE E0E9
+FBAF E0EA
+FBB0 E0EB
+FBB1 E0EC
+FBB2 E0ED
+FBB3 E0EE
+FBB4 E0EF
+FBB5 E0F0
+FBB6 E0F1
+FBB7 E0F2
+FBB9 E0F4
+FBBA E0F5
+FBBB E0F6
+FBBC E0F7
+FBBD E0F8
+FBBE E0F9
+FBBF E0FA
+FBC0 E0FB
+FBC1 E0FC
+FBC2 E0FD
+FBC3 E0FE
+FBC4 E0FF
+FBC5 E100
+FBC6 E101
+FBC7 E102
+FBC8 E103
+FBC9 E104
+FBCA E105
+FBCB E106
+FBCC E107
+FBCD E108
+FBCE E109
+FBCF E10A
+FBD0 E10B
+FBD1 E10C
+FBD2 E10D
+FBD3 E10E
+FBD4 E10F
+FBD5 E110
+FBD6 E111
+FBD7 E112
+FBD8 E113
+FBD9 E114
+FBDA E115
+FBDB E116
+FBDC E117
+FBDD E118
+FBDE E119
+FBDF E11A
+FBE0 E11B
+FBE1 E11C
+FBE2 E11D
+FBE3 E11E
+FBE4 E11F
+FBE5 E120
+FBE6 E121
+FBE7 E122
+FBE8 E123
+FBE9 E124
+FBEA E125
+FBEB E126
+FBEC E127
+FBED E128
+FBEE E129
+FBEF E12A
+FBF0 E12B
+FBF1 E12C
+FBF2 E12D
+FBF4 E12F
+FBF5 E130
+FBF6 E131
+FBF7 E132
+FBF8 E133
+FBFA E135
+FBFB E136
+FBFC E137
+FBFD E138
+FBFE E139
+FC40 E13A
+FC41 E13B
+FC42 E13C
+FC43 E13D
+FC44 E13E
+FC45 E13F
+FC46 E140
+FC47 E141
+FC48 E142
+FC49 E143
+FC4A E144
+FC4B E145
+FC4C E146
+FC4D E147
+FC4E E148
+FC50 E14A
+FC51 E14B
+FC52 E14C
+FC53 E14D
+FC54 E14E
+FC55 E14F
+FC56 E150
+FC57 E151
+FC58 E152
+FC59 E153
+FC5A E154
+FC5B E155
+FC5C E156
+FC5D E157
+FC5E E158
+FC5F E159
+FC60 E15A
+FC61 E15B
+FC62 E15C
+FC63 E15D
+FC64 E15E
+FC65 E15F
+FC66 E160
+FC67 E161
+FC68 E162
+FC69 E163
+FC6A E164
+FC6B E165
+FC6D E167
+FC6E E168
+FC6F E169
+FC70 E16A
+FC71 E16B
+FC72 E16C
+FC73 E16D
+FC74 E16E
+FC75 E16F
+FC76 E170
+FC77 E171
+FC78 E172
+FC79 E173
+FC7A E174
+FC7B E175
+FC7C E176
+FC7D E177
+FC7E E178
+FCA1 E179
+FCA2 E17A
+FCA3 E17B
+FCA4 E17C
+FCA5 E17D
+FCA6 E17E
+FCA7 E17F
+FCA8 E180
+FCA9 E181
+FCAA E182
+FCAB E183
+FCAC E184
+FCAD E185
+FCAE E186
+FCAF E187
+FCB0 E188
+FCB1 E189
+FCB2 E18A
+FCB3 E18B
+FCB4 E18C
+FCB5 E18D
+FCB6 E18E
+FCB7 E18F
+FCB8 E190
+FCBA E192
+FCBB E193
+FCBC E194
+FCBD E195
+FCBE E196
+FCBF E197
+FCC0 E198
+FCC1 E199
+FCC2 E19A
+FCC3 E19B
+FCC4 E19C
+FCC5 E19D
+FCC6 E19E
+FCC7 E19F
+FCC8 E1A0
+FCC9 E1A1
+FCCA E1A2
+FCCB E1A3
+FCCC E1A4
+FCCD E1A5
+FCCE E1A6
+FCCF E1A7
+FCD0 E1A8
+FCD1 E1A9
+FCD2 E1AA
+FCD3 E1AB
+FCD4 E1AC
+FCD5 E1AD
+FCD6 E1AE
+FCD7 E1AF
+FCD8 E1B0
+FCD9 E1B1
+FCDA E1B2
+FCDB E1B3
+FCDC E1B4
+FCDD E1B5
+FCDE E1B6
+FCDF E1B7
+FCE0 E1B8
+FCE1 E1B9
+FCE3 E1BB
+FCE4 E1BC
+FCE5 E1BD
+FCE6 E1BE
+FCE7 E1BF
+FCE8 E1C0
+FCE9 E1C1
+FCEA E1C2
+FCEB E1C3
+FCEC E1C4
+FCED E1C5
+FCEE E1C6
+FCEF E1C7
+FCF0 E1C8
+FCF2 E1CA
+FCF3 E1CB
+FCF4 E1CC
+FCF5 E1CD
+FCF6 E1CE
+FCF7 E1CF
+FCF8 E1D0
+FCF9 E1D1
+FCFA E1D2
+FCFB E1D3
+FCFC E1D4
+FCFD E1D5
+FCFE E1D6
+FD40 E1D7
+FD41 E1D8
+FD42 E1D9
+FD43 E1DA
+FD44 E1DB
+FD45 E1DC
+FD46 E1DD
+FD47 E1DE
+FD48 E1DF
+FD49 E1E0
+FD4A E1E1
+FD4B E1E2
+FD4C E1E3
+FD4D E1E4
+FD4E E1E5
+FD4F E1E6
+FD50 E1E7
+FD51 E1E8
+FD52 E1E9
+FD53 E1EA
+FD54 E1EB
+FD55 E1EC
+FD56 E1ED
+FD57 E1EE
+FD58 E1EF
+FD59 E1F0
+FD5A E1F1
+FD5B E1F2
+FD5C E1F3
+FD5D E1F4
+FD5E E1F5
+FD5F E1F6
+FD60 E1F7
+FD61 E1F8
+FD62 E1F9
+FD63 E1FA
+FD64 E1FB
+FD65 E1FC
+FD66 E1FD
+FD67 E1FE
+FD68 E1FF
+FD69 E200
+FD6A E201
+FD6B E202
+FD6C E203
+FD6D E204
+FD6E E205
+FD6F E206
+FD70 E207
+FD71 E208
+FD72 E209
+FD73 E20A
+FD74 E20B
+FD75 E20C
+FD76 E20D
+FD77 E20E
+FD78 E20F
+FD79 E210
+FD7A E211
+FD7B E212
+FD7C E213
+FD7D E214
+FD7E E215
+FDA1 E216
+FDA2 E217
+FDA3 E218
+FDA4 E219
+FDA5 E21A
+FDA6 E21B
+FDA7 E21C
+FDA8 E21D
+FDA9 E21E
+FDAA E21F
+FDAB E220
+FDAC E221
+FDAD E222
+FDAE E223
+FDAF E224
+FDB0 E225
+FDB1 E226
+FDB2 E227
+FDB3 E228
+FDB4 E229
+FDB5 E22A
+FDB6 E22B
+FDB9 E22E
+FDBA E22F
+FDBC E231
+FDBD E232
+FDBE E233
+FDBF E234
+FDC0 E235
+FDC1 E236
+FDC2 E237
+FDC3 E238
+FDC4 E239
+FDC5 E23A
+FDC6 E23B
+FDC7 E23C
+FDC8 E23D
+FDC9 E23E
+FDCA E23F
+FDCB E240
+FDCC E241
+FDCD E242
+FDCE E243
+FDCF E244
+FDD0 E245
+FDD1 E246
+FDD2 E247
+FDD3 E248
+FDD4 E249
+FDD5 E24A
+FDD6 E24B
+FDD7 E24C
+FDD8 E24D
+FDD9 E24E
+FDDA E24F
+FDDB E250
+FDDC E251
+FDDD E252
+FDDE E253
+FDDF E254
+FDE0 E255
+FDE1 E256
+FDE2 E257
+FDE3 E258
+FDE4 E259
+FDE5 E25A
+FDE6 E25B
+FDE7 E25C
+FDE8 E25D
+FDE9 E25E
+FDEA E25F
+FDEB E260
+FDEC E261
+FDED E262
+FDEE E263
+FDEF E264
+FDF0 E265
+FDF2 E267
+FDF3 E268
+FDF4 E269
+FDF5 E26A
+FDF6 E26B
+FDF7 E26C
+FDF8 E26D
+FDF9 E26E
+FDFA E26F
+FDFB E270
+FDFC E271
+FDFD E272
+FDFE E273
+FE40 E274
+FE41 E275
+FE42 E276
+FE43 E277
+FE44 E278
+FE45 E279
+FE46 E27A
+FE47 E27B
+FE48 E27C
+FE49 E27D
+FE4A E27E
+FE4B E27F
+FE4C E280
+FE4D E281
+FE4E E282
+FE4F E283
+FE50 E284
+FE51 E285
+FE53 E287
+FE54 E288
+FE55 E289
+FE56 E28A
+FE57 E28B
+FE58 E28C
+FE59 E28D
+FE5A E28E
+FE5B E28F
+FE5C E290
+FE5D E291
+FE5E E292
+FE5F E293
+FE60 E294
+FE61 E295
+FE62 E296
+FE63 E297
+FE64 E298
+FE65 E299
+FE66 E29A
+FE67 E29B
+FE68 E29C
+FE69 E29D
+FE6A E29E
+FE6B E29F
+FE6C E2A0
+FE6D E2A1
+FE6E E2A2
+FE70 E2A4
+FE71 E2A5
+FE72 E2A6
+FE73 E2A7
+FE74 E2A8
+FE75 E2A9
+FE76 E2AA
+FE77 E2AB
+FE78 E2AC
+FE79 E2AD
+FE7A E2AE
+FE7B E2AF
+FE7C E2B0
+FE7D E2B1
+FE7E E2B2
+FEA1 E2B3
+FEA2 E2B4
+FEA3 E2B5
+FEA4 E2B6
+FEA5 E2B7
+FEA6 E2B8
+FEA7 E2B9
+FEA8 E2BA
+FEA9 E2BB
+FEAB E2BD
+FEAC E2BE
+FEAD E2BF
+FEAE E2C0
+FEAF E2C1
+FEB0 E2C2
+FEB1 E2C3
+FEB2 E2C4
+FEB3 E2C5
+FEB4 E2C6
+FEB5 E2C7
+FEB6 E2C8
+FEB7 E2C9
+FEB8 E2CA
+FEB9 E2CB
+FEBA E2CC
+FEBB E2CD
+FEBC E2CE
+FEBD E2CF
+FEBE E2D0
+FEBF E2D1
+FEC0 E2D2
+FEC1 E2D3
+FEC2 E2D4
+FEC3 E2D5
+FEC4 E2D6
+FEC5 E2D7
+FEC6 E2D8
+FEC7 E2D9
+FEC8 E2DA
+FEC9 E2DB
+FECA E2DC
+FECB E2DD
+FECC E2DE
+FECD E2DF
+FECE E2E0
+FECF E2E1
+FED0 E2E2
+FED1 E2E3
+FED2 E2E4
+FED3 E2E5
+FED4 E2E6
+FED5 E2E7
+FED6 E2E8
+FED7 E2E9
+FED8 E2EA
+FED9 E2EB
+FEDA E2EC
+FEDB E2ED
+FEDC E2EE
+FEDE E2F0
+FEDF E2F1
+FEE0 E2F2
+FEE1 E2F3
+FEE2 E2F4
+FEE3 E2F5
+FEE4 E2F6
+FEE5 E2F7
+FEE6 E2F8
+FEE7 E2F9
+FEE8 E2FA
+FEE9 E2FB
+FEEA E2FC
+FEEB E2FD
+FEEC E2FE
+FEED E2FF
+FEEE E300
+FEEF E301
+FEF0 E302
+FEF1 E303
+FEF2 E304
+FEF3 E305
+FEF4 E306
+FEF5 E307
+FEF6 E308
+FEF7 E309
+FEF8 E30A
+FEF9 E30B
+FEFA E30C
+FEFB E30D
+FEFC E30E
+FEFD E30F
+FEFE E310
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS2008.map Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,5019 @@
+#
+# http://www.ogcio.gov.hk/ccli/eng/hskcs/mapping_table_2008.html
+#
+# commnent out following entries
+#
+# 88A3 <00EA,0304>
+# 88A5 <00EA,030C>
+# 8862 <00CA,0304>
+# 8864 <00CA,030C>
+#
+8740 43F0
+8741 4C32
+8742 4603
+8743 45A6
+8744 4578
+8745 27267
+8746 4D77
+8747 45B3
+8748 27CB1
+8749 4CE2
+874A 27CC5
+874B 3B95
+874C 4736
+874D 4744
+874E 4C47
+874F 4C40
+8750 242BF
+8751 23617
+8752 27352
+8753 26E8B
+8754 270D2
+8755 4C57
+8756 2A351
+8757 474F
+8758 45DA
+8759 4C85
+875A 27C6C
+875B 4D07
+875C 4AA4
+875D 46A1
+875E 26B23
+875F 7225
+8760 25A54
+8761 21A63
+8762 23E06
+8763 23F61
+8764 664D
+8765 56FB
+8767 7D95
+8768 591D
+8769 28BB9
+876A 3DF4
+876B 9734
+876C 27BEF
+876D 5BDB
+876E 21D5E
+876F 5AA4
+8770 3625
+8771 29EB0
+8772 5AD1
+8773 5BB7
+8774 5CFC
+8775 676E
+8776 8593
+8777 29945
+8778 7461
+8779 749D
+877A 3875
+877B 21D53
+877C 2369E
+877D 26021
+877E 3EEC
+87A1 258DE
+87A2 3AF5
+87A3 7AFC
+87A4 9F97
+87A5 24161
+87A6 2890D
+87A7 231EA
+87A8 20A8A
+87A9 2325E
+87AA 430A
+87AB 8484
+87AC 9F96
+87AD 942F
+87AE 4930
+87AF 8613
+87B0 5896
+87B1 974A
+87B2 9218
+87B3 79D0
+87B4 7A32
+87B5 6660
+87B6 6A29
+87B7 889D
+87B8 744C
+87B9 7BC5
+87BA 6782
+87BB 7A2C
+87BC 524F
+87BD 9046
+87BE 34E6
+87BF 73C4
+87C0 25DB9
+87C1 74C6
+87C2 9FC7
+87C3 57B3
+87C4 492F
+87C5 544C
+87C6 4131
+87C7 2368E
+87C8 5818
+87C9 7A72
+87CA 27B65
+87CB 8B8F
+87CC 46AE
+87CD 26E88
+87CE 4181
+87CF 25D99
+87D0 7BAE
+87D1 224BC
+87D2 9FC8
+87D3 224C1
+87D4 224C9
+87D5 224CC
+87D6 9FC9
+87D7 8504
+87D8 235BB
+87D9 40B4
+87DA 9FCA
+87DB 44E1
+87DC 2ADFF
+87DD 62C1
+87DE 706E
+87DF 9FCB
+8840 31C0
+8841 31C1
+8842 31C2
+8843 31C3
+8844 31C4
+8845 2010C
+8846 31C5
+8847 200D1
+8848 200CD
+8849 31C6
+884A 31C7
+884B 200CB
+884C 21FE8
+884D 31C8
+884E 200CA
+884F 31C9
+8850 31CA
+8851 31CB
+8852 31CC
+8853 2010E
+8854 31CD
+8855 31CE
+8856 0100
+8857 00C1
+8858 01CD
+8859 00C0
+885A 0112
+885B 00C9
+885C 011A
+885D 00C8
+885E 014C
+885F 00D3
+8860 01D1
+8861 00D2
+#8862 <00CA,0304>
+8863 1EBE
+#8864 <00CA,030C>
+8865 1EC0
+8866 00CA
+8867 0101
+8868 00E1
+8869 01CE
+886A 00E0
+886B 0251
+886C 0113
+886D 00E9
+886E 011B
+886F 00E8
+8870 012B
+8871 00ED
+8872 01D0
+8873 00EC
+8874 014D
+8875 00F3
+8876 01D2
+8877 00F2
+8878 016B
+8879 00FA
+887A 01D4
+887B 00F9
+887C 01D6
+887D 01D8
+887E 01DA
+88A1 01DC
+88A2 00FC
+#88A3 <00EA,0304>
+88A4 1EBF
+#88A5 <00EA,030C>
+88A6 1EC1
+88A7 00EA
+88A8 0261
+88A9 23DA
+88AA 23DB
+8940 2A3A9
+8941 21145
+8943 650A
+8946 4E3D
+8947 6EDD
+8948 9D4E
+8949 91DF
+894C 27735
+894D 6491
+894E 4F1A
+894F 4F28
+8950 4FA8
+8951 5156
+8952 5174
+8953 519C
+8954 51E4
+8955 52A1
+8956 52A8
+8957 533B
+8958 534E
+8959 53D1
+895A 53D8
+895B 56E2
+895C 58F0
+895D 5904
+895E 5907
+895F 5932
+8960 5934
+8961 5B66
+8962 5B9E
+8963 5B9F
+8964 5C9A
+8965 5E86
+8966 603B
+8967 6589
+8968 67FE
+8969 6804
+896A 6865
+896B 6D4E
+896C 70BC
+896D 7535
+896E 7EA4
+896F 7EAC
+8970 7EBA
+8971 7EC7
+8972 7ECF
+8973 7EDF
+8974 7F06
+8975 7F37
+8976 827A
+8977 82CF
+8978 836F
+8979 89C6
+897A 8BBE
+897B 8BE2
+897C 8F66
+897D 8F67
+897E 8F6E
+89A1 7411
+89A2 7CFC
+89A3 7DCD
+89A4 6946
+89A5 7AC9
+89A6 5227
+89AB 918C
+89AC 78B8
+89AD 915E
+89AE 80BC
+89B0 8D0B
+89B1 80F6
+89B2 209E7
+89B5 809F
+89B6 9EC7
+89B7 4CCD
+89B8 9DC9
+89B9 9E0C
+89BA 4C3E
+89BB 29DF6
+89BC 2700E
+89BD 9E0A
+89BE 2A133
+89BF 35C1
+89C1 6E9A
+89C2 823E
+89C3 7519
+89C5 4911
+89C6 9A6C
+89C7 9A8F
+89C8 9F99
+89C9 7987
+89CA 2846C
+89CB 21DCA
+89CC 205D0
+89CD 22AE6
+89CE 4E24
+89CF 4E81
+89D0 4E80
+89D1 4E87
+89D2 4EBF
+89D3 4EEB
+89D4 4F37
+89D5 344C
+89D6 4FBD
+89D7 3E48
+89D8 5003
+89D9 5088
+89DA 347D
+89DB 3493
+89DC 34A5
+89DD 5186
+89DE 5905
+89DF 51DB
+89E0 51FC
+89E1 5205
+89E2 4E89
+89E3 5279
+89E4 5290
+89E5 5327
+89E6 35C7
+89E7 53A9
+89E8 3551
+89E9 53B0
+89EA 3553
+89EB 53C2
+89EC 5423
+89ED 356D
+89EE 3572
+89EF 3681
+89F0 5493
+89F1 54A3
+89F2 54B4
+89F3 54B9
+89F4 54D0
+89F5 54EF
+89F6 5518
+89F7 5523
+89F8 5528
+89F9 3598
+89FA 553F
+89FB 35A5
+89FC 35BF
+89FD 55D7
+89FE 35C5
+8A40 27D84
+8A41 5525
+8A43 20C42
+8A44 20D15
+8A45 2512B
+8A46 5590
+8A47 22CC6
+8A48 39EC
+8A49 20341
+8A4A 8E46
+8A4B 24DB8
+8A4C 294E5
+8A4D 4053
+8A4E 280BE
+8A4F 777A
+8A50 22C38
+8A51 3A34
+8A52 47D5
+8A53 2815D
+8A54 269F2
+8A55 24DEA
+8A56 64DD
+8A57 20D7C
+8A58 20FB4
+8A59 20CD5
+8A5A 210F4
+8A5B 648D
+8A5C 8E7E
+8A5D 20E96
+8A5E 20C0B
+8A5F 20F64
+8A60 22CA9
+8A61 28256
+8A62 244D3
+8A64 20D46
+8A65 29A4D
+8A66 280E9
+8A67 47F4
+8A68 24EA7
+8A69 22CC2
+8A6A 9AB2
+8A6B 3A67
+8A6C 295F4
+8A6D 3FED
+8A6E 3506
+8A6F 252C7
+8A70 297D4
+8A71 278C8
+8A72 22D44
+8A73 9D6E
+8A74 9815
+8A76 43D9
+8A77 260A5
+8A78 64B4
+8A79 54E3
+8A7A 22D4C
+8A7B 22BCA
+8A7C 21077
+8A7D 39FB
+8A7E 2106F
+8AA1 266DA
+8AA2 26716
+8AA3 279A0
+8AA4 64EA
+8AA5 25052
+8AA6 20C43
+8AA7 8E68
+8AA8 221A1
+8AA9 28B4C
+8AAA 20731
+8AAC 480B
+8AAD 201A9
+8AAE 3FFA
+8AAF 5873
+8AB0 22D8D
+8AB2 245C8
+8AB3 204FC
+8AB4 26097
+8AB5 20F4C
+8AB6 20D96
+8AB7 5579
+8AB8 40BB
+8AB9 43BA
+8ABB 4AB4
+8ABC 22A66
+8ABD 2109D
+8ABE 81AA
+8ABF 98F5
+8AC0 20D9C
+8AC1 6379
+8AC2 39FE
+8AC3 22775
+8AC4 8DC0
+8AC5 56A1
+8AC6 647C
+8AC7 3E43
+8AC9 2A601
+8ACA 20E09
+8ACB 22ACF
+8ACC 22CC9
+8ACE 210C8
+8ACF 239C2
+8AD0 3992
+8AD1 3A06
+8AD2 2829B
+8AD3 3578
+8AD4 25E49
+8AD5 220C7
+8AD6 5652
+8AD7 20F31
+8AD8 22CB2
+8AD9 29720
+8ADA 34BC
+8ADB 6C3D
+8ADC 24E3B
+8ADF 27574
+8AE0 22E8B
+8AE1 22208
+8AE2 2A65B
+8AE3 28CCD
+8AE4 20E7A
+8AE5 20C34
+8AE6 2681C
+8AE7 7F93
+8AE8 210CF
+8AE9 22803
+8AEA 22939
+8AEB 35FB
+8AEC 251E3
+8AED 20E8C
+8AEE 20F8D
+8AEF 20EAA
+8AF0 3F93
+8AF1 20F30
+8AF2 20D47
+8AF3 2114F
+8AF4 20E4C
+8AF6 20EAB
+8AF7 20BA9
+8AF8 20D48
+8AF9 210C0
+8AFA 2113D
+8AFB 3FF9
+8AFC 22696
+8AFD 6432
+8AFE 20FAD
+8B40 233F4
+8B41 27639
+8B42 22BCE
+8B43 20D7E
+8B44 20D7F
+8B45 22C51
+8B46 22C55
+8B47 3A18
+8B48 20E98
+8B49 210C7
+8B4A 20F2E
+8B4B 2A632
+8B4C 26B50
+8B4D 28CD2
+8B4E 28D99
+8B4F 28CCA
+8B50 95AA
+8B51 54CC
+8B52 82C4
+8B53 55B9
+8B55 29EC3
+8B56 9C26
+8B57 9AB6
+8B58 2775E
+8B59 22DEE
+8B5A 7140
+8B5B 816D
+8B5C 80EC
+8B5D 5C1C
+8B5E 26572
+8B5F 8134
+8B60 3797
+8B61 535F
+8B62 280BD
+8B63 91B6
+8B64 20EFA
+8B65 20E0F
+8B66 20E77
+8B67 20EFB
+8B68 35DD
+8B69 24DEB
+8B6A 3609
+8B6B 20CD6
+8B6C 56AF
+8B6D 227B5
+8B6E 210C9
+8B6F 20E10
+8B70 20E78
+8B71 21078
+8B72 21148
+8B73 28207
+8B74 21455
+8B75 20E79
+8B76 24E50
+8B77 22DA4
+8B78 5A54
+8B79 2101D
+8B7A 2101E
+8B7B 210F5
+8B7C 210F6
+8B7D 579C
+8B7E 20E11
+8BA1 27694
+8BA2 282CD
+8BA3 20FB5
+8BA4 20E7B
+8BA5 2517E
+8BA6 3703
+8BA7 20FB6
+8BA8 21180
+8BA9 252D8
+8BAA 2A2BD
+8BAB 249DA
+8BAC 2183A
+8BAD 24177
+8BAE 2827C
+8BAF 5899
+8BB0 5268
+8BB1 361A
+8BB2 2573D
+8BB3 7BB2
+8BB4 5B68
+8BB5 4800
+8BB6 4B2C
+8BB7 9F27
+8BB8 49E7
+8BB9 9C1F
+8BBA 9B8D
+8BBB 25B74
+8BBC 2313D
+8BBD 55FB
+8BBE 35F2
+8BBF 5689
+8BC0 4E28
+8BC1 5902
+8BC2 21BC1
+8BC3 2F878
+8BC4 9751
+8BC5 20086
+8BC6 4E5B
+8BC7 4EBB
+8BC8 353E
+8BC9 5C23
+8BCA 5F51
+8BCB 5FC4
+8BCC 38FA
+8BCD 624C
+8BCE 6535
+8BCF 6B7A
+8BD0 6C35
+8BD1 6C3A
+8BD2 706C
+8BD3 722B
+8BD4 4E2C
+8BD5 72AD
+8BD6 248E9
+8BD7 7F52
+8BD8 793B
+8BD9 7CF9
+8BDA 7F53
+8BDB 2626A
+8BDC 34C1
+8BDE 2634B
+8BDF 8002
+8BE0 8080
+8BE1 26612
+8BE2 26951
+8BE3 535D
+8BE4 8864
+8BE5 89C1
+8BE6 278B2
+8BE7 8BA0
+8BE8 8D1D
+8BE9 9485
+8BEA 9578
+8BEB 957F
+8BEC 95E8
+8BED 28E0F
+8BEE 97E6
+8BEF 9875
+8BF0 98CE
+8BF1 98DE
+8BF2 9963
+8BF3 29810
+8BF4 9C7C
+8BF5 9E1F
+8BF6 9EC4
+8BF7 6B6F
+8BF8 F907
+8BF9 4E37
+8BFA 20087
+8BFB 961D
+8BFC 6237
+8BFD 94A2
+8C40 503B
+8C41 6DFE
+8C42 29C73
+8C43 9FA6
+8C44 3DC9
+8C45 888F
+8C46 2414E
+8C47 7077
+8C48 5CF5
+8C49 4B20
+8C4A 251CD
+8C4B 3559
+8C4C 25D30
+8C4D 6122
+8C4E 28A32
+8C4F 8FA7
+8C50 91F6
+8C51 7191
+8C52 6719
+8C53 73BA
+8C54 23281
+8C55 2A107
+8C56 3C8B
+8C57 21980
+8C58 4B10
+8C59 78E4
+8C5A 7402
+8C5B 51AE
+8C5C 2870F
+8C5D 4009
+8C5E 6A63
+8C5F 2A2BA
+8C60 4223
+8C61 860F
+8C62 20A6F
+8C63 7A2A
+8C64 29947
+8C65 28AEA
+8C66 9755
+8C67 704D
+8C68 5324
+8C69 2207E
+8C6A 93F4
+8C6B 76D9
+8C6C 289E3
+8C6D 9FA7
+8C6E 77DD
+8C6F 4EA3
+8C70 4FF0
+8C71 50BC
+8C72 4E2F
+8C73 4F17
+8C74 9FA8
+8C75 5434
+8C76 7D8B
+8C77 5892
+8C78 58D0
+8C79 21DB6
+8C7A 5E92
+8C7B 5E99
+8C7C 5FC2
+8C7D 22712
+8C7E 658B
+8CA1 233F9
+8CA2 6919
+8CA3 6A43
+8CA4 23C63
+8CA5 6CFF
+8CA7 7200
+8CA8 24505
+8CA9 738C
+8CAA 3EDB
+8CAB 24A13
+8CAC 5B15
+8CAD 74B9
+8CAE 8B83
+8CAF 25CA4
+8CB0 25695
+8CB1 7A93
+8CB2 7BEC
+8CB3 7CC3
+8CB4 7E6C
+8CB5 82F8
+8CB6 8597
+8CB7 9FA9
+8CB8 8890
+8CB9 9FAA
+8CBA 8EB9
+8CBB 9FAB
+8CBC 8FCF
+8CBD 855F
+8CBE 99E0
+8CBF 9221
+8CC0 9FAC
+8CC1 28DB9
+8CC2 2143F
+8CC3 4071
+8CC4 42A2
+8CC5 5A1A
+8CC9 9868
+8CCA 676B
+8CCB 4276
+8CCC 573D
+8CCE 85D6
+8CCF 2497B
+8CD0 82BF
+8CD1 2710D
+8CD2 4C81
+8CD3 26D74
+8CD4 5D7B
+8CD5 26B15
+8CD6 26FBE
+8CD7 9FAD
+8CD8 9FAE
+8CD9 5B96
+8CDA 9FAF
+8CDB 66E7
+8CDC 7E5B
+8CDD 6E57
+8CDE 79CA
+8CDF 3D88
+8CE0 44C3
+8CE1 23256
+8CE2 22796
+8CE3 439A
+8CE4 4536
+8CE6 5CD5
+8CE7 23B1A
+8CE8 8AF9
+8CE9 5C78
+8CEA 3D12
+8CEB 23551
+8CEC 5D78
+8CED 9FB2
+8CEE 7157
+8CEF 4558
+8CF0 240EC
+8CF1 21E23
+8CF2 4C77
+8CF3 3978
+8CF4 344A
+8CF5 201A4
+8CF6 26C41
+8CF7 8ACC
+8CF8 4FB4
+8CF9 20239
+8CFA 59BF
+8CFB 816C
+8CFC 9856
+8CFD 298FA
+8CFE 5F3B
+8D40 20B9F
+8D42 221C1
+8D43 2896D
+8D44 4102
+8D45 46BB
+8D46 29079
+8D47 3F07
+8D48 9FB3
+8D49 2A1B5
+8D4A 40F8
+8D4B 37D6
+8D4C 46F7
+8D4D 26C46
+8D4E 417C
+8D4F 286B2
+8D50 273FF
+8D51 456D
+8D52 38D4
+8D53 2549A
+8D54 4561
+8D55 451B
+8D56 4D89
+8D57 4C7B
+8D58 4D76
+8D59 45EA
+8D5A 3FC8
+8D5B 24B0F
+8D5C 3661
+8D5D 44DE
+8D5E 44BD
+8D5F 41ED
+8D60 5D3E
+8D61 5D48
+8D62 5D56
+8D63 3DFC
+8D64 380F
+8D65 5DA4
+8D66 5DB9
+8D67 3820
+8D68 3838
+8D69 5E42
+8D6A 5EBD
+8D6B 5F25
+8D6C 5F83
+8D6D 3908
+8D6E 3914
+8D6F 393F
+8D70 394D
+8D71 60D7
+8D72 613D
+8D73 5CE5
+8D74 3989
+8D75 61B7
+8D76 61B9
+8D77 61CF
+8D78 39B8
+8D79 622C
+8D7A 6290
+8D7B 62E5
+8D7C 6318
+8D7D 39F8
+8D7E 56B1
+8DA1 3A03
+8DA2 63E2
+8DA3 63FB
+8DA4 6407
+8DA5 645A
+8DA6 3A4B
+8DA7 64C0
+8DA8 5D15
+8DA9 5621
+8DAA 9F9F
+8DAB 3A97
+8DAC 6586
+8DAD 3ABD
+8DAE 65FF
+8DAF 6653
+8DB0 3AF2
+8DB1 6692
+8DB2 3B22
+8DB3 6716
+8DB4 3B42
+8DB5 67A4
+8DB6 6800
+8DB7 3B58
+8DB8 684A
+8DB9 6884
+8DBA 3B72
+8DBB 3B71
+8DBC 3B7B
+8DBD 6909
+8DBE 6943
+8DBF 725C
+8DC0 6964
+8DC1 699F
+8DC2 6985
+8DC3 3BBC
+8DC4 69D6
+8DC5 3BDD
+8DC6 6A65
+8DC7 6A74
+8DC8 6A71
+8DC9 6A82
+8DCA 3BEC
+8DCB 6A99
+8DCC 3BF2
+8DCD 6AAB
+8DCE 6AB5
+8DCF 6AD4
+8DD0 6AF6
+8DD1 6B81
+8DD2 6BC1
+8DD3 6BEA
+8DD4 6C75
+8DD5 6CAA
+8DD6 3CCB
+8DD7 6D02
+8DD8 6D06
+8DD9 6D26
+8DDA 6D81
+8DDB 3CEF
+8DDC 6DA4
+8DDD 6DB1
+8DDE 6E15
+8DDF 6E18
+8DE0 6E29
+8DE1 6E86
+8DE2 289C0
+8DE3 6EBB
+8DE4 6EE2
+8DE5 6EDA
+8DE6 9F7F
+8DE7 6EE8
+8DE8 6EE9
+8DE9 6F24
+8DEA 6F34
+8DEB 3D46
+8DEC 23F41
+8DED 6F81
+8DEE 6FBE
+8DEF 3D6A
+8DF0 3D75
+8DF1 71B7
+8DF2 5C99
+8DF3 3D8A
+8DF4 702C
+8DF5 3D91
+8DF6 7050
+8DF7 7054
+8DF8 706F
+8DF9 707F
+8DFA 7089
+8DFB 20325
+8DFC 43C1
+8DFD 35F1
+8DFE 20ED8
+8E40 23ED7
+8E41 57BE
+8E42 26ED3
+8E43 713E
+8E44 257E0
+8E45 364E
+8E46 69A2
+8E47 28BE9
+8E48 5B74
+8E49 7A49
+8E4A 258E1
+8E4B 294D9
+8E4C 7A65
+8E4D 7A7D
+8E4E 259AC
+8E4F 7ABB
+8E50 7AB0
+8E51 7AC2
+8E52 7AC3
+8E53 71D1
+8E54 2648D
+8E55 41CA
+8E56 7ADA
+8E57 7ADD
+8E58 7AEA
+8E59 41EF
+8E5A 54B2
+8E5B 25C01
+8E5C 7B0B
+8E5D 7B55
+8E5E 7B29
+8E5F 2530E
+8E60 25CFE
+8E61 7BA2
+8E62 7B6F
+8E63 839C
+8E64 25BB4
+8E65 26C7F
+8E66 7BD0
+8E67 8421
+8E68 7B92
+8E6A 25D20
+8E6B 3DAD
+8E6C 25C65
+8E6D 8492
+8E6E 7BFA
+8E70 7C35
+8E71 25CC1
+8E72 7C44
+8E73 7C83
+8E74 24882
+8E75 7CA6
+8E76 667D
+8E77 24578
+8E78 7CC9
+8E79 7CC7
+8E7A 7CE6
+8E7B 7C74
+8E7C 7CF3
+8E7D 7CF5
+8EA1 7E67
+8EA2 451D
+8EA3 26E44
+8EA4 7D5D
+8EA5 26ED6
+8EA6 748D
+8EA7 7D89
+8EA8 7DAB
+8EA9 7135
+8EAA 7DB3
+8EAC 24057
+8EAD 26029
+8EAE 7DE4
+8EAF 3D13
+8EB0 7DF5
+8EB1 217F9
+8EB2 7DE5
+8EB3 2836D
+8EB5 26121
+8EB6 2615A
+8EB7 7E6E
+8EB8 7E92
+8EB9 432B
+8EBA 946C
+8EBB 7E27
+8EBC 7F40
+8EBD 7F41
+8EBE 7F47
+8EBF 7936
+8EC0 262D0
+8EC1 99E1
+8EC2 7F97
+8EC3 26351
+8EC4 7FA3
+8EC5 21661
+8EC6 20068
+8EC7 455C
+8EC8 23766
+8EC9 4503
+8ECA 2833A
+8ECB 7FFA
+8ECC 26489
+8ECE 8008
+8ECF 801D
+8ED1 802F
+8ED2 2A087
+8ED3 26CC3
+8ED4 803B
+8ED5 803C
+8ED6 8061
+8ED7 22714
+8ED8 4989
+8ED9 26626
+8EDA 23DE3
+8EDB 266E8
+8EDC 6725
+8EDD 80A7
+8EDE 28A48
+8EDF 8107
+8EE0 811A
+8EE1 58B0
+8EE2 226F6
+8EE3 6C7F
+8EE4 26498
+8EE5 24FB8
+8EE6 64E7
+8EE7 2148A
+8EE8 8218
+8EE9 2185E
+8EEA 6A53
+8EEB 24A65
+8EEC 24A95
+8EED 447A
+8EEE 8229
+8EEF 20B0D
+8EF0 26A52
+8EF1 23D7E
+8EF2 4FF9
+8EF3 214FD
+8EF4 84E2
+8EF5 8362
+8EF6 26B0A
+8EF7 249A7
+8EF8 23530
+8EF9 21773
+8EFA 23DF8
+8EFB 82AA
+8EFC 691B
+8EFD 2F994
+8EFE 41DB
+8F40 854B
+8F41 82D0
+8F42 831A
+8F43 20E16
+8F44 217B4
+8F45 36C1
+8F46 2317D
+8F47 2355A
+8F48 827B
+8F49 82E2
+8F4A 8318
+8F4B 23E8B
+8F4C 26DA3
+8F4D 26B05
+8F4E 26B97
+8F4F 235CE
+8F50 3DBF
+8F51 831D
+8F52 55EC
+8F53 8385
+8F54 450B
+8F55 26DA5
+8F56 83AC
+8F58 83D3
+8F59 347E
+8F5A 26ED4
+8F5B 6A57
+8F5C 855A
+8F5D 3496
+8F5E 26E42
+8F5F 22EEF
+8F60 8458
+8F61 25BE4
+8F62 8471
+8F63 3DD3
+8F64 44E4
+8F65 6AA7
+8F66 844A
+8F67 23CB5
+8F68 7958
+8F6A 26B96
+8F6B 26E77
+8F6C 26E43
+8F6D 84DE
+8F6F 8391
+8F70 44A0
+8F71 8493
+8F72 84E4
+8F73 25C91
+8F74 4240
+8F75 25CC0
+8F76 4543
+8F77 8534
+8F78 5AF2
+8F79 26E99
+8F7A 4527
+8F7B 8573
+8F7C 4516
+8F7D 67BF
+8F7E 8616
+8FA1 28625
+8FA2 2863B
+8FA3 85C1
+8FA4 27088
+8FA5 8602
+8FA6 21582
+8FA7 270CD
+8FA8 2F9B2
+8FA9 456A
+8FAA 8628
+8FAB 3648
+8FAC 218A2
+8FAD 53F7
+8FAE 2739A
+8FAF 867E
+8FB0 8771
+8FB1 2A0F8
+8FB2 87EE
+8FB3 22C27
+8FB4 87B1
+8FB5 87DA
+8FB6 880F
+8FB7 5661
+8FB8 866C
+8FB9 6856
+8FBA 460F
+8FBB 8845
+8FBC 8846
+8FBD 275E0
+8FBE 23DB9
+8FBF 275E4
+8FC0 885E
+8FC1 889C
+8FC2 465B
+8FC3 88B4
+8FC4 88B5
+8FC5 63C1
+8FC6 88C5
+8FC7 7777
+8FC8 2770F
+8FC9 8987
+8FCA 898A
+8FCD 89A7
+8FCE 89BC
+8FCF 28A25
+8FD0 89E7
+8FD1 27924
+8FD2 27ABD
+8FD3 8A9C
+8FD4 7793
+8FD5 91FE
+8FD6 8A90
+8FD7 27A59
+8FD8 7AE9
+8FD9 27B3A
+8FDA 23F8F
+8FDB 4713
+8FDC 27B38
+8FDD 717C
+8FDE 8B0C
+8FDF 8B1F
+8FE0 25430
+8FE1 25565
+8FE2 8B3F
+8FE3 8B4C
+8FE4 8B4D
+8FE5 8AA9
+8FE6 24A7A
+8FE7 8B90
+8FE8 8B9B
+8FE9 8AAF
+8FEA 216DF
+8FEB 4615
+8FEC 884F
+8FED 8C9B
+8FEE 27D54
+8FEF 27D8F
+8FF0 2F9D4
+8FF1 3725
+8FF2 27D53
+8FF3 8CD6
+8FF4 27D98
+8FF5 27DBD
+8FF6 8D12
+8FF7 8D03
+8FF8 21910
+8FF9 8CDB
+8FFA 705C
+8FFB 8D11
+8FFC 24CC9
+8FFD 3ED0
+9040 8DA9
+9041 28002
+9042 21014
+9043 2498A
+9044 3B7C
+9045 281BC
+9046 2710C
+9047 7AE7
+9048 8EAD
+9049 8EB6
+904A 8EC3
+904B 92D4
+904C 8F19
+904D 8F2D
+904E 28365
+904F 28412
+9050 8FA5
+9051 9303
+9052 2A29F
+9053 20A50
+9054 8FB3
+9055 492A
+9056 289DE
+9057 2853D
+9058 23DBB
+9059 5EF8
+905A 23262
+905B 8FF9
+905C 2A014
+905D 286BC
+905E 28501
+905F 22325
+9060 3980
+9061 26ED7
+9062 9037
+9063 2853C
+9064 27ABE
+9065 9061
+9066 2856C
+9067 2860B
+9068 90A8
+9069 28713
+906A 90C4
+906B 286E6
+906C 90AE
+906E 9167
+906F 3AF0
+9070 91A9
+9071 91C4
+9072 7CAC
+9073 28933
+9074 21E89
+9075 920E
+9076 6C9F
+9077 9241
+9078 9262
+9079 255B9
+907B 28AC6
+907C 23C9B
+907D 28B0C
+907E 255DB
+90A1 20D31
+90A2 932C
+90A3 936B
+90A4 28AE1
+90A5 28BEB
+90A6 708F
+90A7 5AC3
+90A8 28AE2
+90A9 28AE5
+90AA 4965
+90AB 9244
+90AC 28BEC
+90AD 28C39
+90AE 28BFF
+90AF 9373
+90B0 945B
+90B1 8EBC
+90B2 9585
+90B3 95A6
+90B4 9426
+90B5 95A0
+90B6 6FF6
+90B7 42B9
+90B8 2267A
+90B9 286D8
+90BA 2127C
+90BB 23E2E
+90BC 49DF
+90BD 6C1C
+90BE 967B
+90BF 9696
+90C0 416C
+90C1 96A3
+90C2 26ED5
+90C3 61DA
+90C4 96B6
+90C5 78F5
+90C6 28AE0
+90C7 96BD
+90C8 53CC
+90C9 49A1
+90CA 26CB8
+90CB 20274
+90CC 26410
+90CD 290AF
+90CE 290E5
+90CF 24AD1
+90D0 21915
+90D1 2330A
+90D2 9731
+90D3 8642
+90D4 9736
+90D5 4A0F
+90D6 453D
+90D7 4585
+90D8 24AE9
+90D9 7075
+90DA 5B41
+90DB 971B
+90DD 291D5
+90DE 9757
+90DF 5B4A
+90E0 291EB
+90E1 975F
+90E2 9425
+90E3 50D0
+90E4 230B7
+90E5 230BC
+90E6 9789
+90E7 979F
+90E8 97B1
+90E9 97BE
+90EA 97C0
+90EB 97D2
+90EC 97E0
+90ED 2546C
+90EE 97EE
+90EF 741C
+90F0 29433
+90F2 97F5
+90F3 2941D
+90F4 2797A
+90F5 4AD1
+90F6 9834
+90F7 9833
+90F8 984B
+90F9 9866
+90FA 3B0E
+90FB 27175
+90FC 3D51
+90FD 20630
+90FE 2415C
+9140 25706
+9141 98CA
+9142 98B7
+9143 98C8
+9144 98C7
+9145 4AFF
+9146 26D27
+9147 216D3
+9148 55B0
+9149 98E1
+914A 98E6
+914B 98EC
+914C 9378
+914D 9939
+914E 24A29
+914F 4B72
+9150 29857
+9151 29905
+9152 99F5
+9153 9A0C
+9154 9A3B
+9155 9A10
+9156 9A58
+9157 25725
+9158 36C4
+9159 290B1
+915A 29BD5
+915B 9AE0
+915C 9AE2
+915D 29B05
+915E 9AF4
+915F 4C0E
+9160 9B14
+9161 9B2D
+9162 28600
+9163 5034
+9164 9B34
+9165 269A8
+9166 38C3
+9167 2307D
+9168 9B50
+9169 9B40
+916A 29D3E
+916B 5A45
+916C 21863
+916D 9B8E
+916E 2424B
+916F 9C02
+9170 9BFF
+9171 9C0C
+9172 29E68
+9173 9DD4
+9174 29FB7
+9175 2A192
+9176 2A1AB
+9177 2A0E1
+9178 2A123
+9179 2A1DF
+917A 9D7E
+917B 9D83
+917C 2A134
+917D 9E0E
+917E 6888
+91A1 9DC4
+91A2 2215B
+91A3 2A193
+91A4 2A220
+91A5 2193B
+91A6 2A233
+91A7 9D39
+91A8 2A0B9
+91A9 2A2B4
+91AA 9E90
+91AB 9E95
+91AC 9E9E
+91AD 9EA2
+91AE 4D34
+91AF 9EAA
+91B0 9EAF
+91B1 24364
+91B2 9EC1
+91B3 3B60
+91B4 39E5
+91B5 3D1D
+91B6 4F32
+91B7 37BE
+91B8 28C2B
+91B9 9F02
+91BA 9F08
+91BB 4B96
+91BC 9424
+91BD 26DA2
+91BE 9F17
+91C0 9F39
+91C1 569F
+91C2 568A
+91C3 9F45
+91C4 99B8
+91C5 2908B
+91C6 97F2
+91C7 847F
+91C8 9F62
+91C9 9F69
+91CA 7ADC
+91CB 9F8E
+91CC 7216
+91CD 4BBE
+91CE 24975
+91CF 249BB
+91D0 7177
+91D1 249F8
+91D2 24348
+91D3 24A51
+91D4 739E
+91D5 28BDA
+91D6 218FA
+91D7 799F
+91D8 2897E
+91D9 28E36
+91DA 9369
+91DB 93F3
+91DC 28A44
+91DD 92EC
+91DE 9381
+91DF 93CB
+91E0 2896C
+91E1 244B9
+91E2 7217
+91E3 3EEB
+91E4 7772
+91E5 7A43
+91E6 70D0
+91E7 24473
+91E8 243F8
+91E9 717E
+91EA 217EF
+91EB 70A3
+91EC 218BE
+91ED 23599
+91EE 3EC7
+91EF 21885
+91F0 2542F
+91F1 217F8
+91F2 3722
+91F3 216FB
+91F4 21839
+91F5 36E1
+91F6 21774
+91F7 218D1
+91F8 25F4B
+91F9 3723
+91FA 216C0
+91FB 575B
+91FC 24A25
+91FD 213FE
+91FE 212A8
+9240 213C6
+9241 214B6
+9242 8503
+9243 236A6
+9245 8455
+9246 24994
+9247 27165
+9248 23E31
+9249 2555C
+924A 23EFB
+924B 27052
+924C 44F4
+924D 236EE
+924E 2999D
+924F 26F26
+9250 67F9
+9251 3733
+9252 3C15
+9253 3DE7
+9254 586C
+9255 21922
+9256 6810
+9257 4057
+9258 2373F
+9259 240E1
+925A 2408B
+925B 2410F
+925C 26C21
+925D 54CB
+925E 569E
+925F 266B1
+9260 5692
+9261 20FDF
+9262 20BA8
+9263 20E0D
+9264 93C6
+9265 28B13
+9266 939C
+9267 4EF8
+9268 512B
+9269 3819
+926A 24436
+926B 4EBC
+926C 20465
+926D 2037F
+926E 4F4B
+926F 4F8A
+9270 25651
+9271 5A68
+9272 201AB
+9273 203CB
+9274 3999
+9275 2030A
+9276 20414
+9277 3435
+9278 4F29
+9279 202C0
+927A 28EB3
+927B 20275
+927C 8ADA
+927D 2020C
+927E 4E98
+92A1 50CD
+92A2 510D
+92A3 4FA2
+92A4 4F03
+92A5 24A0E
+92A6 23E8A
+92A7 4F42
+92A8 502E
+92A9 506C
+92AA 5081
+92AB 4FCC
+92AC 4FE5
+92AD 5058
+92AE 50FC
+92B3 6E76
+92B4 23595
+92B5 23E39
+92B6 23EBF
+92B7 6D72
+92B8 21884
+92B9 23E89
+92BA 51A8
+92BB 51C3
+92BC 205E0
+92BD 44DD
+92BE 204A3
+92BF 20492
+92C0 20491
+92C1 8D7A
+92C2 28A9C
+92C3 2070E
+92C4 5259
+92C5 52A4
+92C6 20873
+92C7 52E1
+92C9 467A
+92CA 718C
+92CB 2438C
+92CC 20C20
+92CD 249AC
+92CE 210E4
+92CF 69D1
+92D0 20E1D
+92D2 3EDE
+92D3 7499
+92D4 7414
+92D5 7456
+92D6 7398
+92D7 4B8E
+92D8 24ABC
+92D9 2408D
+92DA 53D0
+92DB 3584
+92DC 720F
+92DD 240C9
+92DE 55B4
+92DF 20345
+92E0 54CD
+92E1 20BC6
+92E2 571D
+92E3 925D
+92E4 96F4
+92E5 9366
+92E6 57DD
+92E7 578D
+92E8 577F
+92E9 363E
+92EA 58CB
+92EB 5A99
+92EC 28A46
+92ED 216FA
+92EE 2176F
+92EF 21710
+92F0 5A2C
+92F1 59B8
+92F2 928F
+92F3 5A7E
+92F4 5ACF
+92F5 5A12
+92F6 25946
+92F7 219F3
+92F8 21861
+92F9 24295
+92FA 36F5
+92FB 6D05
+92FC 7443
+92FD 5A21
+92FE 25E83
+9340 5A81
+9341 28BD7
+9342 20413
+9343 93E0
+9344 748C
+9345 21303
+9346 7105
+9347 4972
+9348 9408
+9349 289FB
+934A 93BD
+934B 37A0
+934C 5C1E
+934D 5C9E
+934E 5E5E
+934F 5E48
+9350 21996
+9351 2197C
+9352 23AEE
+9353 5ECD
+9354 5B4F
+9355 21903
+9356 21904
+9357 3701
+9358 218A0
+9359 36DD
+935A 216FE
+935B 36D3
+935C 812A
+935D 28A47
+935E 21DBA
+935F 23472
+9360 289A8
+9361 5F0C
+9362 5F0E
+9363 21927
+9364 217AB
+9365 5A6B
+9366 2173B
+9367 5B44
+9368 8614
+9369 275FD
+936A 8860
+936B 607E
+936C 22860
+936D 2262B
+936E 5FDB
+936F 3EB8
+9370 225AF
+9371 225BE
+9372 29088
+9373 26F73
+9374 61C0
+9375 2003E
+9376 20046
+9377 2261B
+9378 6199
+9379 6198
+937A 6075
+937B 22C9B
+937C 22D07
+937D 246D4
+937E 2914D
+93A1 6471
+93A2 24665
+93A3 22B6A
+93A4 3A29
+93A5 22B22
+93A6 23450
+93A7 298EA
+93A8 22E78
+93A9 6337
+93AA 2A45B
+93AB 64B6
+93AC 6331
+93AD 63D1
+93AE 249E3
+93AF 22D67
+93B0 62A4
+93B1 22CA1
+93B2 643B
+93B3 656B
+93B4 6972
+93B5 3BF4
+93B6 2308E
+93B7 232AD
+93B8 24989
+93B9 232AB
+93BA 550D
+93BB 232E0
+93BC 218D9
+93BD 2943F
+93BE 66CE
+93BF 23289
+93C0 231B3
+93C1 3AE0
+93C2 4190
+93C3 25584
+93C4 28B22
+93C5 2558F
+93C6 216FC
+93C7 2555B
+93C8 25425
+93C9 78EE
+93CA 23103
+93CB 2182A
+93CC 23234
+93CD 3464
+93CE 2320F
+93CF 23182
+93D0 242C9
+93D1 668E
+93D2 26D24
+93D3 666B
+93D4 4B93
+93D5 6630
+93D6 27870
+93D7 21DEB
+93D8 6663
+93D9 232D2
+93DA 232E1
+93DB 661E
+93DC 25872
+93DD 38D1
+93DE 2383A
+93DF 237BC
+93E0 3B99
+93E1 237A2
+93E2 233FE
+93E3 74D0
+93E4 3B96
+93E5 678F
+93E6 2462A
+93E7 68B6
+93E8 681E
+93E9 3BC4
+93EA 6ABE
+93EB 3863
+93EC 237D5
+93ED 24487
+93EE 6A33
+93EF 6A52
+93F0 6AC9
+93F1 6B05
+93F2 21912
+93F3 6511
+93F4 6898
+93F5 6A4C
+93F6 3BD7
+93F7 6A7A
+93F8 6B57
+93F9 23FC0
+93FA 23C9A
+93FB 93A0
+93FC 92F2
+93FD 28BEA
+93FE 28ACB
+9440 9289
+9441 2801E
+9442 289DC
+9443 9467
+9444 6DA5
+9445 6F0B
+9446 249EC
+9448 23F7F
+9449 3D8F
+944A 6E04
+944B 2403C
+944C 5A3D
+944D 6E0A
+944E 5847
+944F 6D24
+9450 7842
+9451 713B
+9452 2431A
+9453 24276
+9454 70F1
+9455 7250
+9456 7287
+9457 7294
+9458 2478F
+9459 24725
+945A 5179
+945B 24AA4
+945C 205EB
+945D 747A
+945E 23EF8
+945F 2365F
+9460 24A4A
+9461 24917
+9462 25FE1
+9463 3F06
+9464 3EB1
+9465 24ADF
+9466 28C23
+9467 23F35
+9468 60A7
+9469 3EF3
+946A 74CC
+946B 743C
+946C 9387
+946D 7437
+946E 449F
+946F 26DEA
+9470 4551
+9471 7583
+9472 3F63
+9473 24CD9
+9474 24D06
+9475 3F58
+9476 7555
+9477 7673
+9478 2A5C6
+9479 3B19
+947A 7468
+947B 28ACC
+947C 249AB
+947D 2498E
+947E 3AFB
+94A1 3DCD
+94A2 24A4E
+94A3 3EFF
+94A4 249C5
+94A5 248F3
+94A6 91FA
+94A7 5732
+94A8 9342
+94A9 28AE3
+94AA 21864
+94AB 50DF
+94AC 25221
+94AD 251E7
+94AE 7778
+94AF 23232
+94B0 770E
+94B1 770F
+94B2 777B
+94B3 24697
+94B4 23781
+94B5 3A5E
+94B6 248F0
+94B7 7438
+94B8 749B
+94B9 3EBF
+94BA 24ABA
+94BB 24AC7
+94BC 40C8
+94BD 24A96
+94BE 261AE
+94BF 9307
+94C0 25581
+94C1 781E
+94C2 788D
+94C3 7888
+94C4 78D2
+94C5 73D0
+94C6 7959
+94C7 27741
+94C8 256E3
+94C9 410E
+94CB 8496
+94CC 79A5
+94CD 6A2D
+94CE 23EFA
+94CF 7A3A
+94D0 79F4
+94D1 416E
+94D2 216E6
+94D3 4132
+94D4 9235
+94D5 79F1
+94D6 20D4C
+94D7 2498C
+94D8 20299
+94D9 23DBA
+94DA 2176E
+94DB 3597
+94DC 556B
+94DD 3570
+94DE 36AA
+94DF 201D4
+94E0 20C0D
+94E1 7AE2
+94E2 5A59
+94E3 226F5
+94E4 25AAF
+94E5 25A9C
+94E6 5A0D
+94E7 2025B
+94E8 78F0
+94E9 5A2A
+94EA 25BC6
+94EB 7AFE
+94EC 41F9
+94ED 7C5D
+94EE 7C6D
+94EF 4211
+94F0 25BB3
+94F1 25EBC
+94F2 25EA6
+94F3 7CCD
+94F4 249F9
+94F5 217B0
+94F6 7C8E
+94F7 7C7C
+94F8 7CAE
+94F9 6AB2
+94FA 7DDC
+94FB 7E07
+94FC 7DD3
+94FD 7F4E
+94FE 26261
+9540 2615C
+9541 27B48
+9542 7D97
+9543 25E82
+9544 426A
+9545 26B75
+9546 20916
+9547 67D6
+9548 2004E
+9549 235CF
+954A 57C4
+954B 26412
+954C 263F8
+954D 24962
+954E 7FDD
+954F 7B27
+9550 2082C
+9551 25AE9
+9552 25D43
+9553 7B0C
+9554 25E0E
+9555 99E6
+9556 8645
+9557 9A63
+9558 6A1C
+9559 2343F
+955A 39E2
+955B 249F7
+955C 265AD
+955D 9A1F
+955E 265A0
+955F 8480
+9560 27127
+9561 26CD1
+9562 44EA
+9563 8137
+9564 4402
+9565 80C6
+9566 8109
+9567 8142
+9568 267B4
+9569 98C3
+956A 26A42
+956B 8262
+956C 8265
+956D 26A51
+956E 8453
+956F 26DA7
+9570 8610
+9571 2721B
+9572 5A86
+9573 417F
+9574 21840
+9575 5B2B
+9576 218A1
+9577 5AE4
+9578 218D8
+9579 86A0
+957A 2F9BC
+957B 23D8F
+957C 882D
+957D 27422
+957E 5A02
+95A1 886E
+95A2 4F45
+95A3 8887
+95A4 88BF
+95A5 88E6
+95A6 8965
+95A7 894D
+95A8 25683
+95A9 8954
+95AA 27785
+95AB 27784
+95AC 28BF5
+95AD 28BD9
+95AE 28B9C
+95AF 289F9
+95B0 3EAD
+95B1 84A3
+95B2 46F5
+95B3 46CF
+95B4 37F2
+95B5 8A3D
+95B6 8A1C
+95B7 29448
+95B8 5F4D
+95B9 922B
+95BA 24284
+95BB 65D4
+95BC 7129
+95BD 70C4
+95BE 21845
+95BF 9D6D
+95C0 8C9F
+95C1 8CE9
+95C2 27DDC
+95C3 599A
+95C4 77C3
+95C5 59F0
+95C6 436E
+95C7 36D4
+95C8 8E2A
+95C9 8EA7
+95CA 24C09
+95CB 8F30
+95CC 8F4A
+95CD 42F4
+95CE 6C58
+95CF 6FBB
+95D0 22321
+95D1 489B
+95D2 6F79
+95D3 6E8B
+95D4 217DA
+95D5 9BE9
+95D6 36B5
+95D7 2492F
+95D8 90BB
+95DA 5571
+95DB 4906
+95DC 91BB
+95DD 9404
+95DE 28A4B
+95DF 4062
+95E0 28AFC
+95E1 9427
+95E2 28C1D
+95E3 28C3B
+95E4 84E5
+95E5 8A2B
+95E6 9599
+95E7 95A7
+95E8 9597
+95E9 9596
+95EA 28D34
+95EB 7445
+95EC 3EC2
+95ED 248FF
+95EE 24A42
+95EF 243EA
+95F0 3EE7
+95F1 23225
+95F2 968F
+95F3 28EE7
+95F4 28E66
+95F5 28E65
+95F6 3ECC
+95F7 249ED
+95F8 24A78
+95F9 23FEE
+95FA 7412
+95FB 746B
+95FC 3EFC
+95FD 9741
+95FE 290B0
+9640 6847
+9641 4A1D
+9642 29093
+9643 257DF
+9645 9368
+9646 28989
+9647 28C26
+9648 28B2F
+9649 263BE
+964A 92BA
+964B 5B11
+964C 8B69
+964D 493C
+964E 73F9
+964F 2421B
+9650 979B
+9651 9771
+9652 9938
+9653 20F26
+9654 5DC1
+9655 28BC5
+9656 24AB2
+9657 981F
+9658 294DA
+9659 92F6
+965A 295D7
+965B 91E5
+965C 44C0
+965D 28B50
+965E 24A67
+965F 28B64
+9660 98DC
+9661 28A45
+9662 3F00
+9663 922A
+9664 4925
+9665 8414
+9666 993B
+9667 994D
+9668 27B06
+9669 3DFD
+966A 999B
+966B 4B6F
+966C 99AA
+966D 9A5C
+966E 28B65
+966F 258C8
+9670 6A8F
+9671 9A21
+9672 5AFE
+9673 9A2F
+9674 298F1
+9675 4B90
+9676 29948
+9677 99BC
+9678 4BBD
+9679 4B97
+967A 937D
+967B 5872
+967C 21302
+967D 5822
+967E 249B8
+96A1 214E8
+96A2 7844
+96A3 2271F
+96A4 23DB8
+96A5 68C5
+96A6 3D7D
+96A7 9458
+96A8 3927
+96A9 6150
+96AA 22781
+96AB 2296B
+96AC 6107
+96AD 9C4F
+96AE 9C53
+96AF 9C7B
+96B0 9C35
+96B1 9C10
+96B2 9B7F
+96B3 9BCF
+96B4 29E2D
+96B5 9B9F
+96B6 2A1F5
+96B7 2A0FE
+96B8 9D21
+96B9 4CAE
+96BA 24104
+96BB 9E18
+96BC 4CB0
+96BD 9D0C
+96BE 2A1B4
+96BF 2A0ED
+96C0 2A0F3
+96C1 2992F
+96C2 9DA5
+96C3 84BD
+96C4 26E12
+96C5 26FDF
+96C6 26B82
+96C7 85FC
+96C8 4533
+96C9 26DA4
+96CA 26E84
+96CB 26DF0
+96CC 8420
+96CD 85EE
+96CE 26E00
+96CF 237D7
+96D0 26064
+96D1 79E2
+96D2 2359C
+96D3 23640
+96D4 492D
+96D5 249DE
+96D6 3D62
+96D7 93DB
+96D8 92BE
+96D9 9348
+96DA 202BF
+96DB 78B9
+96DC 9277
+96DD 944D
+96DE 4FE4
+96DF 3440
+96E0 9064
+96E1 2555D
+96E2 783D
+96E3 7854
+96E4 78B6
+96E5 784B
+96E6 21757
+96E7 231C9
+96E8 24941
+96E9 369A
+96EA 4F72
+96EB 6FDA
+96EC 6FD9
+96EE 701E
+96EF 5414
+96F0 241B5
+96F1 57BB
+96F2 58F3
+96F3 578A
+96F4 9D16
+96F5 57D7
+96F6 7134
+96F7 34AF
+96F8 241AC
+96F9 71EB
+96FA 26C40
+96FB 24F97
+96FD 217B5
+96FE 28A49
+9740 610C
+9741 5ACE
+9742 5A0B
+9743 42BC
+9744 24488
+9745 372C
+9746 4B7B
+9747 289FC
+9748 93BB
+9749 93B8
+974A 218D6
+974B 20F1D
+974C 8472
+974D 26CC0
+974E 21413
+974F 242FA
+9750 22C26
+9751 243C1
+9752 5994
+9753 23DB7
+9754 26741
+9755 7DA8
+9756 2615B
+9757 260A4
+9758 249B9
+9759 2498B
+975A 289FA
+975B 92E5
+975C 73E2
+975D 3EE9
+975E 74B4
+975F 28B63
+9760 2189F
+9761 3EE1
+9762 24AB3
+9763 6AD8
+9764 73F3
+9765 73FB
+9766 3ED6
+9767 24A3E
+9768 24A94
+9769 217D9
+976A 24A66
+976B 203A7
+976C 21424
+976D 249E5
+976E 7448
+976F 24916
+9770 70A5
+9771 24976
+9772 9284
+9773 73E6
+9774 935F
+9775 204FE
+9776 9331
+9777 28ACE
+9778 28A16
+9779 9386
+977A 28BE7
+977B 255D5
+977C 4935
+977D 28A82
+977E 716B
+97A1 24943
+97A2 20CFF
+97A3 56A4
+97A4 2061A
+97A5 20BEB
+97A6 20CB8
+97A7 5502
+97A8 79C4
+97A9 217FA
+97AA 7DFE
+97AB 216C2
+97AC 24A50
+97AD 21852
+97AE 452E
+97AF 9401
+97B0 370A
+97B1 28AC0
+97B2 249AD
+97B3 59B0
+97B4 218BF
+97B5 21883
+97B6 27484
+97B7 5AA1
+97B8 36E2
+97B9 23D5B
+97BA 36B0
+97BB 925F
+97BC 5A79
+97BD 28A81
+97BE 21862
+97BF 9374
+97C0 3CCD
+97C1 20AB4
+97C2 4A96
+97C3 398A
+97C4 50F4
+97C5 3D69
+97C6 3D4C
+97C7 2139C
+97C8 7175
+97C9 42FB
+97CA 28218
+97CB 6E0F
+97CC 290E4
+97CD 44EB
+97CE 6D57
+97CF 27E4F
+97D0 7067
+97D1 6CAF
+97D2 3CD6
+97D3 23FED
+97D4 23E2D
+97D5 6E02
+97D6 6F0C
+97D7 3D6F
+97D8 203F5
+97D9 7551
+97DA 36BC
+97DB 34C8
+97DC 4680
+97DD 3EDA
+97DE 4871
+97DF 59C4
+97E0 926E
+97E1 493E
+97E2 8F41
+97E3 28C1C
+97E4 26BC0
+97E5 5812
+97E6 57C8
+97E7 36D6
+97E8 21452
+97E9 70FE
+97EA 24362
+97EB 24A71
+97EC 22FE3
+97ED 212B0
+97EE 223BD
+97EF 68B9
+97F0 6967
+97F1 21398
+97F2 234E5
+97F3 27BF4
+97F4 236DF
+97F5 28A83
+97F6 237D6
+97F7 233FA
+97F8 24C9F
+97F9 6A1A
+97FA 236AD
+97FB 26CB7
+97FC 843E
+97FD 44DF
+97FE 44CE
+9840 26D26
+9841 26D51
+9842 26C82
+9843 26FDE
+9844 6F17
+9845 27109
+9846 833D
+9847 2173A
+9848 83ED
+9849 26C80
+984A 27053
+984B 217DB
+984C 5989
+984D 5A82
+984E 217B3
+984F 5A61
+9850 5A71
+9851 21905
+9852 241FC
+9853 372D
+9854 59EF
+9855 2173C
+9856 36C7
+9857 718E
+9858 9390
+9859 669A
+985A 242A5
+985B 5A6E
+985C 5A2B
+985D 24293
+985E 6A2B
+985F 23EF9
+9860 27736
+9861 2445B
+9862 242CA
+9863 711D
+9864 24259
+9865 289E1
+9866 4FB0
+9867 26D28
+9868 5CC2
+9869 244CE
+986A 27E4D
+986B 243BD
+986C 6A0C
+986D 24256
+986E 21304
+986F 70A6
+9870 7133
+9871 243E9
+9872 3DA5
+9873 6CDF
+9874 2F825
+9875 24A4F
+9876 7E65
+9877 59EB
+9878 5D2F
+9879 3DF3
+987A 5F5C
+987B 24A5D
+987C 217DF
+987D 7DA4
+987E 8426
+98A1 5485
+98A2 23AFA
+98A3 23300
+98A4 20214
+98A5 577E
+98A6 208D5
+98A7 20619
+98A8 3FE5
+98A9 21F9E
+98AA 2A2B6
+98AB 7003
+98AC 2915B
+98AD 5D70
+98AE 738F
+98AF 7CD3
+98B0 28A59
+98B1 29420
+98B2 4FC8
+98B3 7FE7
+98B4 72CD
+98B5 7310
+98B6 27AF4
+98B7 7338
+98B8 7339
+98B9 256F6
+98BA 7341
+98BB 7348
+98BC 3EA9
+98BD 27B18
+98BE 906C
+98BF 71F5
+98C0 248F2
+98C1 73E1
+98C2 81F6
+98C3 3ECA
+98C4 770C
+98C5 3ED1
+98C6 6CA2
+98C7 56FD
+98C8 7419
+98C9 741E
+98CA 741F
+98CB 3EE2
+98CC 3EF0
+98CD 3EF4
+98CE 3EFA
+98CF 74D3
+98D0 3F0E
+98D1 3F53
+98D2 7542
+98D3 756D
+98D4 7572
+98D5 758D
+98D6 3F7C
+98D7 75C8
+98D8 75DC
+98D9 3FC0
+98DA 764D
+98DB 3FD7
+98DC 7674
+98DD 3FDC
+98DE 767A
+98DF 24F5C
+98E0 7188
+98E1 5623
+98E2 8980
+98E3 5869
+98E4 401D
+98E5 7743
+98E6 4039
+98E7 6761
+98E8 4045
+98E9 35DB
+98EA 7798
+98EB 406A
+98EC 406F
+98ED 5C5E
+98EE 77BE
+98EF 77CB
+98F0 58F2
+98F1 7818
+98F2 70B9
+98F3 781C
+98F4 40A8
+98F5 7839
+98F6 7847
+98F7 7851
+98F8 7866
+98F9 8448
+98FA 25535
+98FB 7933
+98FC 6803
+98FD 7932
+98FE 4103
+9940 4109
+9941 7991
+9942 7999
+9943 8FBB
+9944 7A06
+9945 8FBC
+9946 4167
+9947 7A91
+9948 41B2
+9949 7ABC
+994A 8279
+994B 41C4
+994C 7ACF
+994D 7ADB
+994E 41CF
+994F 4E21
+9950 7B62
+9951 7B6C
+9952 7B7B
+9953 7C12
+9954 7C1B
+9955 4260
+9956 427A
+9957 7C7B
+9958 7C9C
+9959 428C
+995A 7CB8
+995B 4294
+995C 7CED
+995D 8F93
+995E 70C0
+995F 20CCF
+9960 7DCF
+9961 7DD4
+9962 7DD0
+9963 7DFD
+9964 7FAE
+9965 7FB4
+9966 729F
+9967 4397
+9968 8020
+9969 8025
+996A 7B39
+996B 802E
+996C 8031
+996D 8054
+996E 3DCC
+996F 57B4
+9970 70A0
+9971 80B7
+9972 80E9
+9973 43ED
+9974 810C
+9975 732A
+9976 810E
+9977 8112
+9978 7560
+9979 8114
+997A 4401
+997B 3B39
+997C 8156
+997D 8159
+997E 815A
+99A1 4413
+99A2 583A
+99A3 817C
+99A4 8184
+99A5 4425
+99A6 8193
+99A7 442D
+99A8 81A5
+99A9 57EF
+99AA 81C1
+99AB 81E4
+99AC 8254
+99AD 448F
+99AE 82A6
+99AF 8276
+99B0 82CA
+99B1 82D8
+99B2 82FF
+99B3 44B0
+99B4 8357
+99B5 9669
+99B6 698A
+99B7 8405
+99B8 70F5
+99B9 8464
+99BA 60E3
+99BB 8488
+99BC 4504
+99BD 84BE
+99BE 84E1
+99BF 84F8
+99C0 8510
+99C1 8538
+99C2 8552
+99C3 453B
+99C4 856F
+99C5 8570
+99C6 85E0
+99C7 4577
+99C8 8672
+99C9 8692
+99CA 86B2
+99CB 86EF
+99CC 9645
+99CD 878B
+99CE 4606
+99CF 4617
+99D0 88AE
+99D1 88FF
+99D2 8924
+99D3 8947
+99D4 8991
+99D5 27967
+99D6 8A29
+99D7 8A38
+99D8 8A94
+99D9 8AB4
+99DA 8C51
+99DB 8CD4
+99DC 8CF2
+99DD 8D1C
+99DE 4798
+99DF 585F
+99E0 8DC3
+99E1 47ED
+99E2 4EEE
+99E3 8E3A
+99E4 55D8
+99E5 5754
+99E6 8E71
+99E7 55F5
+99E8 8EB0
+99E9 4837
+99EA 8ECE
+99EB 8EE2
+99EC 8EE4
+99ED 8EED
+99EE 8EF2
+99EF 8FB7
+99F0 8FC1
+99F1 8FCA
+99F2 8FCC
+99F3 9033
+99F4 99C4
+99F5 48AD
+99F6 98E0
+99F7 9213
+99F8 491E
+99F9 9228
+99FA 9258
+99FB 926B
+99FC 92B1
+99FD 92AE
+99FE 92BF
+9A40 92E3
+9A41 92EB
+9A42 92F3
+9A43 92F4
+9A44 92FD
+9A45 9343
+9A46 9384
+9A47 93AD
+9A48 4945
+9A49 4951
+9A4A 9EBF
+9A4B 9417
+9A4C 5301
+9A4D 941D
+9A4E 942D
+9A4F 943E
+9A50 496A
+9A51 9454
+9A52 9479
+9A53 952D
+9A54 95A2
+9A55 49A7
+9A56 95F4
+9A57 9633
+9A58 49E5
+9A59 67A0
+9A5A 4A24
+9A5B 9740
+9A5C 4A35
+9A5D 97B2
+9A5E 97C2
+9A5F 5654
+9A60 4AE4
+9A61 60E8
+9A62 98B9
+9A63 4B19
+9A64 98F1
+9A65 5844
+9A66 990E
+9A67 9919
+9A68 51B4
+9A69 991C
+9A6A 9937
+9A6B 9942
+9A6C 995D
+9A6D 9962
+9A6E 4B70
+9A6F 99C5
+9A70 4B9D
+9A71 9A3C
+9A72 9B0F
+9A73 7A83
+9A74 9B69
+9A75 9B81
+9A76 9BDD
+9A77 9BF1
+9A78 9BF4
+9A79 4C6D
+9A7A 9C20
+9A7B 376F
+9A7C 21BC2
+9A7D 9D49
+9A7E 9C3A
+9AA1 9EFE
+9AA2 5650
+9AA3 9D93
+9AA4 9DBD
+9AA5 9DC0
+9AA6 9DFC
+9AA7 94F6
+9AA8 8FB6
+9AA9 9E7B
+9AAA 9EAC
+9AAB 9EB1
+9AAC 9EBD
+9AAD 9EC6
+9AAE 94DC
+9AAF 9EE2
+9AB0 9EF1
+9AB1 9EF8
+9AB2 7AC8
+9AB3 9F44
+9AB4 20094
+9AB5 202B7
+9AB6 203A0
+9AB7 691A
+9AB8 94C3
+9AB9 59AC
+9ABA 204D7
+9ABB 5840
+9ABC 94C1
+9ABD 37B9
+9ABE 205D5
+9ABF 20615
+9AC0 20676
+9AC1 216BA
+9AC2 5757
+9AC3 7173
+9AC4 20AC2
+9AC5 20ACD
+9AC6 20BBF
+9AC7 546A
+9AC8 2F83B
+9AC9 20BCB
+9ACA 549E
+9ACB 20BFB
+9ACC 20C3B
+9ACD 20C53
+9ACE 20C65
+9ACF 20C7C
+9AD0 60E7
+9AD1 20C8D
+9AD2 567A
+9AD3 20CB5
+9AD4 20CDD
+9AD5 20CED
+9AD6 20D6F
+9AD7 20DB2
+9AD8 20DC8
+9AD9 6955
+9ADA 9C2F
+9ADB 87A5
+9ADC 20E04
+9ADD 20E0E
+9ADE 20ED7
+9ADF 20F90
+9AE0 20F2D
+9AE1 20E73
+9AE2 5C20
+9AE3 20FBC
+9AE4 5E0B
+9AE5 2105C
+9AE6 2104F
+9AE7 21076
+9AE8 671E
+9AE9 2107B
+9AEA 21088
+9AEB 21096
+9AEC 3647
+9AED 210BF
+9AEE 210D3
+9AEF 2112F
+9AF0 2113B
+9AF1 5364
+9AF2 84AD
+9AF3 212E3
+9AF4 21375
+9AF5 21336
+9AF6 8B81
+9AF7 21577
+9AF8 21619
+9AF9 217C3
+9AFA 217C7
+9AFB 4E78
+9AFC 70BB
+9AFD 2182D
+9AFE 2196A
+9B40 21A2D
+9B41 21A45
+9B42 21C2A
+9B43 21C70
+9B44 21CAC
+9B45 21EC8
+9B46 62C3
+9B47 21ED5
+9B48 21F15
+9B49 7198
+9B4A 6855
+9B4B 22045
+9B4C 69E9
+9B4D 36C8
+9B4E 2227C
+9B4F 223D7
+9B50 223FA
+9B51 2272A
+9B52 22871
+9B53 2294F
+9B54 82FD
+9B55 22967
+9B56 22993
+9B57 22AD5
+9B58 89A5
+9B59 22AE8
+9B5A 8FA0
+9B5B 22B0E
+9B5C 97B8
+9B5D 22B3F
+9B5E 9847
+9B5F 9ABD
+9B60 22C4C
+9B62 22C88
+9B63 22CB7
+9B64 25BE8
+9B65 22D08
+9B66 22D12
+9B67 22DB7
+9B68 22D95
+9B69 22E42
+9B6A 22F74
+9B6B 22FCC
+9B6C 23033
+9B6D 23066
+9B6E 2331F
+9B6F 233DE
+9B70 5FB1
+9B71 6648
+9B72 66BF
+9B73 27A79
+9B74 23567
+9B75 235F3
+9B77 249BA
+9B79 2361A
+9B7A 23716
+9B7C 20346
+9B7D 58B5
+9B7E 670E
+9BA1 6918
+9BA2 23AA7
+9BA3 27657
+9BA4 25FE2
+9BA5 23E11
+9BA6 23EB9
+9BA7 275FE
+9BA8 2209A
+9BA9 48D0
+9BAA 4AB8
+9BAB 24119
+9BAC 28A9A
+9BAD 242EE
+9BAE 2430D
+9BAF 2403B
+9BB0 24334
+9BB1 24396
+9BB2 24A45
+9BB3 205CA
+9BB4 51D2
+9BB5 20611
+9BB6 599F
+9BB7 21EA8
+9BB8 3BBE
+9BB9 23CFF
+9BBA 24404
+9BBB 244D6
+9BBC 5788
+9BBD 24674
+9BBE 399B
+9BBF 2472F
+9BC0 285E8
+9BC1 299C9
+9BC2 3762
+9BC3 221C3
+9BC4 8B5E
+9BC5 28B4E
+9BC7 24812
+9BC8 248FB
+9BC9 24A15
+9BCA 7209
+9BCB 24AC0
+9BCC 20C78
+9BCD 5965
+9BCE 24EA5
+9BCF 24F86
+9BD0 20779
+9BD1 8EDA
+9BD2 2502C
+9BD3 528F
+9BD4 573F
+9BD5 7171
+9BD6 25299
+9BD7 25419
+9BD8 23F4A
+9BD9 24AA7
+9BDA 55BC
+9BDB 25446
+9BDC 2546E
+9BDD 26B52
+9BDF 3473
+9BE0 2553F
+9BE1 27632
+9BE2 2555E
+9BE3 4718
+9BE4 25562
+9BE5 25566
+9BE6 257C7
+9BE7 2493F
+9BE8 2585D
+9BE9 5066
+9BEA 34FB
+9BEB 233CC
+9BED 25903
+9BEE 477C
+9BEF 28948
+9BF0 25AAE
+9BF1 25B89
+9BF2 25C06
+9BF3 21D90
+9BF4 57A1
+9BF5 7151
+9BF7 26102
+9BF8 27C12
+9BF9 9056
+9BFA 261B2
+9BFB 24F9A
+9BFC 8B62
+9BFD 26402
+9BFE 2644A
+9C40 5D5B
+9C41 26BF7
+9C43 26484
+9C44 2191C
+9C45 8AEA
+9C46 249F6
+9C47 26488
+9C48 23FEF
+9C49 26512
+9C4A 4BC0
+9C4B 265BF
+9C4C 266B5
+9C4D 2271B
+9C4E 9465
+9C4F 257E1
+9C50 6195
+9C51 5A27
+9C52 2F8CD
+9C54 56B9
+9C55 24521
+9C56 266FC
+9C57 4E6A
+9C58 24934
+9C59 9656
+9C5A 6D8F
+9C5B 26CBD
+9C5C 3618
+9C5D 8977
+9C5E 26799
+9C5F 2686E
+9C60 26411
+9C61 2685E
+9C63 268C7
+9C64 7B42
+9C65 290C0
+9C66 20A11
+9C67 26926
+9C69 26939
+9C6A 7A45
+9C6C 269FA
+9C6D 9A26
+9C6E 26A2D
+9C6F 365F
+9C70 26469
+9C71 20021
+9C72 7983
+9C73 26A34
+9C74 26B5B
+9C75 5D2C
+9C76 23519
+9C78 26B9D
+9C79 46D0
+9C7A 26CA4
+9C7B 753B
+9C7C 8865
+9C7D 26DAE
+9C7E 58B6
+9CA1 371C
+9CA2 2258D
+9CA3 2704B
+9CA4 271CD
+9CA5 3C54
+9CA6 27280
+9CA7 27285
+9CA8 9281
+9CA9 2217A
+9CAA 2728B
+9CAB 9330
+9CAC 272E6
+9CAD 249D0
+9CAE 6C39
+9CAF 949F
+9CB0 27450
+9CB1 20EF8
+9CB2 8827
+9CB3 88F5
+9CB4 22926
+9CB5 28473
+9CB6 217B1
+9CB7 6EB8
+9CB8 24A2A
+9CB9 21820
+9CBA 39A4
+9CBB 36B9
+9CBE 453F
+9CBF 66B6
+9CC0 29CAD
+9CC1 298A4
+9CC2 8943
+9CC3 277CC
+9CC4 27858
+9CC5 56D6
+9CC6 40DF
+9CC7 2160A
+9CC8 39A1
+9CC9 2372F
+9CCA 280E8
+9CCB 213C5
+9CCC 71AD
+9CCD 8366
+9CCE 279DD
+9CCF 291A8
+9CD1 4CB7
+9CD2 270AF
+9CD3 289AB
+9CD4 279FD
+9CD5 27A0A
+9CD6 27B0B
+9CD7 27D66
+9CD8 2417A
+9CD9 7B43
+9CDA 797E
+9CDB 28009
+9CDC 6FB5
+9CDD 2A2DF
+9CDE 6A03
+9CDF 28318
+9CE0 53A2
+9CE1 26E07
+9CE2 93BF
+9CE3 6836
+9CE4 975D
+9CE5 2816F
+9CE6 28023
+9CE7 269B5
+9CE8 213ED
+9CE9 2322F
+9CEA 28048
+9CEB 5D85
+9CEC 28C30
+9CED 28083
+9CEE 5715
+9CEF 9823
+9CF0 28949
+9CF1 5DAB
+9CF2 24988
+9CF3 65BE
+9CF4 69D5
+9CF5 53D2
+9CF6 24AA5
+9CF7 23F81
+9CF8 3C11
+9CF9 6736
+9CFA 28090
+9CFB 280F4
+9CFC 2812E
+9CFD 21FA1
+9CFE 2814F
+9D40 28189
+9D41 281AF
+9D42 2821A
+9D43 28306
+9D44 2832F
+9D45 2838A
+9D46 35CA
+9D47 28468
+9D48 286AA
+9D49 48FA
+9D4A 63E6
+9D4B 28956
+9D4C 7808
+9D4D 9255
+9D4E 289B8
+9D4F 43F2
+9D50 289E7
+9D51 43DF
+9D52 289E8
+9D53 28B46
+9D54 28BD4
+9D55 59F8
+9D56 28C09
+9D58 28FC5
+9D59 290EC
+9D5B 29110
+9D5C 2913C
+9D5D 3DF7
+9D5E 2915E
+9D5F 24ACA
+9D60 8FD0
+9D61 728F
+9D62 568B
+9D63 294E7
+9D64 295E9
+9D65 295B0
+9D66 295B8
+9D67 29732
+9D68 298D1
+9D69 29949
+9D6A 2996A
+9D6B 299C3
+9D6C 29A28
+9D6D 29B0E
+9D6E 29D5A
+9D6F 29D9B
+9D70 7E9F
+9D71 29EF8
+9D72 29F23
+9D73 4CA4
+9D74 9547
+9D75 2A293
+9D76 71A2
+9D77 2A2FF
+9D78 4D91
+9D79 9012
+9D7A 2A5CB
+9D7B 4D9C
+9D7C 20C9C
+9D7D 8FBE
+9D7E 55C1
+9DA1 8FBA
+9DA2 224B0
+9DA3 8FB9
+9DA4 24A93
+9DA5 4509
+9DA6 7E7F
+9DA7 6F56
+9DA8 6AB1
+9DA9 4EEA
+9DAA 34E4
+9DAB 28B2C
+9DAC 2789D
+9DAD 373A
+9DAE 8E80
+9DAF 217F5
+9DB0 28024
+9DB1 28B6C
+9DB2 28B99
+9DB3 27A3E
+9DB4 266AF
+9DB5 3DEB
+9DB6 27655
+9DB7 23CB7
+9DB8 25635
+9DB9 25956
+9DBA 4E9A
+9DBB 25E81
+9DBC 26258
+9DBD 56BF
+9DBE 20E6D
+9DBF 8E0E
+9DC0 5B6D
+9DC1 23E88
+9DC2 24C9E
+9DC3 63DE
+9DC5 217F6
+9DC6 2187B
+9DC7 6530
+9DC8 562D
+9DC9 25C4A
+9DCA 541A
+9DCB 25311
+9DCC 3DC6
+9DCD 29D98
+9DCE 4C7D
+9DCF 5622
+9DD0 561E
+9DD1 7F49
+9DD2 25ED8
+9DD3 5975
+9DD4 23D40
+9DD5 8770
+9DD6 4E1C
+9DD7 20FEA
+9DD8 20D49
+9DD9 236BA
+9DDA 8117
+9DDB 9D5E
+9DDC 8D18
+9DDD 763B
+9DDE 9C45
+9DDF 764E
+9DE0 77B9
+9DE1 9345
+9DE2 5432
+9DE3 8148
+9DE4 82F7
+9DE5 5625
+9DE6 8132
+9DE7 8418
+9DE8 80BD
+9DE9 55EA
+9DEA 7962
+9DEB 5643
+9DEC 5416
+9DED 20E9D
+9DEE 35CE
+9DEF 5605
+9DF0 55F1
+9DF1 66F1
+9DF2 282E2
+9DF3 362D
+9DF4 7534
+9DF5 55F0
+9DF6 55BA
+9DF7 5497
+9DF8 5572
+9DF9 20C41
+9DFA 20C96
+9DFB 5ED0
+9DFC 25148
+9DFD 20E76
+9DFE 22C62
+9E40 20EA2
+9E41 9EAB
+9E42 7D5A
+9E43 55DE
+9E44 21075
+9E45 629D
+9E46 976D
+9E47 5494
+9E48 8CCD
+9E49 71F6
+9E4A 9176
+9E4B 63FC
+9E4C 63B9
+9E4D 63FE
+9E4E 5569
+9E4F 22B43
+9E50 9C72
+9E51 22EB3
+9E52 519A
+9E53 34DF
+9E54 20DA7
+9E55 51A7
+9E56 544D
+9E57 551E
+9E58 5513
+9E59 7666
+9E5A 8E2D
+9E5B 2688A
+9E5C 75B1
+9E5D 80B6
+9E5E 8804
+9E5F 8786
+9E60 88C7
+9E61 81B6
+9E62 841C
+9E63 210C1
+9E64 44EC
+9E65 7304
+9E66 24706
+9E67 5B90
+9E68 830B
+9E69 26893
+9E6A 567B
+9E6B 226F4
+9E6C 27D2F
+9E6D 241A3
+9E6E 27D73
+9E6F 26ED0
+9E70 272B6
+9E71 9170
+9E72 211D9
+9E73 9208
+9E74 23CFC
+9E75 2A6A9
+9E76 20EAC
+9E77 20EF9
+9E78 7266
+9E79 21CA2
+9E7A 474E
+9E7B 24FC2
+9E7C 27FF9
+9E7D 20FEB
+9E7E 40FA
+9EA1 9C5D
+9EA2 651F
+9EA3 22DA0
+9EA4 48F3
+9EA5 247E0
+9EA6 29D7C
+9EA7 20FEC
+9EA8 20E0A
+9EAA 275A3
+9EAB 20FED
+9EAD 26048
+9EAE 21187
+9EAF 71A3
+9EB0 7E8E
+9EB1 9D50
+9EB2 4E1A
+9EB3 4E04
+9EB4 3577
+9EB5 5B0D
+9EB6 6CB2
+9EB7 5367
+9EB8 36AC
+9EB9 39DC
+9EBA 537D
+9EBB 36A5
+9EBC 24618
+9EBD 589A
+9EBE 24B6E
+9EBF 822D
+9EC0 544B
+9EC1 57AA
+9EC2 25A95
+9EC3 20979
+9EC5 3A52
+9EC6 22465
+9EC7 7374
+9EC8 29EAC
+9EC9 4D09
+9ECA 9BED
+9ECB 23CFE
+9ECC 29F30
+9ECD 4C5B
+9ECE 24FA9
+9ECF 2959E
+9ED0 29FDE
+9ED1 845C
+9ED2 23DB6
+9ED3 272B2
+9ED4 267B3
+9ED5 23720
+9ED6 632E
+9ED7 7D25
+9ED8 23EF7
+9ED9 23E2C
+9EDA 3A2A
+9EDB 9008
+9EDC 52CC
+9EDD 3E74
+9EDE 367A
+9EDF 45E9
+9EE0 2048E
+9EE1 7640
+9EE2 5AF0
+9EE3 20EB6
+9EE4 787A
+9EE5 27F2E
+9EE6 58A7
+9EE7 40BF
+9EE8 567C
+9EE9 9B8B
+9EEA 5D74
+9EEB 7654
+9EEC 2A434
+9EED 9E85
+9EEE 4CE1
+9EF0 37FB
+9EF1 6119
+9EF2 230DA
+9EF3 243F2
+9EF5 565D
+9EF6 212A9
+9EF7 57A7
+9EF8 24963
+9EF9 29E06
+9EFA 5234
+9EFB 270AE
+9EFC 35AD
+9EFE 9D7C
+9F40 7C56
+9F41 9B39
+9F42 57DE
+9F43 2176C
+9F44 5C53
+9F45 64D3
+9F46 294D0
+9F47 26335
+9F48 27164
+9F49 86AD
+9F4A 20D28
+9F4B 26D22
+9F4C 24AE2
+9F4D 20D71
+9F4F 51FE
+9F50 21F0F
+9F51 5D8E
+9F52 9703
+9F53 21DD1
+9F54 9E81
+9F55 904C
+9F56 7B1F
+9F57 9B02
+9F58 5CD1
+9F59 7BA3
+9F5A 6268
+9F5B 6335
+9F5C 9AFF
+9F5D 7BCF
+9F5E 9B2A
+9F5F 7C7E
+9F61 7C42
+9F62 7C86
+9F63 9C15
+9F64 7BFC
+9F65 9B09
+9F67 9C1B
+9F68 2493E
+9F69 9F5A
+9F6A 5573
+9F6B 5BC3
+9F6C 4FFD
+9F6D 9E98
+9F6E 4FF2
+9F6F 5260
+9F70 3E06
+9F71 52D1
+9F72 5767
+9F73 5056
+9F74 59B7
+9F75 5E12
+9F76 97C8
+9F77 9DAB
+9F78 8F5C
+9F79 5469
+9F7A 97B4
+9F7B 9940
+9F7C 97BA
+9F7D 532C
+9F7E 6130
+9FA1 692C
+9FA2 53DA
+9FA3 9C0A
+9FA4 9D02
+9FA5 4C3B
+9FA6 9641
+9FA7 6980
+9FA8 50A6
+9FA9 7546
+9FAA 2176D
+9FAB 99DA
+9FAC 5273
+9FAE 9159
+9FAF 9681
+9FB0 915C
+9FB2 9151
+9FB3 28E97
+9FB4 637F
+9FB5 26D23
+9FB6 6ACA
+9FB7 5611
+9FB8 918E
+9FB9 757A
+9FBA 6285
+9FBB 203FC
+9FBC 734F
+9FBD 7C70
+9FBE 25C21
+9FBF 23CFD
+9FC1 24919
+9FC2 76D6
+9FC3 9B9D
+9FC4 4E2A
+9FC5 20CD4
+9FC6 83BE
+9FC7 8842
+9FC9 5C4A
+9FCA 69C0
+9FCC 577A
+9FCD 521F
+9FCE 5DF5
+9FCF 4ECE
+9FD0 6C31
+9FD1 201F2
+9FD2 4F39
+9FD3 549C
+9FD4 54DA
+9FD5 529A
+9FD6 8D82
+9FD7 35FE
+9FD9 35F3
+9FDB 6B52
+9FDC 917C
+9FDD 9FA5
+9FDE 9B97
+9FDF 982E
+9FE0 98B4
+9FE1 9ABA
+9FE2 9EA8
+9FE3 9E84
+9FE4 717A
+9FE5 7B14
+9FE7 6BFA
+9FE8 8818
+9FE9 7F78
+9FEB 5620
+9FEC 2A64A
+9FED 8E77
+9FEE 9F53
+9FF0 8DD4
+9FF1 8E4F
+9FF2 9E1C
+9FF3 8E01
+9FF4 6282
+9FF5 2837D
+9FF6 8E28
+9FF7 8E75
+9FF8 7AD3
+9FF9 24A77
+9FFA 7A3E
+9FFB 78D8
+9FFC 6CEA
+9FFD 8A67
+9FFE 7607
+A040 28A5A
+A041 9F26
+A042 6CCE
+A043 87D6
+A044 75C3
+A045 2A2B2
+A046 7853
+A047 2F840
+A048 8D0C
+A049 72E2
+A04A 7371
+A04B 8B2D
+A04C 7302
+A04D 74F1
+A04E 8CEB
+A04F 24ABB
+A050 862F
+A051 5FBA
+A052 88A0
+A053 44B7
+A055 2183B
+A056 26E05
+A058 8A7E
+A059 2251B
+A05B 60FD
+A05C 7667
+A05D 9AD7
+A05E 9D44
+A05F 936E
+A060 9B8F
+A061 87F5
+A064 8CF7
+A065 732C
+A066 9721
+A067 9BB0
+A068 35D6
+A069 72B2
+A06A 4C07
+A06B 7C51
+A06C 994A
+A06D 26159
+A06E 6159
+A06F 4C04
+A070 9E96
+A071 617D
+A073 575F
+A074 616F
+A075 62A6
+A076 6239
+A078 3A5C
+A079 61E2
+A07A 53AA
+A07B 233F5
+A07C 6364
+A07D 6802
+A07E 35D2
+A0A1 5D57
+A0A2 28BC2
+A0A3 8FDA
+A0A4 28E39
+A0A6 50D9
+A0A7 21D46
+A0A8 7906
+A0A9 5332
+A0AA 9638
+A0AB 20F3B
+A0AC 4065
+A0AE 77FE
+A0B0 7CC2
+A0B1 25F1A
+A0B2 7CDA
+A0B3 7A2D
+A0B4 8066
+A0B5 8063
+A0B6 7D4D
+A0B7 7505
+A0B8 74F2
+A0B9 8994
+A0BA 821A
+A0BB 670C
+A0BC 8062
+A0BD 27486
+A0BE 805B
+A0BF 74F0
+A0C0 8103
+A0C1 7724
+A0C2 8989
+A0C3 267CC
+A0C4 7553
+A0C5 26ED1
+A0C6 87A9
+A0C7 87CE
+A0C8 81C8
+A0C9 878C
+A0CA 8A49
+A0CB 8CAD
+A0CC 8B43
+A0CD 772B
+A0CE 74F8
+A0CF 84DA
+A0D0 3635
+A0D1 69B2
+A0D2 8DA6
+A0D4 89A9
+A0D6 6DB9
+A0D7 87C1
+A0D8 24011
+A0D9 74E7
+A0DA 3DDB
+A0DB 7176
+A0DC 60A4
+A0DD 619C
+A0DE 3CD1
+A0E0 6077
+A0E2 7F71
+A0E3 28B2D
+A0E5 60E9
+A0E6 4B7E
+A0E7 5220
+A0E8 3C18
+A0E9 23CC7
+A0EA 25ED7
+A0EB 27656
+A0EC 25531
+A0ED 21944
+A0EE 212FE
+A0EF 29903
+A0F0 26DDC
+A0F1 270AD
+A0F2 5CC1
+A0F3 261AD
+A0F4 28A0F
+A0F5 23677
+A0F6 200EE
+A0F7 26846
+A0F8 24F0E
+A0F9 4562
+A0FA 5B1F
+A0FB 2634C
+A0FC 9F50
+A0FD 9EA6
+A0FE 2626B
+C6A1 2460
+C6A2 2461
+C6A3 2462
+C6A4 2463
+C6A5 2464
+C6A6 2465
+C6A7 2466
+C6A8 2467
+C6A9 2468
+C6AA 2469
+C6AB 2474
+C6AC 2475
+C6AD 2476
+C6AE 2477
+C6AF 2478
+C6B0 2479
+C6B1 247A
+C6B2 247B
+C6B3 247C
+C6B4 247D
+C6B5 2170
+C6B6 2171
+C6B7 2172
+C6B8 2173
+C6B9 2174
+C6BA 2175
+C6BB 2176
+C6BC 2177
+C6BD 2178
+C6BE 2179
+C6BF 4E36
+C6C0 4E3F
+C6C1 4E85
+C6C2 4EA0
+C6C3 5182
+C6C4 5196
+C6C5 51AB
+C6C6 52F9
+C6C7 5338
+C6C8 5369
+C6C9 53B6
+C6CA 590A
+C6CB 5B80
+C6CC 5DDB
+C6CD 2F33
+C6CE 5E7F
+C6D0 5F50
+C6D1 5F61
+C6D2 6534
+C6D4 7592
+C6D6 8FB5
+C6D8 00A8
+C6D9 02C6
+C6DA 30FD
+C6DB 30FE
+C6DC 309D
+C6DD 309E
+C6E0 3005
+C6E1 3006
+C6E2 3007
+C6E3 30FC
+C6E4 FF3B
+C6E5 FF3D
+C6E6 273D
+C6E7 3041
+C6E8 3042
+C6E9 3043
+C6EA 3044
+C6EB 3045
+C6EC 3046
+C6ED 3047
+C6EE 3048
+C6EF 3049
+C6F0 304A
+C6F1 304B
+C6F2 304C
+C6F3 304D
+C6F4 304E
+C6F5 304F
+C6F6 3050
+C6F7 3051
+C6F8 3052
+C6F9 3053
+C6FA 3054
+C6FB 3055
+C6FC 3056
+C6FD 3057
+C6FE 3058
+C740 3059
+C741 305A
+C742 305B
+C743 305C
+C744 305D
+C745 305E
+C746 305F
+C747 3060
+C748 3061
+C749 3062
+C74A 3063
+C74B 3064
+C74C 3065
+C74D 3066
+C74E 3067
+C74F 3068
+C750 3069
+C751 306A
+C752 306B
+C753 306C
+C754 306D
+C755 306E
+C756 306F
+C757 3070
+C758 3071
+C759 3072
+C75A 3073
+C75B 3074
+C75C 3075
+C75D 3076
+C75E 3077
+C75F 3078
+C760 3079
+C761 307A
+C762 307B
+C763 307C
+C764 307D
+C765 307E
+C766 307F
+C767 3080
+C768 3081
+C769 3082
+C76A 3083
+C76B 3084
+C76C 3085
+C76D 3086
+C76E 3087
+C76F 3088
+C770 3089
+C771 308A
+C772 308B
+C773 308C
+C774 308D
+C775 308E
+C776 308F
+C777 3090
+C778 3091
+C779 3092
+C77A 3093
+C77B 30A1
+C77C 30A2
+C77D 30A3
+C77E 30A4
+C7A1 30A5
+C7A2 30A6
+C7A3 30A7
+C7A4 30A8
+C7A5 30A9
+C7A6 30AA
+C7A7 30AB
+C7A8 30AC
+C7A9 30AD
+C7AA 30AE
+C7AB 30AF
+C7AC 30B0
+C7AD 30B1
+C7AE 30B2
+C7AF 30B3
+C7B0 30B4
+C7B1 30B5
+C7B2 30B6
+C7B3 30B7
+C7B4 30B8
+C7B5 30B9
+C7B6 30BA
+C7B7 30BB
+C7B8 30BC
+C7B9 30BD
+C7BA 30BE
+C7BB 30BF
+C7BC 30C0
+C7BD 30C1
+C7BE 30C2
+C7BF 30C3
+C7C0 30C4
+C7C1 30C5
+C7C2 30C6
+C7C3 30C7
+C7C4 30C8
+C7C5 30C9
+C7C6 30CA
+C7C7 30CB
+C7C8 30CC
+C7C9 30CD
+C7CA 30CE
+C7CB 30CF
+C7CC 30D0
+C7CD 30D1
+C7CE 30D2
+C7CF 30D3
+C7D0 30D4
+C7D1 30D5
+C7D2 30D6
+C7D3 30D7
+C7D4 30D8
+C7D5 30D9
+C7D6 30DA
+C7D7 30DB
+C7D8 30DC
+C7D9 30DD
+C7DA 30DE
+C7DB 30DF
+C7DC 30E0
+C7DD 30E1
+C7DE 30E2
+C7DF 30E3
+C7E0 30E4
+C7E1 30E5
+C7E2 30E6
+C7E3 30E7
+C7E4 30E8
+C7E5 30E9
+C7E6 30EA
+C7E7 30EB
+C7E8 30EC
+C7E9 30ED
+C7EA 30EE
+C7EB 30EF
+C7EC 30F0
+C7ED 30F1
+C7EE 30F2
+C7EF 30F3
+C7F0 30F4
+C7F1 30F5
+C7F2 30F6
+C7F3 0410
+C7F4 0411
+C7F5 0412
+C7F6 0413
+C7F7 0414
+C7F8 0415
+C7F9 0401
+C7FA 0416
+C7FB 0417
+C7FC 0418
+C7FD 0419
+C7FE 041A
+C840 041B
+C841 041C
+C842 041D
+C843 041E
+C844 041F
+C845 0420
+C846 0421
+C847 0422
+C848 0423
+C849 0424
+C84A 0425
+C84B 0426
+C84C 0427
+C84D 0428
+C84E 0429
+C84F 042A
+C850 042B
+C851 042C
+C852 042D
+C853 042E
+C854 042F
+C855 0430
+C856 0431
+C857 0432
+C858 0433
+C859 0434
+C85A 0435
+C85B 0451
+C85C 0436
+C85D 0437
+C85E 0438
+C85F 0439
+C860 043A
+C861 043B
+C862 043C
+C863 043D
+C864 043E
+C865 043F
+C866 0440
+C867 0441
+C868 0442
+C869 0443
+C86A 0444
+C86B 0445
+C86C 0446
+C86D 0447
+C86E 0448
+C86F 0449
+C870 044A
+C871 044B
+C872 044C
+C873 044D
+C874 044E
+C875 044F
+C876 21E7
+C877 21B8
+C878 21B9
+C879 31CF
+C87A 200CC
+C87B 4E5A
+C87C 2008A
+C87D 5202
+C87E 4491
+C8A1 9FB0
+C8A2 5188
+C8A3 9FB1
+C8A4 27607
+C8CD FFE2
+C8CE FFE4
+C8CF FF07
+C8D0 FF02
+C8D1 3231
+C8D2 2116
+C8D3 2121
+C8D4 309B
+C8D5 309C
+C8D6 2E80
+C8D7 2E84
+C8D8 2E86
+C8D9 2E87
+C8DA 2E88
+C8DB 2E8A
+C8DC 2E8C
+C8DD 2E8D
+C8DE 2E95
+C8DF 2E9C
+C8E0 2E9D
+C8E1 2EA5
+C8E2 2EA7
+C8E3 2EAA
+C8E4 2EAC
+C8E5 2EAE
+C8E6 2EB6
+C8E7 2EBC
+C8E8 2EBE
+C8E9 2EC6
+C8EA 2ECA
+C8EB 2ECC
+C8EC 2ECD
+C8ED 2ECF
+C8EE 2ED6
+C8EF 2ED7
+C8F0 2EDE
+C8F1 2EE3
+C8F5 0283
+C8F6 0250
+C8F7 025B
+C8F8 0254
+C8F9 0275
+C8FA 0153
+C8FB 00F8
+C8FC 014B
+C8FD 028A
+C8FE 026A
+F9D6 7881
+F9D7 92B9
+F9D8 88CF
+F9D9 58BB
+F9DA 6052
+F9DB 7CA7
+F9DC 5AFA
+F9DD 2554
+F9DE 2566
+F9DF 2557
+F9E0 2560
+F9E1 256C
+F9E2 2563
+F9E3 255A
+F9E4 2569
+F9E5 255D
+F9E6 2552
+F9E7 2564
+F9E8 2555
+F9E9 255E
+F9EA 256A
+F9EB 2561
+F9EC 2558
+F9ED 2567
+F9EE 255B
+F9EF 2553
+F9F0 2565
+F9F1 2556
+F9F2 255F
+F9F3 256B
+F9F4 2562
+F9F5 2559
+F9F6 2568
+F9F7 255C
+F9F8 2551
+F9F9 2550
+F9FA 256D
+F9FB 256E
+F9FC 2570
+F9FD 256F
+F9FE FFED
+FA40 20547
+FA41 92DB
+FA42 205DF
+FA43 23FC5
+FA44 854C
+FA45 42B5
+FA46 73EF
+FA47 51B5
+FA48 3649
+FA49 24942
+FA4A 289E4
+FA4B 9344
+FA4C 219DB
+FA4D 82EE
+FA4E 23CC8
+FA4F 783C
+FA50 6744
+FA51 62DF
+FA52 24933
+FA53 289AA
+FA54 202A0
+FA55 26BB3
+FA56 21305
+FA57 4FAB
+FA58 224ED
+FA59 5008
+FA5A 26D29
+FA5B 27A84
+FA5C 23600
+FA5D 24AB1
+FA5E 22513
+FA60 2037E
+FA61 5FA4
+FA62 20380
+FA63 20347
+FA64 6EDB
+FA65 2041F
+FA67 5101
+FA68 347A
+FA69 510E
+FA6A 986C
+FA6B 3743
+FA6C 8416
+FA6D 249A4
+FA6E 20487
+FA6F 5160
+FA70 233B4
+FA71 516A
+FA72 20BFF
+FA73 220FC
+FA74 202E5
+FA75 22530
+FA76 2058E
+FA77 23233
+FA78 21983
+FA79 5B82
+FA7A 877D
+FA7B 205B3
+FA7C 23C99
+FA7D 51B2
+FA7E 51B8
+FAA1 9D34
+FAA2 51C9
+FAA3 51CF
+FAA4 51D1
+FAA5 3CDC
+FAA6 51D3
+FAA7 24AA6
+FAA8 51B3
+FAA9 51E2
+FAAA 5342
+FAAB 51ED
+FAAC 83CD
+FAAD 693E
+FAAE 2372D
+FAAF 5F7B
+FAB0 520B
+FAB1 5226
+FAB2 523C
+FAB3 52B5
+FAB4 5257
+FAB5 5294
+FAB6 52B9
+FAB7 52C5
+FAB8 7C15
+FAB9 8542
+FABA 52E0
+FABB 860D
+FABC 26B13
+FABE 28ADE
+FABF 5549
+FAC0 6ED9
+FAC1 23F80
+FAC2 20954
+FAC3 23FEC
+FAC4 5333
+FAC6 20BE2
+FAC7 6CCB
+FAC8 21726
+FAC9 681B
+FACA 73D5
+FACB 604A
+FACC 3EAA
+FACD 38CC
+FACE 216E8
+FACF 71DD
+FAD0 44A2
+FAD1 536D
+FAD2 5374
+FAD3 286AB
+FAD4 537E
+FAD6 21596
+FAD7 21613
+FAD8 77E6
+FAD9 5393
+FADA 28A9B
+FADB 53A0
+FADC 53AB
+FADD 53AE
+FADE 73A7
+FADF 25772
+FAE0 3F59
+FAE1 739C
+FAE2 53C1
+FAE3 53C5
+FAE4 6C49
+FAE5 4E49
+FAE6 57FE
+FAE7 53D9
+FAE8 3AAB
+FAE9 20B8F
+FAEA 53E0
+FAEB 23FEB
+FAEC 22DA3
+FAED 53F6
+FAEE 20C77
+FAEF 5413
+FAF0 7079
+FAF1 552B
+FAF2 6657
+FAF3 6D5B
+FAF4 546D
+FAF5 26B53
+FAF6 20D74
+FAF7 555D
+FAF8 548F
+FAF9 54A4
+FAFA 47A6
+FAFB 2170D
+FAFC 20EDD
+FAFD 3DB4
+FAFE 20D4D
+FB40 289BC
+FB41 22698
+FB42 5547
+FB43 4CED
+FB44 542F
+FB45 7417
+FB46 5586
+FB47 55A9
+FB49 218D7
+FB4A 2403A
+FB4B 4552
+FB4C 24435
+FB4D 66B3
+FB4E 210B4
+FB4F 5637
+FB50 66CD
+FB51 2328A
+FB52 66A4
+FB53 66AD
+FB54 564D
+FB55 564F
+FB56 78F1
+FB57 56F1
+FB58 9787
+FB59 53FE
+FB5A 5700
+FB5B 56EF
+FB5C 56ED
+FB5D 28B66
+FB5E 3623
+FB5F 2124F
+FB60 5746
+FB61 241A5
+FB62 6C6E
+FB63 708B
+FB64 5742
+FB65 36B1
+FB66 26C7E
+FB67 57E6
+FB68 21416
+FB69 5803
+FB6A 21454
+FB6B 24363
+FB6C 5826
+FB6D 24BF5
+FB6E 585C
+FB6F 58AA
+FB70 3561
+FB71 58E0
+FB72 58DC
+FB73 2123C
+FB74 58FB
+FB75 5BFF
+FB76 5743
+FB77 2A150
+FB78 24278
+FB79 93D3
+FB7A 35A1
+FB7B 591F
+FB7C 68A6
+FB7D 36C3
+FB7E 6E59
+FBA1 2163E
+FBA2 5A24
+FBA3 5553
+FBA4 21692
+FBA5 8505
+FBA6 59C9
+FBA7 20D4E
+FBA8 26C81
+FBA9 26D2A
+FBAA 217DC
+FBAB 59D9
+FBAC 217FB
+FBAD 217B2
+FBAE 26DA6
+FBAF 6D71
+FBB0 21828
+FBB1 216D5
+FBB2 59F9
+FBB3 26E45
+FBB4 5AAB
+FBB5 5A63
+FBB6 36E6
+FBB7 249A9
+FBB9 3708
+FBBA 5A96
+FBBB 7465
+FBBC 5AD3
+FBBD 26FA1
+FBBE 22554
+FBBF 3D85
+FBC0 21911
+FBC1 3732
+FBC2 216B8
+FBC3 5E83
+FBC4 52D0
+FBC5 5B76
+FBC6 6588
+FBC7 5B7C
+FBC8 27A0E
+FBC9 4004
+FBCA 485D
+FBCB 20204
+FBCC 5BD5
+FBCD 6160
+FBCE 21A34
+FBCF 259CC
+FBD0 205A5
+FBD1 5BF3
+FBD2 5B9D
+FBD3 4D10
+FBD4 5C05
+FBD5 21B44
+FBD6 5C13
+FBD7 73CE
+FBD8 5C14
+FBD9 21CA5
+FBDA 26B28
+FBDB 5C49
+FBDC 48DD
+FBDD 5C85
+FBDE 5CE9
+FBDF 5CEF
+FBE0 5D8B
+FBE1 21DF9
+FBE2 21E37
+FBE3 5D10
+FBE4 5D18
+FBE5 5D46
+FBE6 21EA4
+FBE7 5CBA
+FBE8 5DD7
+FBE9 82FC
+FBEA 382D
+FBEB 24901
+FBEC 22049
+FBED 22173
+FBEE 8287
+FBEF 3836
+FBF0 3BC2
+FBF1 5E2E
+FBF2 6A8A
+FBF4 5E7A
+FBF5 244BC
+FBF6 20CD3
+FBF7 53A6
+FBF8 4EB7
+FBFA 53A8
+FBFB 21771
+FBFC 5E09
+FBFD 5EF4
+FBFE 28482
+FC40 5EF9
+FC41 5EFB
+FC42 38A0
+FC43 5EFC
+FC44 683E
+FC45 941B
+FC46 5F0D
+FC47 201C1
+FC48 2F894
+FC49 3ADE
+FC4A 48AE
+FC4B 2133A
+FC4C 5F3A
+FC4D 26888
+FC4E 223D0
+FC50 22471
+FC51 5F63
+FC52 97BD
+FC53 26E6E
+FC54 5F72
+FC55 9340
+FC56 28A36
+FC57 5FA7
+FC58 5DB6
+FC59 3D5F
+FC5A 25250
+FC5B 21F6A
+FC5C 270F8
+FC5D 22668
+FC5E 91D6
+FC5F 2029E
+FC60 28A29
+FC61 6031
+FC62 6685
+FC63 21877
+FC64 3963
+FC65 3DC7
+FC66 3639
+FC67 5790
+FC68 227B4
+FC69 7971
+FC6A 3E40
+FC6B 609E
+FC6D 60B3
+FC6E 24982
+FC6F 2498F
+FC70 27A53
+FC71 74A4
+FC72 50E1
+FC73 5AA0
+FC74 6164
+FC75 8424
+FC76 6142
+FC77 2F8A6
+FC78 26ED2
+FC79 6181
+FC7A 51F4
+FC7B 20656
+FC7C 6187
+FC7D 5BAA
+FC7E 23FB7
+FCA1 2285F
+FCA2 61D3
+FCA3 28B9D
+FCA4 2995D
+FCA5 61D0
+FCA6 3932
+FCA7 22980
+FCA8 228C1
+FCA9 6023
+FCAA 615C
+FCAB 651E
+FCAC 638B
+FCAD 20118
+FCAE 62C5
+FCAF 21770
+FCB0 62D5
+FCB1 22E0D
+FCB2 636C
+FCB3 249DF
+FCB4 3A17
+FCB5 6438
+FCB6 63F8
+FCB7 2138E
+FCB8 217FC
+FCBA 6F8A
+FCBB 22E36
+FCBC 9814
+FCBD 2408C
+FCBE 2571D
+FCBF 64E1
+FCC0 64E5
+FCC1 947B
+FCC2 3A66
+FCC3 643A
+FCC4 3A57
+FCC5 654D
+FCC6 6F16
+FCC7 24A28
+FCC8 24A23
+FCC9 6585
+FCCA 656D
+FCCB 655F
+FCCC 2307E
+FCCD 65B5
+FCCE 24940
+FCCF 4B37
+FCD0 65D1
+FCD1 40D8
+FCD2 21829
+FCD3 65E0
+FCD4 65E3
+FCD5 5FDF
+FCD6 23400
+FCD7 6618
+FCD8 231F7
+FCD9 231F8
+FCDA 6644
+FCDB 231A4
+FCDC 231A5
+FCDD 664B
+FCDE 20E75
+FCDF 6667
+FCE0 251E6
+FCE1 6673
+FCE3 21E3D
+FCE4 23231
+FCE5 285F4
+FCE6 231C8
+FCE7 25313
+FCE8 77C5
+FCE9 228F7
+FCEA 99A4
+FCEB 6702
+FCEC 2439C
+FCED 24A21
+FCEE 3B2B
+FCEF 69FA
+FCF0 237C2
+FCF2 6767
+FCF3 6762
+FCF4 241CD
+FCF5 290ED
+FCF6 67D7
+FCF7 44E9
+FCF8 6822
+FCF9 6E50
+FCFA 923C
+FCFB 6801
+FCFC 233E6
+FCFD 26DA0
+FCFE 685D
+FD40 2346F
+FD41 69E1
+FD42 6A0B
+FD43 28ADF
+FD44 6973
+FD45 68C3
+FD46 235CD
+FD47 6901
+FD48 6900
+FD49 3D32
+FD4A 3A01
+FD4B 2363C
+FD4C 3B80
+FD4D 67AC
+FD4E 6961
+FD4F 28A4A
+FD50 42FC
+FD51 6936
+FD52 6998
+FD53 3BA1
+FD54 203C9
+FD55 8363
+FD56 5090
+FD57 69F9
+FD58 23659
+FD59 2212A
+FD5A 6A45
+FD5B 23703
+FD5C 6A9D
+FD5D 3BF3
+FD5E 67B1
+FD5F 6AC8
+FD60 2919C
+FD61 3C0D
+FD62 6B1D
+FD63 20923
+FD64 60DE
+FD65 6B35
+FD66 6B74
+FD67 227CD
+FD68 6EB5
+FD69 23ADB
+FD6A 203B5
+FD6B 21958
+FD6C 3740
+FD6D 5421
+FD6E 23B5A
+FD6F 6BE1
+FD70 23EFC
+FD71 6BDC
+FD72 6C37
+FD73 2248B
+FD74 248F1
+FD75 26B51
+FD76 6C5A
+FD77 8226
+FD78 6C79
+FD79 23DBC
+FD7A 44C5
+FD7B 23DBD
+FD7C 241A4
+FD7D 2490C
+FD7E 24900
+FDA1 23CC9
+FDA2 36E5
+FDA3 3CEB
+FDA4 20D32
+FDA5 9B83
+FDA6 231F9
+FDA7 22491
+FDA8 7F8F
+FDA9 6837
+FDAA 26D25
+FDAB 26DA1
+FDAC 26DEB
+FDAD 6D96
+FDAE 6D5C
+FDAF 6E7C
+FDB0 6F04
+FDB1 2497F
+FDB2 24085
+FDB3 26E72
+FDB4 8533
+FDB5 26F74
+FDB6 51C7
+FDB9 842E
+FDBA 28B21
+FDBC 23E2F
+FDBD 7453
+FDBE 23F82
+FDBF 79CC
+FDC0 6E4F
+FDC1 5A91
+FDC2 2304B
+FDC3 6FF8
+FDC4 370D
+FDC5 6F9D
+FDC6 23E30
+FDC7 6EFA
+FDC8 21497
+FDC9 2403D
+FDCA 4555
+FDCB 93F0
+FDCC 6F44
+FDCD 6F5C
+FDCE 3D4E
+FDCF 6F74
+FDD0 29170
+FDD1 3D3B
+FDD2 6F9F
+FDD3 24144
+FDD4 6FD3
+FDD5 24091
+FDD6 24155
+FDD7 24039
+FDD8 23FF0
+FDD9 23FB4
+FDDA 2413F
+FDDB 51DF
+FDDC 24156
+FDDD 24157
+FDDE 24140
+FDDF 261DD
+FDE0 704B
+FDE1 707E
+FDE2 70A7
+FDE3 7081
+FDE4 70CC
+FDE5 70D5
+FDE6 70D6
+FDE7 70DF
+FDE8 4104
+FDE9 3DE8
+FDEA 71B4
+FDEB 7196
+FDEC 24277
+FDED 712B
+FDEE 7145
+FDEF 5A88
+FDF0 714A
+FDF2 5C9C
+FDF3 24365
+FDF4 714F
+FDF5 9362
+FDF6 242C1
+FDF7 712C
+FDF8 2445A
+FDF9 24A27
+FDFA 24A22
+FDFB 71BA
+FDFC 28BE8
+FDFD 70BD
+FDFE 720E
+FE40 9442
+FE41 7215
+FE42 5911
+FE43 9443
+FE44 7224
+FE45 9341
+FE46 25605
+FE47 722E
+FE48 7240
+FE49 24974
+FE4A 68BD
+FE4B 7255
+FE4C 7257
+FE4D 3E55
+FE4E 23044
+FE4F 680D
+FE50 6F3D
+FE51 7282
+FE53 732B
+FE54 24823
+FE55 2882B
+FE56 48ED
+FE57 28804
+FE58 7328
+FE59 732E
+FE5A 73CF
+FE5B 73AA
+FE5C 20C3A
+FE5D 26A2E
+FE5E 73C9
+FE5F 7449
+FE60 241E2
+FE61 216E7
+FE62 24A24
+FE63 6623
+FE64 36C5
+FE65 249B7
+FE66 2498D
+FE67 249FB
+FE68 73F7
+FE69 7415
+FE6A 6903
+FE6B 24A26
+FE6C 7439
+FE6D 205C3
+FE6E 3ED7
+FE70 228AD
+FE71 7460
+FE72 28EB2
+FE73 7447
+FE74 73E4
+FE75 7476
+FE76 83B9
+FE77 746C
+FE78 3730
+FE79 7474
+FE7A 93F1
+FE7B 6A2C
+FE7C 7482
+FE7D 4953
+FE7E 24A8C
+FEA1 2415F
+FEA2 24A79
+FEA3 28B8F
+FEA4 5B46
+FEA5 28C03
+FEA6 2189E
+FEA7 74C8
+FEA8 21988
+FEA9 750E
+FEAB 751E
+FEAC 28ED9
+FEAD 21A4B
+FEAE 5BD7
+FEAF 28EAC
+FEB0 9385
+FEB1 754D
+FEB2 754A
+FEB3 7567
+FEB4 756E
+FEB5 24F82
+FEB6 3F04
+FEB7 24D13
+FEB8 758E
+FEB9 745D
+FEBA 759E
+FEBB 75B4
+FEBC 7602
+FEBD 762C
+FEBE 7651
+FEBF 764F
+FEC0 766F
+FEC1 7676
+FEC2 263F5
+FEC3 7690
+FEC4 81EF
+FEC5 37F8
+FEC6 26911
+FEC7 2690E
+FEC8 76A1
+FEC9 76A5
+FECA 76B7
+FECB 76CC
+FECC 26F9F
+FECD 8462
+FECE 2509D
+FECF 2517D
+FED0 21E1C
+FED1 771E
+FED2 7726
+FED3 7740
+FED4 64AF
+FED5 25220
+FED6 7758
+FED7 232AC
+FED8 77AF
+FED9 28964
+FEDA 28968
+FEDB 216C1
+FEDC 77F4
+FEDE 21376
+FEDF 24A12
+FEE0 68CA
+FEE1 78AF
+FEE2 78C7
+FEE3 78D3
+FEE4 96A5
+FEE5 792E
+FEE6 255E0
+FEE7 78D7
+FEE8 7934
+FEE9 78B1
+FEEA 2760C
+FEEB 8FB8
+FEEC 8884
+FEED 28B2B
+FEEE 26083
+FEEF 2261C
+FEF0 7986
+FEF1 8900
+FEF2 6902
+FEF3 7980
+FEF4 25857
+FEF5 799D
+FEF6 27B39
+FEF7 793C
+FEF8 79A9
+FEF9 6E2A
+FEFA 27126
+FEFB 3EA8
+FEFC 79C6
+FEFD 2910D
+FEFE 79D4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS_XP.c2b Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,529 @@
+# Generated from HKSCS.Encoder
+#
+0xFA45 0xE005
+0xFA48 0xE008
+0xFA68 0xE028
+0xFA6B 0xE02B
+0xFAA5 0xE043
+0xFACC 0xE06A
+0xFACD 0xE06B
+0xFAD0 0xE06E
+0xFAE0 0xE07E
+0xFAE8 0xE086
+0xFAFA 0xE098
+0xFAFD 0xE09B
+0xFB43 0xE0A0
+0xFB4B 0xE0A8
+0xFB5E 0xE0BB
+0xFB65 0xE0C2
+0xFB70 0xE0CD
+0xFB7A 0xE0D7
+0xFB7D 0xE0DA
+0xFBB6 0xE0F1
+0xFBB9 0xE0F4
+0xFBBF 0xE0FA
+0xFBC1 0xE0FC
+0xFBC9 0xE104
+0xFBCA 0xE105
+0xFBD3 0xE10E
+0xFBDC 0xE117
+0xFBEA 0xE125
+0xFBEF 0xE12A
+0xFBF0 0xE12B
+0xFC42 0xE13C
+0xFC49 0xE143
+0xFC4A 0xE144
+0xFC59 0xE153
+0xFC64 0xE15E
+0xFC65 0xE15F
+0xFC66 0xE160
+0xFC6A 0xE164
+0xFCA6 0xE17E
+0xFCB4 0xE18C
+0xFCC2 0xE19A
+0xFCC4 0xE19C
+0xFCCF 0xE1A7
+0xFCD1 0xE1A9
+0xFCEE 0xE1C6
+0xFCF7 0xE1CF
+0xFD49 0xE1E0
+0xFD4A 0xE1E1
+0xFD4C 0xE1E3
+0xFD50 0xE1E7
+0xFD53 0xE1EA
+0xFD5D 0xE1F4
+0xFD61 0xE1F8
+0xFD6C 0xE203
+0xFD7A 0xE211
+0xFDA2 0xE217
+0xFDA3 0xE218
+0xFDC4 0xE239
+0xFDCA 0xE23F
+0xFDCE 0xE243
+0xFDD1 0xE246
+0xFDE8 0xE25D
+0xFDE9 0xE25E
+0xFE4D 0xE281
+0xFE56 0xE28A
+0xFE64 0xE298
+0xFE6E 0xE2A2
+0xFE78 0xE2AC
+0xFE7D 0xE2B1
+0xFEB6 0xE2C8
+0xFEC5 0xE2D7
+0xFEFB 0xE30D
+0x8E45 0xE316
+0x8E55 0xE326
+0x8E59 0xE32A
+0x8E6B 0xE33C
+0x8EA2 0xE351
+0x8EAF 0xE35E
+0x8EB9 0xE368
+0x8EC7 0xE376
+0x8EC9 0xE378
+0x8ED8 0xE387
+0x8EED 0xE39C
+0x8EFE 0xE3AD
+0x8F45 0xE3B3
+0x8F50 0xE3BE
+0x8F54 0xE3C2
+0x8F59 0xE3C7
+0x8F5D 0xE3CB
+0x8F63 0xE3D1
+0x8F64 0xE3D2
+0x8F70 0xE3DE
+0x8F74 0xE3E2
+0x8F76 0xE3E4
+0x8F7A 0xE3E8
+0x8F7C 0xE3EA
+0x8FA9 0xE3F5
+0x8FAB 0xE3F7
+0x8FBA 0xE406
+0x8FC2 0xE40E
+0x8FDB 0xE427
+0x8FEB 0xE437
+0x8FF1 0xE43D
+0x8FFD 0xE449
+0x9044 0xE44F
+0x9055 0xE460
+0x9060 0xE46B
+0x906F 0xE47A
+0x90AA 0xE493
+0x90B7 0xE4A0
+0x90BC 0xE4A5
+0x90C0 0xE4A9
+0x90C9 0xE4B2
+0x90D5 0xE4BE
+0x90D6 0xE4BF
+0x90D7 0xE4C0
+0x90F5 0xE4DE
+0x90FA 0xE4E3
+0x90FC 0xE4E5
+0x9145 0xE4ED
+0x914F 0xE4F7
+0x9158 0xE500
+0x915F 0xE507
+0x9166 0xE50E
+0x91AE 0xE534
+0x91B3 0xE539
+0x91B4 0xE53A
+0x91B5 0xE53B
+0x91B7 0xE53D
+0x91BB 0xE541
+0x91CD 0xE553
+0x91E3 0xE569
+0x91EE 0xE574
+0x91F2 0xE578
+0x91F5 0xE57B
+0x91F9 0xE57F
+0x924C 0xE591
+0x9251 0xE596
+0x9252 0xE597
+0x9253 0xE598
+0x9257 0xE59C
+0x9269 0xE5AE
+0x9274 0xE5B9
+0x9277 0xE5BC
+0x92BD 0xE5E0
+0x92C9 0xE5EC
+0x92D2 0xE5F5
+0x92D7 0xE5FA
+0x92DB 0xE5FE
+0x92E9 0xE60C
+0x92FA 0xE61D
+0x9347 0xE629
+0x934B 0xE62D
+0x9357 0xE639
+0x9359 0xE63B
+0x935B 0xE63D
+0x936F 0xE651
+0x93A4 0xE664
+0x93B5 0xE675
+0x93C1 0xE681
+0x93C2 0xE682
+0x93CD 0xE68D
+0x93D4 0xE694
+0x93DD 0xE69D
+0x93E0 0xE6A0
+0x93E4 0xE6A4
+0x93E9 0xE6A9
+0x93EB 0xE6AB
+0x93F6 0xE6B6
+0x9449 0xE6C8
+0x9463 0xE6E2
+0x9464 0xE6E3
+0x9469 0xE6E8
+0x946E 0xE6ED
+0x9470 0xE6EF
+0x9472 0xE6F1
+0x9475 0xE6F4
+0x9479 0xE6F8
+0x947E 0xE6FD
+0x94A1 0xE6FE
+0x94A3 0xE700
+0x94B5 0xE712
+0x94B9 0xE716
+0x94BC 0xE719
+0x94C9 0xE726
+0x94D1 0xE72E
+0x94D3 0xE730
+0x94DB 0xE738
+0x94DD 0xE73A
+0x94DE 0xE73B
+0x94EC 0xE749
+0x94EF 0xE74C
+0x9544 0xE760
+0x955A 0xE776
+0x9562 0xE77E
+0x9564 0xE780
+0x9573 0xE78F
+0x95B0 0xE7AA
+0x95B2 0xE7AC
+0x95B3 0xE7AD
+0x95B4 0xE7AE
+0x95C6 0xE7C0
+0x95C7 0xE7C1
+0x95CD 0xE7C7
+0x95D1 0xE7CB
+0x95D6 0xE7D0
+0x95DB 0xE7D5
+0x95DF 0xE7D9
+0x95EC 0xE7E6
+0x95F0 0xE7EA
+0x95F6 0xE7F0
+0x95FC 0xE7F6
+0x9641 0xE7FA
+0x964D 0xE806
+0x965C 0xE815
+0x9662 0xE81B
+0x9664 0xE81D
+0x9669 0xE822
+0x966B 0xE824
+0x9675 0xE82E
+0x9678 0xE831
+0x9679 0xE832
+0x96A6 0xE83D
+0x96A8 0xE83F
+0x96B9 0xE850
+0x96BC 0xE853
+0x96C8 0xE85F
+0x96D4 0xE86B
+0x96D6 0xE86D
+0x96DF 0xE876
+0x96E9 0xE880
+0x96F7 0xE88E
+0x9743 0xE899
+0x9745 0xE89B
+0x9746 0xE89C
+0x975D 0xE8B3
+0x9761 0xE8B7
+0x9766 0xE8BC
+0x977C 0xE8D2
+0x97AE 0xE8E2
+0x97B0 0xE8E4
+0x97B8 0xE8EC
+0x97BA 0xE8EE
+0x97C0 0xE8F4
+0x97C2 0xE8F6
+0x97C3 0xE8F7
+0x97C5 0xE8F9
+0x97C6 0xE8FA
+0x97C9 0xE8FD
+0x97CD 0xE901
+0x97D2 0xE906
+0x97D7 0xE90B
+0x97DA 0xE90E
+0x97DB 0xE90F
+0x97DC 0xE910
+0x97DD 0xE911
+0x97DE 0xE912
+0x97E1 0xE915
+0x97E7 0xE91B
+0x97FD 0xE931
+0x97FE 0xE932
+0x9853 0xE946
+0x9856 0xE949
+0x9872 0xE965
+0x9879 0xE96C
+0x98A8 0xE979
+0x98BC 0xE98D
+0x98C3 0xE994
+0x98C5 0xE996
+0x98CB 0xE99C
+0x98CC 0xE99D
+0x98CD 0xE99E
+0x98CE 0xE99F
+0x98D0 0xE9A1
+0x98D1 0xE9A2
+0x98D6 0xE9A7
+0x98D9 0xE9AA
+0x98DB 0xE9AC
+0x98DD 0xE9AE
+0x98E4 0xE9B5
+0x98E6 0xE9B7
+0x98E8 0xE9B9
+0x98E9 0xE9BA
+0x98EB 0xE9BC
+0x98EC 0xE9BD
+0x98F4 0xE9C5
+0x98FE 0xE9CF
+0x9940 0xE9D0
+0x9946 0xE9D6
+0x9948 0xE9D8
+0x994B 0xE9DB
+0x994E 0xE9DE
+0x9955 0xE9E5
+0x9956 0xE9E6
+0x9959 0xE9E9
+0x995B 0xE9EB
+0x9967 0xE9F7
+0x996E 0xE9FE
+0x9973 0xEA03
+0x997A 0xEA0A
+0x997B 0xEA0B
+0x99A1 0xEA0F
+0x99A5 0xEA13
+0x99A7 0xEA15
+0x99AD 0xEA1B
+0x99B3 0xEA21
+0x99BC 0xEA2A
+0x99C3 0xEA31
+0x99C7 0xEA35
+0x99CE 0xEA3C
+0x99CF 0xEA3D
+0x99DE 0xEA4C
+0x99E1 0xEA4F
+0x99E9 0xEA57
+0x99F5 0xEA63
+0x99F8 0xEA66
+0x9A48 0xEA75
+0x9A49 0xEA76
+0x9A50 0xEA7D
+0x9A55 0xEA82
+0x9A58 0xEA85
+0x9A5A 0xEA87
+0x9A5C 0xEA89
+0x9A60 0xEA8D
+0x9A63 0xEA90
+0x9A6E 0xEA9B
+0x9A70 0xEA9D
+0x9A79 0xEAA6
+0x9A7B 0xEAA8
+0x9ABD 0xEAC8
+0x9AEC 0xEAF7
+0x9B4D 0xEB17
+0x9BA9 0xEB51
+0x9BAA 0xEB52
+0x9BB8 0xEB60
+0x9BBE 0xEB66
+0x9BC2 0xEB6A
+0x9BDF 0xEB87
+0x9BE3 0xEB8B
+0x9BEA 0xEB92
+0x9BEE 0xEB96
+0x9C4A 0xEBB1
+0x9C5C 0xEBC3
+0x9C6F 0xEBD6
+0x9C79 0xEBE0
+0x9CA1 0xEBE6
+0x9CA5 0xEBEA
+0x9CBA 0xEBFF
+0x9CBB 0xEC00
+0x9CBE 0xEC03
+0x9CC6 0xEC0B
+0x9CC8 0xEC0D
+0x9CD1 0xEC16
+0x9CF8 0xEC3D
+0x9D46 0xEC4A
+0x9D49 0xEC4D
+0x9D4F 0xEC53
+0x9D51 0xEC55
+0x9D5D 0xEC61
+0x9D73 0xEC77
+0x9D78 0xEC7C
+0x9D7B 0xEC7F
+0x9DA5 0xEC87
+0x9DAA 0xEC8C
+0x9DAD 0xEC8F
+0x9DB5 0xEC97
+0x9DCC 0xECAE
+0x9DCE 0xECB0
+0x9DEE 0xECD0
+0x9DF3 0xECD5
+0x9E53 0xECF4
+0x9E64 0xED05
+0x9E7A 0xED1B
+0x9E7E 0xED1F
+0x9EA4 0xED23
+0x9EB4 0xED33
+0x9EB8 0xED37
+0x9EB9 0xED38
+0x9EBB 0xED3A
+0x9EC5 0xED44
+0x9EC9 0xED48
+0x9ECD 0xED4C
+0x9EDA 0xED59
+0x9EDD 0xED5C
+0x9EDE 0xED5D
+0x9EDF 0xED5E
+0x9EE5 0xED64
+0x9EE7 0xED66
+0x9EEE 0xED6D
+0x9EF0 0xED6F
+0x9EFC 0xED7B
+0x9F70 0xEDAE
+0x9FA5 0xEDC1
+0x9FD7 0xEDF3
+0x9FD9 0xEDF5
+0xA053 0xEE2E
+0xA068 0xEE43
+0xA06A 0xEE45
+0xA06F 0xEE4A
+0xA078 0xEE53
+0xA07E 0xEE59
+0xA0AC 0xEE65
+0xA0D0 0xEE89
+0xA0DA 0xEE93
+0xA0DE 0xEE97
+0xA0E6 0xEE9F
+0xA0F9 0xEEB2
+0x89B7 0xF3F5
+0x89BA 0xF3F8
+0x89BF 0xF3FD
+0x89C5 0xF403
+0x89D5 0xF413
+0x89D7 0xF415
+0x89DA 0xF418
+0x89DB 0xF419
+0x89DC 0xF41A
+0x89E6 0xF424
+0x89E8 0xF426
+0x89EA 0xF428
+0x89ED 0xF42B
+0x89EE 0xF42C
+0x89EF 0xF42D
+0x89F9 0xF437
+0x89FB 0xF439
+0x89FC 0xF43A
+0x89FE 0xF43C
+0x8A48 0xF445
+0x8A4D 0xF44A
+0x8A51 0xF44E
+0x8A52 0xF44F
+0x8A67 0xF464
+0x8A6B 0xF468
+0x8A6D 0xF46A
+0x8A6E 0xF46B
+0x8A76 0xF473
+0x8A7D 0xF47A
+0x8AAC 0xF487
+0x8AAE 0xF489
+0x8AB8 0xF493
+0x8AB9 0xF494
+0x8ABB 0xF496
+0x8AC2 0xF49D
+0x8AC7 0xF4A2
+0x8AD0 0xF4AB
+0x8AD1 0xF4AC
+0x8AD3 0xF4AE
+0x8ADA 0xF4B5
+0x8AEB 0xF4C6
+0x8AF0 0xF4CB
+0x8AFB 0xF4D6
+0x8B47 0xF4E1
+0x8B60 0xF4FA
+0x8B68 0xF502
+0x8B6A 0xF504
+0x8BA6 0xF51E
+0x8BB1 0xF529
+0x8BB5 0xF52D
+0x8BB6 0xF52E
+0x8BB8 0xF530
+0x8BBE 0xF536
+0x8BC8 0xF540
+0x8BCC 0xF544
+0x8BDC 0xF554
+0x8D63 0xF637
+0x8D64 0xF638
+0x8D67 0xF63B
+0x8D68 0xF63C
+0x8D6D 0xF641
+0x8D6E 0xF642
+0x8D6F 0xF643
+0x8D70 0xF644
+0x8D74 0xF648
+0x8D78 0xF64C
+0x8D7D 0xF651
+0x8DA1 0xF653
+0x8DA6 0xF658
+0x8DAB 0xF65D
+0x8DAD 0xF65F
+0x8DB0 0xF662
+0x8DB2 0xF664
+0x8DB4 0xF666
+0x8DB7 0xF669
+0x8DBA 0xF66C
+0x8DBB 0xF66D
+0x8DBC 0xF66E
+0x8DC3 0xF675
+0x8DC5 0xF677
+0x8DCA 0xF67C
+0x8DCC 0xF67E
+0x8DD6 0xF688
+0x8DDB 0xF68D
+0x8DEB 0xF69D
+0x8DEF 0xF6A1
+0x8DF0 0xF6A2
+0x8DF3 0xF6A5
+0x8DF5 0xF6A7
+0x8DFC 0xF6AE
+0x8DFD 0xF6AF
+0xC6CD 0xF6DD
+0xC8D6 0xF820
+0xC8D7 0xF821
+0xC8D8 0xF822
+0xC8D9 0xF823
+0xC8DA 0xF824
+0xC8DB 0xF825
+0xC8DC 0xF826
+0xC8DD 0xF827
+0xC8DE 0xF828
+0xC8DF 0xF829
+0xC8E0 0xF82A
+0xC8E1 0xF82B
+0xC8E2 0xF82C
+0xC8E3 0xF82D
+0xC8E4 0xF82E
+0xC8E5 0xF82F
+0xC8E6 0xF830
+0xC8E7 0xF831
+0xC8E8 0xF832
+0xC8E9 0xF833
+0xC8EA 0xF834
+0xC8EB 0xF835
+0xC8EC 0xF836
+0xC8ED 0xF837
+0xC8EE 0xF838
+0xC8EF 0xF839
+0xC8F0 0xF83A
+0xC8F1 0xF83B
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/HKSCS_XP.map Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,4704 @@
+# Generated from HKSCS.Encoder
+#
+0x8840 0xF303
+0x8841 0xF304
+0x8842 0xF305
+0x8843 0xF306
+0x8844 0xF307
+0x8845 0xF308
+0x8846 0xF309
+0x8847 0xF30A
+0x8848 0xF30B
+0x8849 0xF30C
+0x884A 0xF30D
+0x884B 0xF30E
+0x884C 0xF30F
+0x884D 0xF310
+0x884E 0xF311
+0x884F 0xF312
+0x8850 0xF313
+0x8851 0xF314
+0x8852 0xF315
+0x8853 0xF316
+0x8854 0xF317
+0x8855 0xF318
+0x8856 0x0100
+0x8857 0x00C1
+0x8858 0x01CD
+0x8859 0x00C0
+0x885A 0x0112
+0x885B 0x00C9
+0x885C 0x011A
+0x885D 0x00C8
+0x885E 0x014C
+0x885F 0x00D3
+0x8860 0x01D1
+0x8861 0x00D2
+0x8862 0xF325
+0x8863 0x1EBE
+0x8864 0xF327
+0x8865 0x1EC0
+0x8866 0x00CA
+0x8867 0x0101
+0x8868 0x00E1
+0x8869 0x01CE
+0x886A 0x00E0
+0x886B 0x0251
+0x886C 0x0113
+0x886D 0x00E9
+0x886E 0x011B
+0x886F 0x00E8
+0x8870 0x012B
+0x8871 0x00ED
+0x8872 0x01D0
+0x8873 0x00EC
+0x8874 0x014D
+0x8875 0x00F3
+0x8876 0x01D2
+0x8877 0x00F2
+0x8878 0x016B
+0x8879 0x00FA
+0x887A 0x01D4
+0x887B 0x00F9
+0x887C 0x01D6
+0x887D 0x01D8
+0x887E 0x01DA
+0x88A1 0x01DC
+0x88A2 0x00FC
+0x88A3 0xF344
+0x88A4 0x1EBF
+0x88A5 0xF346
+0x88A6 0x1EC1
+0x88A7 0x00EA
+0x88A8 0x0261
+0x88A9 0xF34A
+0x88AA 0xF34B
+0x8940 0xF3A0
+0x8941 0xF3A1
+0x8943 0x650A
+0x8946 0x4E3D
+0x8947 0x6EDD
+0x8948 0x9D4E
+0x8949 0x91DF
+0x894C 0xF3AC
+0x894D 0x6491
+0x894E 0x4F1A
+0x894F 0x4F28
+0x8950 0x4FA8
+0x8951 0x5156
+0x8952 0x5174
+0x8953 0x519C
+0x8954 0x51E4
+0x8955 0x52A1
+0x8956 0x52A8
+0x8957 0x533B
+0x8958 0x534E
+0x8959 0x53D1
+0x895A 0x53D8
+0x895B 0x56E2
+0x895C 0x58F0
+0x895D 0x5904
+0x895E 0x5907
+0x895F 0x5932
+0x8960 0x5934
+0x8961 0x5B66
+0x8962 0x5B9E
+0x8963 0x5B9F
+0x8964 0x5C9A
+0x8965 0x5E86
+0x8966 0x603B
+0x8967 0x6589
+0x8968 0x67FE
+0x8969 0x6804
+0x896A 0x6865
+0x896B 0x6D4E
+0x896C 0x70BC
+0x896D 0x7535
+0x896E 0x7EA4
+0x896F 0x7EAC
+0x8970 0x7EBA
+0x8971 0x7EC7
+0x8972 0x7ECF
+0x8973 0x7EDF
+0x8974 0x7F06
+0x8975 0x7F37
+0x8976 0x827A
+0x8977 0x82CF
+0x8978 0x836F
+0x8979 0x89C6
+0x897A 0x8BBE
+0x897B 0x8BE2
+0x897C 0x8F66
+0x897D 0x8F67
+0x897E 0x8F6E
+0x89A1 0x7411
+0x89A2 0x7CFC
+0x89A3 0x7DCD
+0x89A4 0x6946
+0x89A5 0x7AC9
+0x89A6 0x5227
+0x89AB 0x918C
+0x89AC 0x78B8
+0x89AD 0x915E
+0x89AE 0x80BC
+0x89B0 0x8D0B
+0x89B1 0x80F6
+0x89B2 0xF3F0
+0x89B5 0x809F
+0x89B6 0x9EC7
+0x89B7 0x4CCD
+0x89B8 0x9DC9
+0x89B9 0x9E0C
+0x89BA 0x4C3E
+0x89BB 0xF3F9
+0x89BC 0xF3FA
+0x89BD 0x9E0A
+0x89BE 0xF3FC
+0x89BF 0x35C1
+0x89C1 0x6E9A
+0x89C2 0x823E
+0x89C3 0x7519
+0x89C5 0x4911
+0x89C6 0x9A6C
+0x89C7 0x9A8F
+0x89C8 0x9F99
+0x89C9 0x7987
+0x89CA 0xF408
+0x89CB 0xF409
+0x89CC 0xF40A
+0x89CD 0xF40B
+0x89CE 0x4E24
+0x89CF 0x4E81
+0x89D0 0x4E80
+0x89D1 0x4E87
+0x89D2 0x4EBF
+0x89D3 0x4EEB
+0x89D4 0x4F37
+0x89D5 0x344C
+0x89D6 0x4FBD
+0x89D7 0x3E48
+0x89D8 0x5003
+0x89D9 0x5088
+0x89DA 0x347D
+0x89DB 0x3493
+0x89DC 0x34A5
+0x89DD 0x5186
+0x89DE 0x5905
+0x89DF 0x51DB
+0x89E0 0x51FC
+0x89E1 0x5205
+0x89E2 0x4E89
+0x89E3 0x5279
+0x89E4 0x5290
+0x89E5 0x5327
+0x89E6 0x35C7
+0x89E7 0x53A9
+0x89E8 0x3551
+0x89E9 0x53B0
+0x89EA 0x3553
+0x89EB 0x53C2
+0x89EC 0x5423
+0x89ED 0x356D
+0x89EE 0x3572
+0x89EF 0x3681
+0x89F0 0x5493
+0x89F1 0x54A3
+0x89F2 0x54B4
+0x89F3 0x54B9
+0x89F4 0x54D0
+0x89F5 0x54EF
+0x89F6 0x5518
+0x89F7 0x5523
+0x89F8 0x5528
+0x89F9 0x3598
+0x89FA 0x553F
+0x89FB 0x35A5
+0x89FC 0x35BF
+0x89FD 0x55D7
+0x89FE 0x35C5
+0x8A40 0xF43D
+0x8A41 0x5525
+0x8A43 0xF440
+0x8A44 0xF441
+0x8A45 0xF442
+0x8A46 0x5590
+0x8A47 0xF444
+0x8A48 0x39EC
+0x8A49 0xF446
+0x8A4A 0x8E46
+0x8A4B 0xF448
+0x8A4C 0xF449
+0x8A4D 0x4053
+0x8A4E 0xF44B
+0x8A4F 0x777A
+0x8A50 0xF44D
+0x8A51 0x3A34
+0x8A52 0x47D5
+0x8A53 0xF450
+0x8A54 0xF451
+0x8A55 0xF452
+0x8A56 0x64DD
+0x8A57 0xF454
+0x8A58 0xF455
+0x8A59 0xF456
+0x8A5A 0xF457
+0x8A5B 0x648D
+0x8A5C 0x8E7E
+0x8A5D 0xF45A
+0x8A5E 0xF45B
+0x8A5F 0xF45C
+0x8A60 0xF45D
+0x8A61 0xF45E
+0x8A62 0xF45F
+0x8A64 0xF461
+0x8A65 0xF462
+0x8A66 0xF463
+0x8A67 0x47F4
+0x8A68 0xF465
+0x8A69 0xF466
+0x8A6A 0x9AB2
+0x8A6B 0x3A67
+0x8A6C 0xF469
+0x8A6D 0x3FED
+0x8A6E 0x3506
+0x8A6F 0xF46C
+0x8A70 0xF46D
+0x8A71 0xF46E
+0x8A72 0xF46F
+0x8A73 0x9D6E
+0x8A74 0x9815
+0x8A76 0x43D9
+0x8A77 0xF474
+0x8A78 0x64B4
+0x8A79 0x54E3
+0x8A7A 0xF477
+0x8A7B 0xF478
+0x8A7C 0xF479
+0x8A7D 0x39FB
+0x8A7E 0xF47B
+0x8AA1 0xF47C
+0x8AA2 0xF47D
+0x8AA3 0xF47E
+0x8AA4 0x64EA
+0x8AA5 0xF480
+0x8AA6 0xF481
+0x8AA7 0x8E68
+0x8AA8 0xF483
+0x8AA9 0xF484
+0x8AAA 0xF485
+0x8AAC 0x480B
+0x8AAD 0xF488
+0x8AAE 0x3FFA
+0x8AAF 0x5873
+0x8AB0 0xF48B
+0x8AB2 0xF48D
+0x8AB3 0xF48E
+0x8AB4 0xF48F
+0x8AB5 0xF490
+0x8AB6 0xF491
+0x8AB7 0x5579
+0x8AB8 0x40BB
+0x8AB9 0x43BA
+0x8ABB 0x4AB4
+0x8ABC 0xF497
+0x8ABD 0xF498
+0x8ABE 0x81AA
+0x8ABF 0x98F5
+0x8AC0 0xF49B
+0x8AC1 0x6379
+0x8AC2 0x39FE
+0x8AC3 0xF49E
+0x8AC4 0x8DC0
+0x8AC5 0x56A1
+0x8AC6 0x647C
+0x8AC7 0x3E43
+0x8AC9 0xF4A4
+0x8ACA 0xF4A5
+0x8ACB 0xF4A6
+0x8ACC 0xF4A7
+0x8ACE 0xF4A9
+0x8ACF 0xF4AA
+0x8AD0 0x3992
+0x8AD1 0x3A06
+0x8AD2 0xF4AD
+0x8AD3 0x3578
+0x8AD4 0xF4AF
+0x8AD5 0xF4B0
+0x8AD6 0x5652
+0x8AD7 0xF4B2
+0x8AD8 0xF4B3
+0x8AD9 0xF4B4
+0x8ADA 0x34BC
+0x8ADB 0x6C3D
+0x8ADC 0xF4B7
+0x8ADF 0xF4BA
+0x8AE0 0xF4BB
+0x8AE1 0xF4BC
+0x8AE2 0xF4BD
+0x8AE3 0xF4BE
+0x8AE4 0xF4BF
+0x8AE5 0xF4C0
+0x8AE6 0xF4C1
+0x8AE7 0x7F93
+0x8AE8 0xF4C3
+0x8AE9 0xF4C4
+0x8AEA 0xF4C5
+0x8AEB 0x35FB
+0x8AEC 0xF4C7
+0x8AED 0xF4C8
+0x8AEE 0xF4C9
+0x8AEF 0xF4CA
+0x8AF0 0x3F93
+0x8AF1 0xF4CC
+0x8AF2 0xF4CD
+0x8AF3 0xF4CE
+0x8AF4 0xF4CF
+0x8AF6 0xF4D1
+0x8AF7 0xF4D2
+0x8AF8 0xF4D3
+0x8AF9 0xF4D4
+0x8AFA 0xF4D5
+0x8AFB 0x3FF9
+0x8AFC 0xF4D7
+0x8AFD 0x6432
+0x8AFE 0xF4D9
+0x8B40 0xF4DA
+0x8B41 0xF4DB
+0x8B42 0xF4DC
+0x8B43 0xF4DD
+0x8B44 0xF4DE
+0x8B45 0xF4DF
+0x8B46 0xF4E0
+0x8B47 0x3A18
+0x8B48 0xF4E2
+0x8B49 0xF4E3
+0x8B4A 0xF4E4
+0x8B4B 0xF4E5
+0x8B4C 0xF4E6
+0x8B4D 0xF4E7
+0x8B4E 0xF4E8
+0x8B4F 0xF4E9
+0x8B50 0x95AA
+0x8B51 0x54CC
+0x8B52 0x82C4
+0x8B53 0x55B9
+0x8B55 0xF4EF
+0x8B56 0x9C26
+0x8B57 0x9AB6
+0x8B58 0xF4F2
+0x8B59 0xF4F3
+0x8B5A 0x7140
+0x8B5B 0x816D
+0x8B5C 0x80EC
+0x8B5D 0x5C1C
+0x8B5E 0xF4F8
+0x8B5F 0x8134
+0x8B60 0x3797
+0x8B61 0x535F
+0x8B62 0xF4FC
+0x8B63 0x91B6
+0x8B64 0xF4FE
+0x8B65 0xF4FF
+0x8B66 0xF500
+0x8B67 0xF501
+0x8B68 0x35DD
+0x8B69 0xF503
+0x8B6A 0x3609
+0x8B6B 0xF505
+0x8B6C 0x56AF
+0x8B6D 0xF507
+0x8B6E 0xF508
+0x8B6F 0xF509
+0x8B70 0xF50A
+0x8B71 0xF50B
+0x8B72 0xF50C
+0x8B73 0xF50D
+0x8B74 0xF50E
+0x8B75 0xF50F
+0x8B76 0xF510
+0x8B77 0xF511
+0x8B78 0x5A54
+0x8B79 0xF513
+0x8B7A 0xF514
+0x8B7B 0xF515
+0x8B7C 0xF516
+0x8B7D 0x579C
+0x8B7E 0xF518
+0x8BA1 0xF519
+0x8BA2 0xF51A
+0x8BA3 0xF51B
+0x8BA4 0xF51C
+0x8BA5 0xF51D
+0x8BA6 0x3703
+0x8BA7 0xF51F
+0x8BA8 0xF520
+0x8BA9 0xF521
+0x8BAA 0xF522
+0x8BAB 0xF523
+0x8BAC 0xF524
+0x8BAD 0xF525
+0x8BAE 0xF526
+0x8BAF 0x5899
+0x8BB0 0x5268
+0x8BB1 0x361A
+0x8BB2 0xF52A
+0x8BB3 0x7BB2
+0x8BB4 0x5B68
+0x8BB5 0x4800
+0x8BB6 0x4B2C
+0x8BB7 0x9F27
+0x8BB8 0x49E7
+0x8BB9 0x9C1F
+0x8BBA 0x9B8D
+0x8BBB 0xF533
+0x8BBC 0xF534
+0x8BBD 0x55FB
+0x8BBE 0x35F2
+0x8BBF 0x5689
+0x8BC0 0x4E28
+0x8BC1 0x5902
+0x8BC2 0xF53A
+0x8BC3 0xF53B
+0x8BC4 0x9751
+0x8BC5 0xF53D
+0x8BC6 0x4E5B
+0x8BC7 0x4EBB
+0x8BC8 0x353E
+0x8BC9 0x5C23
+0x8BCA 0x5F51
+0x8BCB 0x5FC4
+0x8BCC 0x38FA
+0x8BCD 0x624C
+0x8BCE 0x6535
+0x8BCF 0x6B7A
+0x8BD0 0x6C35
+0x8BD1 0x6C3A
+0x8BD2 0x706C
+0x8BD3 0x722B
+0x8BD4 0x4E2C
+0x8BD5 0x72AD
+0x8BD6 0xF54E
+0x8BD7 0x7F52
+0x8BD8 0x793B
+0x8BD9 0x7CF9
+0x8BDA 0x7F53
+0x8BDB 0xF553
+0x8BDC 0x34C1
+0x8BDE 0xF556
+0x8BDF 0x8002
+0x8BE0 0x8080
+0x8BE1 0xF559
+0x8BE2 0xF55A
+0x8BE3 0x535D
+0x8BE4 0x8864
+0x8BE5 0x89C1
+0x8BE6 0xF55E
+0x8BE7 0x8BA0
+0x8BE8 0x8D1D
+0x8BE9 0x9485
+0x8BEA 0x9578
+0x8BEB 0x957F
+0x8BEC 0x95E8
+0x8BED 0xF565
+0x8BEE 0x97E6
+0x8BEF 0x9875
+0x8BF0 0x98CE
+0x8BF1 0x98DE
+0x8BF2 0x9963
+0x8BF3 0xF56B
+0x8BF4 0x9C7C
+0x8BF5 0x9E1F
+0x8BF6 0x9EC4
+0x8BF7 0x6B6F
+0x8BF8 0x9F9C
+0x8BF9 0x4E37
+0x8BFA 0xF572
+0x8BFB 0x961D
+0x8BFC 0x6237
+0x8BFD 0x94A2
+0x8D60 0x5D3E
+0x8D61 0x5D48
+0x8D62 0x5D56
+0x8D63 0x3DFC
+0x8D64 0x380F
+0x8D65 0x5DA4
+0x8D66 0x5DB9
+0x8D67 0x3820
+0x8D68 0x3838
+0x8D69 0x5E42
+0x8D6A 0x5EBD
+0x8D6B 0x5F25
+0x8D6C 0x5F83
+0x8D6D 0x3908
+0x8D6E 0x3914
+0x8D6F 0x393F
+0x8D70 0x394D
+0x8D71 0x60D7
+0x8D72 0x613D
+0x8D73 0x5CE5
+0x8D74 0x3989
+0x8D75 0x61B7
+0x8D76 0x61B9
+0x8D77 0x61CF
+0x8D78 0x39B8
+0x8D79 0x622C
+0x8D7A 0x6290
+0x8D7B 0x62E5
+0x8D7C 0x6318
+0x8D7D 0x39F8
+0x8D7E 0x56B1
+0x8DA1 0x3A03
+0x8DA2 0x63E2
+0x8DA3 0x63FB
+0x8DA4 0x6407
+0x8DA5 0x645A
+0x8DA6 0x3A4B
+0x8DA7 0x64C0
+0x8DA8 0x5D15
+0x8DA9 0x5621
+0x8DAA 0x9F9F
+0x8DAB 0x3A97
+0x8DAC 0x6586
+0x8DAD 0x3ABD
+0x8DAE 0x65FF
+0x8DAF 0x6653
+0x8DB0 0x3AF2
+0x8DB1 0x6692
+0x8DB2 0x3B22
+0x8DB3 0x6716
+0x8DB4 0x3B42
+0x8DB5 0x67A4
+0x8DB6 0x6800
+0x8DB7 0x3B58
+0x8DB8 0x684A
+0x8DB9 0x6884
+0x8DBA 0x3B72
+0x8DBB 0x3B71
+0x8DBC 0x3B7B
+0x8DBD 0x6909
+0x8DBE 0x6943
+0x8DBF 0x725C
+0x8DC0 0x6964
+0x8DC1 0x699F
+0x8DC2 0x6985
+0x8DC3 0x3BBC
+0x8DC4 0x69D6
+0x8DC5 0x3BDD
+0x8DC6 0x6A65
+0x8DC7 0x6A74
+0x8DC8 0x6A71
+0x8DC9 0x6A82
+0x8DCA 0x3BEC
+0x8DCB 0x6A99
+0x8DCC 0x3BF2
+0x8DCD 0x6AAB
+0x8DCE 0x6AB5
+0x8DCF 0x6AD4
+0x8DD0 0x6AF6
+0x8DD1 0x6B81
+0x8DD2 0x6BC1
+0x8DD3 0x6BEA
+0x8DD4 0x6C75
+0x8DD5 0x6CAA
+0x8DD6 0x3CCB
+0x8DD7 0x6D02
+0x8DD8 0x6D06
+0x8DD9 0x6D26
+0x8DDA 0x6D81
+0x8DDB 0x3CEF
+0x8DDC 0x6DA4
+0x8DDD 0x6DB1
+0x8DDE 0x6E15
+0x8DDF 0x6E18
+0x8DE0 0x6E29
+0x8DE1 0x6E86
+0x8DE2 0xF694
+0x8DE3 0x6EBB
+0x8DE4 0x6EE2
+0x8DE5 0x6EDA
+0x8DE6 0x9F7F
+0x8DE7 0x6EE8
+0x8DE8 0x6EE9
+0x8DE9 0x6F24
+0x8DEA 0x6F34
+0x8DEB 0x3D46
+0x8DEC 0xF69E
+0x8DED 0x6F81
+0x8DEE 0x6FBE
+0x8DEF 0x3D6A
+0x8DF0 0x3D75
+0x8DF1 0x71B7
+0x8DF2 0x5C99
+0x8DF3 0x3D8A
+0x8DF4 0x702C
+0x8DF5 0x3D91
+0x8DF6 0x7050
+0x8DF7 0x7054
+0x8DF8 0x706F
+0x8DF9 0x707F
+0x8DFA 0x7089
+0x8DFB 0xF6AD
+0x8DFC 0x43C1
+0x8DFD 0x35F1
+0x8DFE 0xF6B0
+0x8E40 0xE311
+0x8E41 0x57BE
+0x8E42 0xE313
+0x8E43 0x713E
+0x8E44 0xE315
+0x8E45 0x364E
+0x8E46 0x69A2
+0x8E47 0xE318
+0x8E48 0x5B74
+0x8E49 0x7A49
+0x8E4A 0xE31B
+0x8E4B 0xE31C
+0x8E4C 0x7A65
+0x8E4D 0x7A7D
+0x8E4E 0xE31F
+0x8E4F 0x7ABB
+0x8E50 0x7AB0
+0x8E51 0x7AC2
+0x8E52 0x7AC3
+0x8E53 0x71D1
+0x8E54 0xE325
+0x8E55 0x41CA
+0x8E56 0x7ADA
+0x8E57 0x7ADD
+0x8E58 0x7AEA
+0x8E59 0x41EF
+0x8E5A 0x54B2
+0x8E5B 0xE32C
+0x8E5C 0x7B0B
+0x8E5D 0x7B55
+0x8E5E 0x7B29
+0x8E5F 0xE330
+0x8E60 0xE331
+0x8E61 0x7BA2
+0x8E62 0x7B6F
+0x8E63 0x839C
+0x8E64 0xE335
+0x8E65 0xE336
+0x8E66 0x7BD0
+0x8E67 0x8421
+0x8E68 0x7B92
+0x8E6A 0xE33B
+0x8E6B 0x3DAD
+0x8E6C 0xE33D
+0x8E6D 0x8492
+0x8E6E 0x7BFA
+0x8E70 0x7C35
+0x8E71 0xE342
+0x8E72 0x7C44
+0x8E73 0x7C83
+0x8E74 0xE345
+0x8E75 0x7CA6
+0x8E76 0x667D
+0x8E77 0xE348
+0x8E78 0x7CC9
+0x8E79 0x7CC7
+0x8E7A 0x7CE6
+0x8E7B 0x7C74
+0x8E7C 0x7CF3
+0x8E7D 0x7CF5
+0x8EA1 0x7E67
+0x8EA2 0x451D
+0x8EA3 0xE352
+0x8EA4 0x7D5D
+0x8EA5 0xE354
+0x8EA6 0x748D
+0x8EA7 0x7D89
+0x8EA8 0x7DAB
+0x8EA9 0x7135
+0x8EAA 0x7DB3
+0x8EAC 0xE35B
+0x8EAD 0xE35C
+0x8EAE 0x7DE4
+0x8EAF 0x3D13
+0x8EB0 0x7DF5
+0x8EB1 0xE360
+0x8EB2 0x7DE5
+0x8EB3 0xE362
+0x8EB5 0xE364
+0x8EB6 0xE365
+0x8EB7 0x7E6E
+0x8EB8 0x7E92
+0x8EB9 0x432B
+0x8EBA 0x946C
+0x8EBB 0x7E27
+0x8EBC 0x7F40
+0x8EBD 0x7F41
+0x8EBE 0x7F47
+0x8EBF 0x7936
+0x8EC0 0xE36F
+0x8EC1 0x99E1
+0x8EC2 0x7F97
+0x8EC3 0xE372
+0x8EC4 0x7FA3
+0x8EC5 0xE374
+0x8EC6 0xE375
+0x8EC7 0x455C
+0x8EC8 0xE377
+0x8EC9 0x4503
+0x8ECA 0xE379
+0x8ECB 0x7FFA
+0x8ECC 0xE37B
+0x8ECE 0x8008
+0x8ECF 0x801D
+0x8ED1 0x802F
+0x8ED2 0xE381
+0x8ED3 0xE382
+0x8ED4 0x803B
+0x8ED5 0x803C
+0x8ED6 0x8061
+0x8ED7 0xE386
+0x8ED8 0x4989
+0x8ED9 0xE388
+0x8EDA 0xE389
+0x8EDB 0xE38A
+0x8EDC 0x6725
+0x8EDD 0x80A7
+0x8EDE 0xE38D
+0x8EDF 0x8107
+0x8EE0 0x811A
+0x8EE1 0x58B0
+0x8EE2 0xE391
+0x8EE3 0x6C7F
+0x8EE4 0xE393
+0x8EE5 0xE394
+0x8EE6 0x64E7
+0x8EE7 0xE396
+0x8EE8 0x8218
+0x8EE9 0xE398
+0x8EEA 0x6A53
+0x8EEB 0xE39A
+0x8EEC 0xE39B
+0x8EED 0x447A
+0x8EEE 0x8229
+0x8EEF 0xE39E
+0x8EF0 0xE39F
+0x8EF1 0xE3A0
+0x8EF2 0x4FF9
+0x8EF3 0xE3A2
+0x8EF4 0x84E2
+0x8EF5 0x8362
+0x8EF6 0xE3A5
+0x8EF7 0xE3A6
+0x8EF8 0xE3A7
+0x8EF9 0xE3A8
+0x8EFA 0xE3A9
+0x8EFB 0x82AA
+0x8EFC 0x691B
+0x8EFD 0xE3AC
+0x8EFE 0x41DB
+0x8F40 0x854B
+0x8F41 0x82D0
+0x8F42 0x831A
+0x8F43 0xE3B1
+0x8F44 0xE3B2
+0x8F45 0x36C1
+0x8F46 0xE3B4
+0x8F47 0xE3B5
+0x8F48 0x827B
+0x8F49 0x82E2
+0x8F4A 0x8318
+0x8F4B 0xE3B9
+0x8F4C 0xE3BA
+0x8F4D 0xE3BB
+0x8F4E 0xE3BC
+0x8F4F 0xE3BD
+0x8F50 0x3DBF
+0x8F51 0x831D
+0x8F52 0x55EC
+0x8F53 0x8385
+0x8F54 0x450B
+0x8F55 0xE3C3
+0x8F56 0x83AC
+0x8F58 0x83D3
+0x8F59 0x347E
+0x8F5A 0xE3C8
+0x8F5B 0x6A57
+0x8F5C 0x855A
+0x8F5D 0x3496
+0x8F5E 0xE3CC
+0x8F5F 0xE3CD
+0x8F60 0x8458
+0x8F61 0xE3CF
+0x8F62 0x8471
+0x8F63 0x3DD3
+0x8F64 0x44E4
+0x8F65 0x6AA7
+0x8F66 0x844A
+0x8F67 0xE3D5
+0x8F68 0x7958
+0x8F6A 0xE3D8
+0x8F6B 0xE3D9
+0x8F6C 0xE3DA
+0x8F6D 0x84DE
+0x8F6F 0x8391
+0x8F70 0x44A0
+0x8F71 0x8493
+0x8F72 0x84E4
+0x8F73 0xE3E1
+0x8F74 0x4240
+0x8F75 0xE3E3
+0x8F76 0x4543
+0x8F77 0x8534
+0x8F78 0x5AF2
+0x8F79 0xE3E7
+0x8F7A 0x4527
+0x8F7B 0x8573
+0x8F7C 0x4516
+0x8F7D 0x67BF
+0x8F7E 0x8616
+0x8FA1 0xE3ED
+0x8FA2 0xE3EE
+0x8FA3 0x85C1
+0x8FA4 0xE3F0
+0x8FA5 0x8602
+0x8FA6 0xE3F2
+0x8FA7 0xE3F3
+0x8FA8 0xE3F4
+0x8FA9 0x456A
+0x8FAA 0x8628
+0x8FAB 0x3648
+0x8FAC 0xE3F8
+0x8FAD 0x53F7
+0x8FAE 0xE3FA
+0x8FAF 0x867E
+0x8FB0 0x8771
+0x8FB1 0xE3FD
+0x8FB2 0x87EE
+0x8FB3 0xE3FF
+0x8FB4 0x87B1
+0x8FB5 0x87DA
+0x8FB6 0x880F
+0x8FB7 0x5661
+0x8FB8 0x866C
+0x8FB9 0x6856
+0x8FBA 0x460F
+0x8FBB 0x8845
+0x8FBC 0x8846
+0x8FBD 0xE409
+0x8FBE 0xE40A
+0x8FBF 0xE40B
+0x8FC0 0x885E
+0x8FC1 0x889C
+0x8FC2 0x465B
+0x8FC3 0x88B4
+0x8FC4 0x88B5
+0x8FC5 0x63C1
+0x8FC6 0x88C5
+0x8FC7 0x7777
+0x8FC8 0xE414
+0x8FC9 0x8987
+0x8FCA 0x898A
+0x8FCD 0x89A7
+0x8FCE 0x89BC
+0x8FCF 0xE41B
+0x8FD0 0x89E7
+0x8FD1 0xE41D
+0x8FD2 0xE41E
+0x8FD3 0x8A9C
+0x8FD4 0x7793
+0x8FD5 0x91FE
+0x8FD6 0x8A90
+0x8FD7 0xE423
+0x8FD8 0x7AE9
+0x8FD9 0xE425
+0x8FDA 0xE426
+0x8FDB 0x4713
+0x8FDC 0xE428
+0x8FDD 0x717C
+0x8FDE 0x8B0C
+0x8FDF 0x8B1F
+0x8FE0 0xE42C
+0x8FE1 0xE42D
+0x8FE2 0x8B3F
+0x8FE3 0x8B4C
+0x8FE4 0x8B4D
+0x8FE5 0x8AA9
+0x8FE6 0xE432
+0x8FE7 0x8B90
+0x8FE8 0x8B9B
+0x8FE9 0x8AAF
+0x8FEA 0xE436
+0x8FEB 0x4615
+0x8FEC 0x884F
+0x8FED 0x8C9B
+0x8FEE 0xE43A
+0x8FEF 0xE43B
+0x8FF0 0xE43C
+0x8FF1 0x3725
+0x8FF2 0xE43E
+0x8FF3 0x8CD6
+0x8FF4 0xE440
+0x8FF5 0xE441
+0x8FF6 0x8D12
+0x8FF7 0x8D03
+0x8FF8 0xE444
+0x8FF9 0x8CDB
+0x8FFA 0x705C
+0x8FFB 0x8D11
+0x8FFC 0xE448
+0x8FFD 0x3ED0
+0x9040 0x8DA9
+0x9041 0xE44C
+0x9042 0xE44D
+0x9043 0xE44E
+0x9044 0x3B7C
+0x9045 0xE450
+0x9046 0xE451
+0x9047 0x7AE7
+0x9048 0x8EAD
+0x9049 0x8EB6
+0x904A 0x8EC3
+0x904B 0x92D4
+0x904C 0x8F19
+0x904D 0x8F2D
+0x904E 0xE459
+0x904F 0xE45A
+0x9050 0x8FA5
+0x9051 0x9303
+0x9052 0xE45D
+0x9053 0xE45E
+0x9054 0x8FB3
+0x9055 0x492A
+0x9056 0xE461
+0x9057 0xE462
+0x9058 0xE463
+0x9059 0x5EF8
+0x905A 0xE465
+0x905B 0x8FF9
+0x905C 0xE467
+0x905D 0xE468
+0x905E 0xE469
+0x905F 0xE46A
+0x9060 0x3980
+0x9061 0xE46C
+0x9062 0x9037
+0x9063 0xE46E
+0x9064 0xE46F
+0x9065 0x9061
+0x9066 0xE471
+0x9067 0xE472
+0x9068 0x90A8
+0x9069 0xE474
+0x906A 0x90C4
+0x906B 0xE476
+0x906C 0x90AE
+0x906E 0x9167
+0x906F 0x3AF0
+0x9070 0x91A9
+0x9071 0x91C4
+0x9072 0x7CAC
+0x9073 0xE47E
+0x9074 0xE47F
+0x9075 0x920E
+0x9076 0x6C9F
+0x9077 0x9241
+0x9078 0x9262
+0x9079 0xE484
+0x907B 0xE486
+0x907C 0xE487
+0x907D 0xE488
+0x907E 0xE489
+0x90A1 0xE48A
+0x90A2 0x932C
+0x90A3 0x936B
+0x90A4 0xE48D
+0x90A5 0xE48E
+0x90A6 0x708F
+0x90A7 0x5AC3
+0x90A8 0xE491
+0x90A9 0xE492
+0x90AA 0x4965
+0x90AB 0x9244
+0x90AC 0xE495
+0x90AD 0xE496
+0x90AE 0xE497
+0x90AF 0x9373
+0x90B0 0x945B
+0x90B1 0x8EBC
+0x90B2 0x9585
+0x90B3 0x95A6
+0x90B4 0x9426
+0x90B5 0x95A0
+0x90B6 0x6FF6
+0x90B7 0x42B9
+0x90B8 0xE4A1
+0x90B9 0xE4A2
+0x90BA 0xE4A3
+0x90BB 0xE4A4
+0x90BC 0x49DF
+0x90BD 0x6C1C
+0x90BE 0x967B
+0x90BF 0x9696
+0x90C0 0x416C
+0x90C1 0x96A3
+0x90C2 0xE4AB
+0x90C3 0x61DA
+0x90C4 0x96B6
+0x90C5 0x78F5
+0x90C6 0xE4AF
+0x90C7 0x96BD
+0x90C8 0x53CC
+0x90C9 0x49A1
+0x90CA 0xE4B3
+0x90CB 0xE4B4
+0x90CC 0xE4B5
+0x90CD 0xE4B6
+0x90CE 0xE4B7
+0x90CF 0xE4B8
+0x90D0 0xE4B9
+0x90D1 0xE4BA
+0x90D2 0x9731
+0x90D3 0x8642
+0x90D4 0x9736
+0x90D5 0x4A0F
+0x90D6 0x453D
+0x90D7 0x4585
+0x90D8 0xE4C1
+0x90D9 0x7075
+0x90DA 0x5B41
+0x90DB 0x971B
+0x90DD 0xE4C6
+0x90DE 0x9757
+0x90DF 0x5B4A
+0x90E0 0xE4C9
+0x90E1 0x975F
+0x90E2 0x9425
+0x90E3 0x50D0
+0x90E4 0xE4CD
+0x90E5 0xE4CE
+0x90E6 0x9789
+0x90E7 0x979F
+0x90E8 0x97B1
+0x90E9 0x97BE
+0x90EA 0x97C0
+0x90EB 0x97D2
+0x90EC 0x97E0
+0x90ED 0xE4D6
+0x90EE 0x97EE
+0x90EF 0x741C
+0x90F0 0xE4D9
+0x90F2 0x97F5
+0x90F3 0xE4DC
+0x90F4 0xE4DD
+0x90F5 0x4AD1
+0x90F6 0x9834
+0x90F7 0x9833
+0x90F8 0x984B
+0x90F9 0x9866
+0x90FA 0x3B0E
+0x90FB 0xE4E4
+0x90FC 0x3D51
+0x90FD 0xE4E6
+0x90FE 0xE4E7
+0x9140 0xE4E8
+0x9141 0x98CA
+0x9142 0x98B7
+0x9143 0x98C8
+0x9144 0x98C7
+0x9145 0x4AFF
+0x9146 0xE4EE
+0x9147 0xE4EF
+0x9148 0x55B0
+0x9149 0x98E1
+0x914A 0x98E6
+0x914B 0x98EC
+0x914C 0x9378
+0x914D 0x9939
+0x914E 0xE4F6
+0x914F 0x4B72
+0x9150 0xE4F8
+0x9151 0xE4F9
+0x9152 0x99F5
+0x9153 0x9A0C
+0x9154 0x9A3B
+0x9155 0x9A10
+0x9156 0x9A58
+0x9157 0xE4FF
+0x9158 0x36C4
+0x9159 0xE501
+0x915A 0xE502
+0x915B 0x9AE0
+0x915C 0x9AE2
+0x915D 0xE505
+0x915E 0x9AF4
+0x915F 0x4C0E
+0x9160 0x9B14
+0x9161 0x9B2D
+0x9162 0xE50A
+0x9163 0x5034
+0x9164 0x9B34
+0x9165 0xE50D
+0x9166 0x38C3
+0x9167 0xE50F
+0x9168 0x9B50
+0x9169 0x9B40
+0x916A 0xE512
+0x916B 0x5A45
+0x916C 0xE514
+0x916D 0x9B8E
+0x916E 0xE516
+0x916F 0x9C02
+0x9170 0x9BFF
+0x9171 0x9C0C
+0x9172 0xE51A
+0x9173 0x9DD4
+0x9174 0xE51C
+0x9175 0xE51D
+0x9176 0xE51E
+0x9177 0xE51F
+0x9178 0xE520
+0x9179 0xE521
+0x917A 0x9D7E
+0x917B 0x9D83
+0x917C 0xE524
+0x917D 0x9E0E
+0x917E 0x6888
+0x91A1 0x9DC4
+0x91A2 0xE528
+0x91A3 0xE529
+0x91A4 0xE52A
+0x91A5 0xE52B
+0x91A6 0xE52C
+0x91A7 0x9D39
+0x91A8 0xE52E
+0x91A9 0xE52F
+0x91AA 0x9E90
+0x91AB 0x9E95
+0x91AC 0x9E9E
+0x91AD 0x9EA2
+0x91AE 0x4D34
+0x91AF 0x9EAA
+0x91B0 0x9EAF
+0x91B1 0xE537
+0x91B2 0x9EC1
+0x91B3 0x3B60
+0x91B4 0x39E5
+0x91B5 0x3D1D
+0x91B6 0x4F32
+0x91B7 0x37BE
+0x91B8 0xE53E
+0x91B9 0x9F02
+0x91BA 0x9F08
+0x91BB 0x4B96
+0x91BC 0x9424
+0x91BD 0xE543
+0x91BE 0x9F17
+0x91C0 0x9F39
+0x91C1 0x569F
+0x91C2 0x568A
+0x91C3 0x9F45
+0x91C4 0x99B8
+0x91C5 0xE54B
+0x91C6 0x97F2
+0x91C7 0x847F
+0x91C8 0x9F62
+0x91C9 0x9F69
+0x91CA 0x7ADC
+0x91CB 0x9F8E
+0x91CC 0x7216
+0x91CD 0x4BBE
+0x91CE 0xE554
+0x91CF 0xE555
+0x91D0 0x7177
+0x91D1 0xE557
+0x91D2 0xE558
+0x91D3 0xE559
+0x91D4 0x739E
+0x91D5 0xE55B
+0x91D6 0xE55C
+0x91D7 0x799F
+0x91D8 0xE55E
+0x91D9 0xE55F
+0x91DA 0x9369
+0x91DB 0x93F3
+0x91DC 0xE562
+0x91DD 0x92EC
+0x91DE 0x9381
+0x91DF 0x93CB
+0x91E0 0xE566
+0x91E1 0xE567
+0x91E2 0x7217
+0x91E3 0x3EEB
+0x91E4 0x7772
+0x91E5 0x7A43
+0x91E6 0x70D0
+0x91E7 0xE56D
+0x91E8 0xE56E
+0x91E9 0x717E
+0x91EA 0xE570
+0x91EB 0x70A3
+0x91EC 0xE572
+0x91ED 0xE573
+0x91EE 0x3EC7
+0x91EF 0xE575
+0x91F0 0xE576
+0x91F1 0xE577
+0x91F2 0x3722
+0x91F3 0xE579
+0x91F4 0xE57A
+0x91F5 0x36E1
+0x91F6 0xE57C
+0x91F7 0xE57D
+0x91F8 0xE57E
+0x91F9 0x3723
+0x91FA 0xE580
+0x91FB 0x575B
+0x91FC 0xE582
+0x91FD 0xE583
+0x91FE 0xE584
+0x9240 0xE585
+0x9241 0xE586
+0x9242 0x8503
+0x9243 0xE588
+0x9245 0x8455
+0x9246 0xE58B
+0x9247 0xE58C
+0x9248 0xE58D
+0x9249 0xE58E
+0x924A 0xE58F
+0x924B 0xE590
+0x924C 0x44F4
+0x924D 0xE592
+0x924E 0xE593
+0x924F 0xE594
+0x9250 0x67F9
+0x9251 0x3733
+0x9252 0x3C15
+0x9253 0x3DE7
+0x9254 0x586C
+0x9255 0xE59A
+0x9256 0x6810
+0x9257 0x4057
+0x9258 0xE59D
+0x9259 0xE59E
+0x925A 0xE59F
+0x925B 0xE5A0
+0x925C 0xE5A1
+0x925D 0x54CB
+0x925E 0x569E
+0x925F 0xE5A4
+0x9260 0x5692
+0x9261 0xE5A6
+0x9262 0xE5A7
+0x9263 0xE5A8
+0x9264 0x93C6
+0x9265 0xE5AA
+0x9266 0x939C
+0x9267 0x4EF8
+0x9268 0x512B
+0x9269 0x3819
+0x926A 0xE5AF
+0x926B 0x4EBC
+0x926C 0xE5B1
+0x926D 0xE5B2
+0x926E 0x4F4B
+0x926F 0x4F8A
+0x9270 0xE5B5
+0x9271 0x5A68
+0x9272 0xE5B7
+0x9273 0xE5B8
+0x9274 0x3999
+0x9275 0xE5BA
+0x9276 0xE5BB
+0x9277 0x3435
+0x9278 0x4F29
+0x9279 0xE5BE
+0x927A 0xE5BF
+0x927B 0xE5C0
+0x927C 0x8ADA
+0x927D 0xE5C2
+0x927E 0x4E98
+0x92A1 0x50CD
+0x92A2 0x510D
+0x92A3 0x4FA2
+0x92A4 0x4F03
+0x92A5 0xE5C8
+0x92A6 0xE5C9
+0x92A7 0x4F42
+0x92A8 0x502E
+0x92A9 0x506C
+0x92AA 0x5081
+0x92AB 0x4FCC
+0x92AC 0x4FE5
+0x92AD 0x5058
+0x92AE 0x50FC
+0x92B3 0x6E76
+0x92B4 0xE5D7
+0x92B5 0xE5D8
+0x92B6 0xE5D9
+0x92B7 0x6D72
+0x92B8 0xE5DB
+0x92B9 0xE5DC
+0x92BA 0x51A8
+0x92BB 0x51C3
+0x92BC 0xE5DF
+0x92BD 0x44DD
+0x92BE 0xE5E1
+0x92BF 0xE5E2
+0x92C0 0xE5E3
+0x92C1 0x8D7A
+0x92C2 0xE5E5
+0x92C3 0xE5E6
+0x92C4 0x5259
+0x92C5 0x52A4
+0x92C6 0xE5E9
+0x92C7 0x52E1
+0x92C9 0x467A
+0x92CA 0x718C
+0x92CB 0xE5EE
+0x92CC 0xE5EF
+0x92CD 0xE5F0
+0x92CE 0xE5F1
+0x92CF 0x69D1
+0x92D0 0xE5F3
+0x92D2 0x3EDE
+0x92D3 0x7499
+0x92D4 0x7414
+0x92D5 0x7456
+0x92D6 0x7398
+0x92D7 0x4B8E
+0x92D8 0xE5FB
+0x92D9 0xE5FC
+0x92DA 0x53D0
+0x92DB 0x3584
+0x92DC 0x720F
+0x92DD 0xE600
+0x92DE 0x55B4
+0x92DF 0xE602
+0x92E0 0x54CD
+0x92E1 0xE604
+0x92E2 0x571D
+0x92E3 0x925D
+0x92E4 0x96F4
+0x92E5 0x9366
+0x92E6 0x57DD
+0x92E7 0x578D
+0x92E8 0x577F
+0x92E9 0x363E
+0x92EA 0x58CB
+0x92EB 0x5A99
+0x92EC 0xE60F
+0x92ED 0xE610
+0x92EE 0xE611
+0x92EF 0xE612
+0x92F0 0x5A2C
+0x92F1 0x59B8
+0x92F2 0x928F
+0x92F3 0x5A7E
+0x92F4 0x5ACF
+0x92F5 0x5A12
+0x92F6 0xE619
+0x92F7 0xE61A
+0x92F8 0xE61B
+0x92F9 0xE61C
+0x92FA 0x36F5
+0x92FB 0x6D05
+0x92FC 0x7443
+0x92FD 0x5A21
+0x92FE 0xE621
+0x9340 0x5A81
+0x9341 0xE623
+0x9342 0xE624
+0x9343 0x93E0
+0x9344 0x748C
+0x9345 0xE627
+0x9346 0x7105
+0x9347 0x4972
+0x9348 0x9408
+0x9349 0xE62B
+0x934A 0x93BD
+0x934B 0x37A0
+0x934C 0x5C1E
+0x934D 0x5C9E
+0x934E 0x5E5E
+0x934F 0x5E48
+0x9350 0xE632
+0x9351 0xE633
+0x9352 0xE634
+0x9353 0x5ECD
+0x9354 0x5B4F
+0x9355 0xE637
+0x9356 0xE638
+0x9357 0x3701
+0x9358 0xE63A
+0x9359 0x36DD
+0x935A 0xE63C
+0x935B 0x36D3
+0x935C 0x812A
+0x935D 0xE63F
+0x935E 0xE640
+0x935F 0xE641
+0x9360 0xE642
+0x9361 0x5F0C
+0x9362 0x5F0E
+0x9363 0xE645
+0x9364 0xE646
+0x9365 0x5A6B
+0x9366 0xE648
+0x9367 0x5B44
+0x9368 0x8614
+0x9369 0xE64B
+0x936A 0x8860
+0x936B 0x607E
+0x936C 0xE64E
+0x936D 0xE64F
+0x936E 0x5FDB
+0x936F 0x3EB8
+0x9370 0xE652
+0x9371 0xE653
+0x9372 0xE654
+0x9373 0xE655
+0x9374 0x61C0
+0x9375 0xE657
+0x9376 0xE658
+0x9377 0xE659
+0x9378 0x6199
+0x9379 0x6198
+0x937A 0x6075
+0x937B 0xE65D
+0x937C 0xE65E
+0x937D 0xE65F
+0x937E 0xE660
+0x93A1 0x6471
+0x93A2 0xE662
+0x93A3 0xE663
+0x93A4 0x3A29
+0x93A5 0xE665
+0x93A6 0xE666
+0x93A7 0xE667
+0x93A8 0xE668
+0x93A9 0x6337
+0x93AA 0xE66A
+0x93AB 0x64B6
+0x93AC 0x6331
+0x93AD 0x63D1
+0x93AE 0xE66E
+0x93AF 0xE66F
+0x93B0 0x62A4
+0x93B1 0xE671
+0x93B2 0x643B
+0x93B3 0x656B
+0x93B4 0x6972
+0x93B5 0x3BF4
+0x93B6 0xE676
+0x93B7 0xE677
+0x93B8 0xE678
+0x93B9 0xE679
+0x93BA 0x550D
+0x93BB 0xE67B
+0x93BC 0xE67C
+0x93BD 0xE67D
+0x93BE 0x66CE
+0x93BF 0xE67F
+0x93C0 0xE680
+0x93C1 0x3AE0
+0x93C2 0x4190
+0x93C3 0xE683
+0x93C4 0xE684
+0x93C5 0xE685
+0x93C6 0xE686
+0x93C7 0xE687
+0x93C8 0xE688
+0x93C9 0x78EE
+0x93CA 0xE68A
+0x93CB 0xE68B
+0x93CC 0xE68C
+0x93CD 0x3464
+0x93CE 0xE68E
+0x93CF 0xE68F
+0x93D0 0xE690
+0x93D1 0x668E
+0x93D2 0xE692
+0x93D3 0x666B
+0x93D4 0x4B93
+0x93D5 0x6630
+0x93D6 0xE696
+0x93D7 0xE697
+0x93D8 0x6663
+0x93D9 0xE699
+0x93DA 0xE69A
+0x93DB 0x661E
+0x93DC 0xE69C
+0x93DD 0x38D1
+0x93DE 0xE69E
+0x93DF 0xE69F
+0x93E0 0x3B99
+0x93E1 0xE6A1
+0x93E2 0xE6A2
+0x93E3 0x74D0
+0x93E4 0x3B96
+0x93E5 0x678F
+0x93E6 0xE6A6
+0x93E7 0x68B6
+0x93E8 0x681E
+0x93E9 0x3BC4
+0x93EA 0x6ABE
+0x93EB 0x3863
+0x93EC 0xE6AC
+0x93ED 0xE6AD
+0x93EE 0x6A33
+0x93EF 0x6A52
+0x93F0 0x6AC9
+0x93F1 0x6B05
+0x93F2 0xE6B2
+0x93F3 0x6511
+0x93F4 0x6898
+0x93F5 0x6A4C
+0x93F6 0x3BD7
+0x93F7 0x6A7A
+0x93F8 0x6B57
+0x93F9 0xE6B9
+0x93FA 0xE6BA
+0x93FB 0x93A0
+0x93FC 0x92F2
+0x93FD 0xE6BD
+0x93FE 0xE6BE
+0x9440 0x9289
+0x9441 0xE6C0
+0x9442 0xE6C1
+0x9443 0x9467
+0x9444 0x6DA5
+0x9445 0x6F0B
+0x9446 0xE6C5
+0x9448 0xE6C7
+0x9449 0x3D8F
+0x944A 0x6E04
+0x944B 0xE6CA
+0x944C 0x5A3D
+0x944D 0x6E0A
+0x944E 0x5847
+0x944F 0x6D24
+0x9450 0x7842
+0x9451 0x713B
+0x9452 0xE6D1
+0x9453 0xE6D2
+0x9454 0x70F1
+0x9455 0x7250
+0x9456 0x7287
+0x9457 0x7294
+0x9458 0xE6D7
+0x9459 0xE6D8
+0x945A 0x5179
+0x945B 0xE6DA
+0x945C 0xE6DB
+0x945D 0x747A
+0x945E 0xE6DD
+0x945F 0xE6DE
+0x9460 0xE6DF
+0x9461 0xE6E0
+0x9462 0xE6E1
+0x9463 0x3F06
+0x9464 0x3EB1
+0x9465 0xE6E4
+0x9466 0xE6E5
+0x9467 0xE6E6
+0x9468 0x60A7
+0x9469 0x3EF3
+0x946A 0x74CC
+0x946B 0x743C
+0x946C 0x9387
+0x946D 0x7437
+0x946E 0x449F
+0x946F 0xE6EE
+0x9470 0x4551
+0x9471 0x7583
+0x9472 0x3F63
+0x9473 0xE6F2
+0x9474 0xE6F3
+0x9475 0x3F58
+0x9476 0x7555
+0x9477 0x7673
+0x9478 0xE6F7
+0x9479 0x3B19
+0x947A 0x7468
+0x947B 0xE6FA
+0x947C 0xE6FB
+0x947D 0xE6FC
+0x947E 0x3AFB
+0x94A1 0x3DCD
+0x94A2 0xE6FF
+0x94A3 0x3EFF
+0x94A4 0xE701
+0x94A5 0xE702
+0x94A6 0x91FA
+0x94A7 0x5732
+0x94A8 0x9342
+0x94A9 0xE706
+0x94AA 0xE707
+0x94AB 0x50DF
+0x94AC 0xE709
+0x94AD 0xE70A
+0x94AE 0x7778
+0x94AF 0xE70C
+0x94B0 0x770E
+0x94B1 0x770F
+0x94B2 0x777B
+0x94B3 0xE710
+0x94B4 0xE711
+0x94B5 0x3A5E
+0x94B6 0xE713
+0x94B7 0x7438
+0x94B8 0x749B
+0x94B9 0x3EBF
+0x94BA 0xE717
+0x94BB 0xE718
+0x94BC 0x40C8
+0x94BD 0xE71A
+0x94BE 0xE71B
+0x94BF 0x9307
+0x94C0 0xE71D
+0x94C1 0x781E
+0x94C2 0x788D
+0x94C3 0x7888
+0x94C4 0x78D2
+0x94C5 0x73D0
+0x94C6 0x7959
+0x94C7 0xE724
+0x94C8 0xE725
+0x94C9 0x410E
+0x94CB 0x8496
+0x94CC 0x79A5
+0x94CD 0x6A2D
+0x94CE 0xE72B
+0x94CF 0x7A3A
+0x94D0 0x79F4
+0x94D1 0x416E
+0x94D2 0xE72F
+0x94D3 0x4132
+0x94D4 0x9235
+0x94D5 0x79F1
+0x94D6 0xE733
+0x94D7 0xE734
+0x94D8 0xE735
+0x94D9 0xE736
+0x94DA 0xE737
+0x94DB 0x3597
+0x94DC 0x556B
+0x94DD 0x3570
+0x94DE 0x36AA
+0x94DF 0xE73C
+0x94E0 0xE73D
+0x94E1 0x7AE2
+0x94E2 0x5A59
+0x94E3 0xE740
+0x94E4 0xE741
+0x94E5 0xE742
+0x94E6 0x5A0D
+0x94E7 0xE744
+0x94E8 0x78F0
+0x94E9 0x5A2A
+0x94EA 0xE747
+0x94EB 0x7AFE
+0x94EC 0x41F9
+0x94ED 0x7C5D
+0x94EE 0x7C6D
+0x94EF 0x4211
+0x94F0 0xE74D
+0x94F1 0xE74E
+0x94F2 0xE74F
+0x94F3 0x7CCD
+0x94F4 0xE751
+0x94F5 0xE752
+0x94F6 0x7C8E
+0x94F7 0x7C7C
+0x94F8 0x7CAE
+0x94F9 0x6AB2
+0x94FA 0x7DDC
+0x94FB 0x7E07
+0x94FC 0x7DD3
+0x94FD 0x7F4E
+0x94FE 0xE75B
+0x9540 0xE75C
+0x9541 0xE75D
+0x9542 0x7D97
+0x9543 0xE75F
+0x9544 0x426A
+0x9545 0xE761
+0x9546 0xE762
+0x9547 0x67D6
+0x9548 0xE764
+0x9549 0xE765
+0x954A 0x57C4
+0x954B 0xE767
+0x954C 0xE768
+0x954D 0xE769
+0x954E 0x7FDD
+0x954F 0x7B27
+0x9550 0xE76C
+0x9551 0xE76D
+0x9552 0xE76E
+0x9553 0x7B0C
+0x9554 0xE770
+0x9555 0x99E6
+0x9556 0x8645
+0x9557 0x9A63
+0x9558 0x6A1C
+0x9559 0xE775
+0x955A 0x39E2
+0x955B 0xE777
+0x955C 0xE778
+0x955D 0x9A1F
+0x955E 0xE77A
+0x955F 0x8480
+0x9560 0xE77C
+0x9561 0xE77D
+0x9562 0x44EA
+0x9563 0x8137
+0x9564 0x4402
+0x9565 0x80C6
+0x9566 0x8109
+0x9567 0x8142
+0x9568 0xE784
+0x9569 0x98C3
+0x956A 0xE786
+0x956B 0x8262
+0x956C 0x8265
+0x956D 0xE789
+0x956E 0x8453
+0x956F 0xE78B
+0x9570 0x8610
+0x9571 0xE78D
+0x9572 0x5A86
+0x9573 0x417F
+0x9574 0xE790
+0x9575 0x5B2B
+0x9576 0xE792
+0x9577 0x5AE4
+0x9578 0xE794
+0x9579 0x86A0
+0x957A 0xE796
+0x957B 0xE797
+0x957C 0x882D
+0x957D 0xE799
+0x957E 0x5A02
+0x95A1 0x886E
+0x95A2 0x4F45
+0x95A3 0x8887
+0x95A4 0x88BF
+0x95A5 0x88E6
+0x95A6 0x8965
+0x95A7 0x894D
+0x95A8 0xE7A2
+0x95A9 0x8954
+0x95AA 0xE7A4
+0x95AB 0xE7A5
+0x95AC 0xE7A6
+0x95AD 0xE7A7
+0x95AE 0xE7A8
+0x95AF 0xE7A9
+0x95B0 0x3EAD
+0x95B1 0x84A3
+0x95B2 0x46F5
+0x95B3 0x46CF
+0x95B4 0x37F2
+0x95B5 0x8A3D
+0x95B6 0x8A1C
+0x95B7 0xE7B1
+0x95B8 0x5F4D
+0x95B9 0x922B
+0x95BA 0xE7B4
+0x95BB 0x65D4
+0x95BC 0x7129
+0x95BD 0x70C4
+0x95BE 0xE7B8
+0x95BF 0x9D6D
+0x95C0 0x8C9F
+0x95C1 0x8CE9
+0x95C2 0xE7BC
+0x95C3 0x599A
+0x95C4 0x77C3
+0x95C5 0x59F0
+0x95C6 0x436E
+0x95C7 0x36D4
+0x95C8 0x8E2A
+0x95C9 0x8EA7
+0x95CA 0xE7C4
+0x95CB 0x8F30
+0x95CC 0x8F4A
+0x95CD 0x42F4
+0x95CE 0x6C58
+0x95CF 0x6FBB
+0x95D0 0xE7CA
+0x95D1 0x489B
+0x95D2 0x6F79
+0x95D3 0x6E8B
+0x95D4 0xE7CE
+0x95D5 0x9BE9
+0x95D6 0x36B5
+0x95D7 0xE7D1
+0x95D8 0x90BB
+0x95DA 0x5571
+0x95DB 0x4906
+0x95DC 0x91BB
+0x95DD 0x9404
+0x95DE 0xE7D8
+0x95DF 0x4062
+0x95E0 0xE7DA
+0x95E1 0x9427
+0x95E2 0xE7DC
+0x95E3 0xE7DD
+0x95E4 0x84E5
+0x95E5 0x8A2B
+0x95E6 0x9599
+0x95E7 0x95A7
+0x95E8 0x9597
+0x95E9 0x9596
+0x95EA 0xE7E4
+0x95EB 0x7445
+0x95EC 0x3EC2
+0x95ED 0xE7E7
+0x95EE 0xE7E8
+0x95EF 0xE7E9
+0x95F0 0x3EE7
+0x95F1 0xE7EB
+0x95F2 0x968F
+0x95F3 0xE7ED
+0x95F4 0xE7EE
+0x95F5 0xE7EF
+0x95F6 0x3ECC
+0x95F7 0xE7F1
+0x95F8 0xE7F2
+0x95F9 0xE7F3
+0x95FA 0x7412
+0x95FB 0x746B
+0x95FC 0x3EFC
+0x95FD 0x9741
+0x95FE 0xE7F8
+0x9640 0x6847
+0x9641 0x4A1D
+0x9642 0xE7FB
+0x9643 0xE7FC
+0x9645 0x9368
+0x9646 0xE7FF
+0x9647 0xE800
+0x9648 0xE801
+0x9649 0xE802
+0x964A 0x92BA
+0x964B 0x5B11
+0x964C 0x8B69
+0x964D 0x493C
+0x964E 0x73F9
+0x964F 0xE808
+0x9650 0x979B
+0x9651 0x9771
+0x9652 0x9938
+0x9653 0xE80C
+0x9654 0x5DC1
+0x9655 0xE80E
+0x9656 0xE80F
+0x9657 0x981F
+0x9658 0xE811
+0x9659 0x92F6
+0x965A 0xE813
+0x965B 0x91E5
+0x965C 0x44C0
+0x965D 0xE816
+0x965E 0xE817
+0x965F 0xE818
+0x9660 0x98DC
+0x9661 0xE81A
+0x9662 0x3F00
+0x9663 0x922A
+0x9664 0x4925
+0x9665 0x8414
+0x9666 0x993B
+0x9667 0x994D
+0x9668 0xE821
+0x9669 0x3DFD
+0x966A 0x999B
+0x966B 0x4B6F
+0x966C 0x99AA
+0x966D 0x9A5C
+0x966E 0xE827
+0x966F 0xE828
+0x9670 0x6A8F
+0x9671 0x9A21
+0x9672 0x5AFE
+0x9673 0x9A2F
+0x9674 0xE82D
+0x9675 0x4B90
+0x9676 0xE82F
+0x9677 0x99BC
+0x9678 0x4BBD
+0x9679 0x4B97
+0x967A 0x937D
+0x967B 0x5872
+0x967C 0xE835
+0x967D 0x5822
+0x967E 0xE837
+0x96A1 0xE838
+0x96A2 0x7844
+0x96A3 0xE83A
+0x96A4 0xE83B
+0x96A5 0x68C5
+0x96A6 0x3D7D
+0x96A7 0x9458
+0x96A8 0x3927
+0x96A9 0x6150
+0x96AA 0xE841
+0x96AB 0xE842
+0x96AC 0x6107
+0x96AD 0x9C4F
+0x96AE 0x9C53
+0x96AF 0x9C7B
+0x96B0 0x9C35
+0x96B1 0x9C10
+0x96B2 0x9B7F
+0x96B3 0x9BCF
+0x96B4 0xE84B
+0x96B5 0x9B9F
+0x96B6 0xE84D
+0x96B7 0xE84E
+0x96B8 0x9D21
+0x96B9 0x4CAE
+0x96BA 0xE851
+0x96BB 0x9E18
+0x96BC 0x4CB0
+0x96BD 0x9D0C
+0x96BE 0xE855
+0x96BF 0xE856
+0x96C0 0xE857
+0x96C1 0xE858
+0x96C2 0x9DA5
+0x96C3 0x84BD
+0x96C4 0xE85B
+0x96C5 0xE85C
+0x96C6 0xE85D
+0x96C7 0x85FC
+0x96C8 0x4533
+0x96C9 0xE860
+0x96CA 0xE861
+0x96CB 0xE862
+0x96CC 0x8420
+0x96CD 0x85EE
+0x96CE 0xE865
+0x96CF 0xE866
+0x96D0 0xE867
+0x96D1 0x79E2
+0x96D2 0xE869
+0x96D3 0xE86A
+0x96D4 0x492D
+0x96D5 0xE86C
+0x96D6 0x3D62
+0x96D7 0x93DB
+0x96D8 0x92BE
+0x96D9 0x9348
+0x96DA 0xE871
+0x96DB 0x78B9
+0x96DC 0x9277
+0x96DD 0x944D
+0x96DE 0x4FE4
+0x96DF 0x3440
+0x96E0 0x9064
+0x96E1 0xE878
+0x96E2 0x783D
+0x96E3 0x7854
+0x96E4 0x78B6
+0x96E5 0x784B
+0x96E6 0xE87D
+0x96E7 0xE87E
+0x96E8 0xE87F
+0x96E9 0x369A
+0x96EA 0x4F72
+0x96EB 0x6FDA
+0x96EC 0x6FD9
+0x96EE 0x701E
+0x96EF 0x5414
+0x96F0 0xE887
+0x96F1 0x57BB
+0x96F2 0x58F3
+0x96F3 0x578A
+0x96F4 0x9D16
+0x96F5 0x57D7
+0x96F6 0x7134
+0x96F7 0x34AF
+0x96F8 0xE88F
+0x96F9 0x71EB
+0x96FA 0xE891
+0x96FB 0xE892
+0x96FD 0xE894
+0x96FE 0xE895
+0x9740 0x610C
+0x9741 0x5ACE
+0x9742 0x5A0B
+0x9743 0x42BC
+0x9744 0xE89A
+0x9745 0x372C
+0x9746 0x4B7B
+0x9747 0xE89D
+0x9748 0x93BB
+0x9749 0x93B8
+0x974A 0xE8A0
+0x974B 0xE8A1
+0x974C 0x8472
+0x974D 0xE8A3
+0x974E 0xE8A4
+0x974F 0xE8A5
+0x9750 0xE8A6
+0x9751 0xE8A7
+0x9752 0x5994
+0x9753 0xE8A9
+0x9754 0xE8AA
+0x9755 0x7DA8
+0x9756 0xE8AC
+0x9757 0xE8AD
+0x9758 0xE8AE
+0x9759 0xE8AF
+0x975A 0xE8B0
+0x975B 0x92E5
+0x975C 0x73E2
+0x975D 0x3EE9
+0x975E 0x74B4
+0x975F 0xE8B5
+0x9760 0xE8B6
+0x9761 0x3EE1
+0x9762 0xE8B8
+0x9763 0x6AD8
+0x9764 0x73F3
+0x9765 0x73FB
+0x9766 0x3ED6
+0x9767 0xE8BD
+0x9768 0xE8BE
+0x9769 0xE8BF
+0x976A 0xE8C0
+0x976B 0xE8C1
+0x976C 0xE8C2
+0x976D 0xE8C3
+0x976E 0x7448
+0x976F 0xE8C5
+0x9770 0x70A5
+0x9771 0xE8C7
+0x9772 0x9284
+0x9773 0x73E6
+0x9774 0x935F
+0x9775 0xE8CB
+0x9776 0x9331
+0x9777 0xE8CD
+0x9778 0xE8CE
+0x9779 0x9386
+0x977A 0xE8D0
+0x977B 0xE8D1
+0x977C 0x4935
+0x977D 0xE8D3
+0x977E 0x716B
+0x97A1 0xE8D5
+0x97A2 0xE8D6
+0x97A3 0x56A4
+0x97A4 0xE8D8
+0x97A5 0xE8D9
+0x97A6 0xE8DA
+0x97A7 0x5502
+0x97A8 0x79C4
+0x97A9 0xE8DD
+0x97AA 0x7DFE
+0x97AB 0xE8DF
+0x97AC 0xE8E0
+0x97AD 0xE8E1
+0x97AE 0x452E
+0x97AF 0x9401
+0x97B0 0x370A
+0x97B1 0xE8E5
+0x97B2 0xE8E6
+0x97B3 0x59B0
+0x97B4 0xE8E8
+0x97B5 0xE8E9
+0x97B6 0xE8EA
+0x97B7 0x5AA1
+0x97B8 0x36E2
+0x97B9 0xE8ED
+0x97BA 0x36B0
+0x97BB 0x925F
+0x97BC 0x5A79
+0x97BD 0xE8F1
+0x97BE 0xE8F2
+0x97BF 0x9374
+0x97C0 0x3CCD
+0x97C1 0xE8F5
+0x97C2 0x4A96
+0x97C3 0x398A
+0x97C4 0x50F4
+0x97C5 0x3D69
+0x97C6 0x3D4C
+0x97C7 0xE8FB
+0x97C8 0x7175
+0x97C9 0x42FB
+0x97CA 0xE8FE
+0x97CB 0x6E0F
+0x97CC 0xE900
+0x97CD 0x44EB
+0x97CE 0x6D57
+0x97CF 0xE903
+0x97D0 0x7067
+0x97D1 0x6CAF
+0x97D2 0x3CD6
+0x97D3 0xE907
+0x97D4 0xE908
+0x97D5 0x6E02
+0x97D6 0x6F0C
+0x97D7 0x3D6F
+0x97D8 0xE90C
+0x97D9 0x7551
+0x97DA 0x36BC
+0x97DB 0x34C8
+0x97DC 0x4680
+0x97DD 0x3EDA
+0x97DE 0x4871
+0x97DF 0x59C4
+0x97E0 0x926E
+0x97E1 0x493E
+0x97E2 0x8F41
+0x97E3 0xE917
+0x97E4 0xE918
+0x97E5 0x5812
+0x97E6 0x57C8
+0x97E7 0x36D6
+0x97E8 0xE91C
+0x97E9 0x70FE
+0x97EA 0xE91E
+0x97EB 0xE91F
+0x97EC 0xE920
+0x97ED 0xE921
+0x97EE 0xE922
+0x97EF 0x68B9
+0x97F0 0x6967
+0x97F1 0xE925
+0x97F2 0xE926
+0x97F3 0xE927
+0x97F4 0xE928
+0x97F5 0xE929
+0x97F6 0xE92A
+0x97F7 0xE92B
+0x97F8 0xE92C
+0x97F9 0x6A1A
+0x97FA 0xE92E
+0x97FB 0xE92F
+0x97FC 0x843E
+0x97FD 0x44DF
+0x97FE 0x44CE
+0x9840 0xE933
+0x9841 0xE934
+0x9842 0xE935
+0x9843 0xE936
+0x9844 0x6F17
+0x9845 0xE938
+0x9846 0x833D
+0x9847 0xE93A
+0x9848 0x83ED
+0x9849 0xE93C
+0x984A 0xE93D
+0x984B 0xE93E
+0x984C 0x5989
+0x984D 0x5A82
+0x984E 0xE941
+0x984F 0x5A61
+0x9850 0x5A71
+0x9851 0xE944
+0x9852 0xE945
+0x9853 0x372D
+0x9854 0x59EF
+0x9855 0xE948
+0x9856 0x36C7
+0x9857 0x718E
+0x9858 0x9390
+0x9859 0x669A
+0x985A 0xE94D
+0x985B 0x5A6E
+0x985C 0x5A2B
+0x985D 0xE950
+0x985E 0x6A2B
+0x985F 0xE952
+0x9860 0xE953
+0x9861 0xE954
+0x9862 0xE955
+0x9863 0x711D
+0x9864 0xE957
+0x9865 0xE958
+0x9866 0x4FB0
+0x9867 0xE95A
+0x9868 0x5CC2
+0x9869 0xE95C
+0x986A 0xE95D
+0x986B 0xE95E
+0x986C 0x6A0C
+0x986D 0xE960
+0x986E 0xE961
+0x986F 0x70A6
+0x9870 0x7133
+0x9871 0xE964
+0x9872 0x3DA5
+0x9873 0x6CDF
+0x9874 0xE967
+0x9875 0xE968
+0x9876 0x7E65
+0x9877 0x59EB
+0x9878 0x5D2F
+0x9879 0x3DF3
+0x987A 0x5F5C
+0x987B 0xE96E
+0x987C 0xE96F
+0x987D 0x7DA4
+0x987E 0x8426
+0x98A1 0x5485
+0x98A2 0xE973
+0x98A3 0xE974
+0x98A4 0xE975
+0x98A5 0x577E
+0x98A6 0xE977
+0x98A7 0xE978
+0x98A8 0x3FE5
+0x98A9 0xE97A
+0x98AA 0xE97B
+0x98AB 0x7003
+0x98AC 0xE97D
+0x98AD 0x5D70
+0x98AE 0x738F
+0x98AF 0x7CD3
+0x98B0 0xE981
+0x98B1 0xE982
+0x98B2 0x4FC8
+0x98B3 0x7FE7
+0x98B4 0x72CD
+0x98B5 0x7310
+0x98B6 0xE987
+0x98B7 0x7338
+0x98B8 0x7339
+0x98B9 0xE98A
+0x98BA 0x7341
+0x98BB 0x7348
+0x98BC 0x3EA9
+0x98BD 0xE98E
+0x98BE 0x906C
+0x98BF 0x71F5
+0x98C0 0xE991
+0x98C1 0x73E1
+0x98C2 0x81F6
+0x98C3 0x3ECA
+0x98C4 0x770C
+0x98C5 0x3ED1
+0x98C6 0x6CA2
+0x98C7 0x56FD
+0x98C8 0x7419
+0x98C9 0x741E
+0x98CA 0x741F
+0x98CB 0x3EE2
+0x98CC 0x3EF0
+0x98CD 0x3EF4
+0x98CE 0x3EFA
+0x98CF 0x74D3
+0x98D0 0x3F0E
+0x98D1 0x3F53
+0x98D2 0x7542
+0x98D3 0x756D
+0x98D4 0x7572
+0x98D5 0x758D
+0x98D6 0x3F7C
+0x98D7 0x75C8
+0x98D8 0x75DC
+0x98D9 0x3FC0
+0x98DA 0x764D
+0x98DB 0x3FD7
+0x98DC 0x7674
+0x98DD 0x3FDC
+0x98DE 0x767A
+0x98DF 0xE9B0
+0x98E0 0x7188
+0x98E1 0x5623
+0x98E2 0x8980
+0x98E3 0x5869
+0x98E4 0x401D
+0x98E5 0x7743
+0x98E6 0x4039
+0x98E7 0x6761
+0x98E8 0x4045
+0x98E9 0x35DB
+0x98EA 0x7798
+0x98EB 0x406A
+0x98EC 0x406F
+0x98ED 0x5C5E
+0x98EE 0x77BE
+0x98EF 0x77CB
+0x98F0 0x58F2
+0x98F1 0x7818
+0x98F2 0x70B9
+0x98F3 0x781C
+0x98F4 0x40A8
+0x98F5 0x7839
+0x98F6 0x7847
+0x98F7 0x7851
+0x98F8 0x7866
+0x98F9 0x8448
+0x98FA 0xE9CB
+0x98FB 0x7933
+0x98FC 0x6803
+0x98FD 0x7932
+0x98FE 0x4103
+0x9940 0x4109
+0x9941 0x7991
+0x9942 0x7999
+0x9943 0x8FBB
+0x9944 0x7A06
+0x9945 0x8FBC
+0x9946 0x4167
+0x9947 0x7A91
+0x9948 0x41B2
+0x9949 0x7ABC
+0x994A 0x8279
+0x994B 0x41C4
+0x994C 0x7ACF
+0x994D 0x7ADB
+0x994E 0x41CF
+0x994F 0x4E21
+0x9950 0x7B62
+0x9951 0x7B6C
+0x9952 0x7B7B
+0x9953 0x7C12
+0x9954 0x7C1B
+0x9955 0x4260
+0x9956 0x427A
+0x9957 0x7C7B
+0x9958 0x7C9C
+0x9959 0x428C
+0x995A 0x7CB8
+0x995B 0x4294
+0x995C 0x7CED
+0x995D 0x8F93
+0x995E 0x70C0
+0x995F 0xE9EF
+0x9960 0x7DCF
+0x9961 0x7DD4
+0x9962 0x7DD0
+0x9963 0x7DFD
+0x9964 0x7FAE
+0x9965 0x7FB4
+0x9966 0x729F
+0x9967 0x4397
+0x9968 0x8020
+0x9969 0x8025
+0x996A 0x7B39
+0x996B 0x802E
+0x996C 0x8031
+0x996D 0x8054
+0x996E 0x3DCC
+0x996F 0x57B4
+0x9970 0x70A0
+0x9971 0x80B7
+0x9972 0x80E9
+0x9973 0x43ED
+0x9974 0x810C
+0x9975 0x732A
+0x9976 0x810E
+0x9977 0x8112
+0x9978 0x7560
+0x9979 0x8114
+0x997A 0x4401
+0x997B 0x3B39
+0x997C 0x8156
+0x997D 0x8159
+0x997E 0x815A
+0x99A1 0x4413
+0x99A2 0x583A
+0x99A3 0x817C
+0x99A4 0x8184
+0x99A5 0x4425
+0x99A6 0x8193
+0x99A7 0x442D
+0x99A8 0x81A5
+0x99A9 0x57EF
+0x99AA 0x81C1
+0x99AB 0x81E4
+0x99AC 0x8254
+0x99AD 0x448F
+0x99AE 0x82A6
+0x99AF 0x8276
+0x99B0 0x82CA
+0x99B1 0x82D8
+0x99B2 0x82FF
+0x99B3 0x44B0
+0x99B4 0x8357
+0x99B5 0x9669
+0x99B6 0x698A
+0x99B7 0x8405
+0x99B8 0x70F5
+0x99B9 0x8464
+0x99BA 0x60E3
+0x99BB 0x8488
+0x99BC 0x4504
+0x99BD 0x84BE
+0x99BE 0x84E1
+0x99BF 0x84F8
+0x99C0 0x8510
+0x99C1 0x8538
+0x99C2 0x8552
+0x99C3 0x453B
+0x99C4 0x856F
+0x99C5 0x8570
+0x99C6 0x85E0
+0x99C7 0x4577
+0x99C8 0x8672
+0x99C9 0x8692
+0x99CA 0x86B2
+0x99CB 0x86EF
+0x99CC 0x9645
+0x99CD 0x878B
+0x99CE 0x4606
+0x99CF 0x4617
+0x99D0 0x88AE
+0x99D1 0x88FF
+0x99D2 0x8924
+0x99D3 0x8947
+0x99D4 0x8991
+0x99D5 0xEA43
+0x99D6 0x8A29
+0x99D7 0x8A38
+0x99D8 0x8A94
+0x99D9 0x8AB4
+0x99DA 0x8C51
+0x99DB 0x8CD4
+0x99DC 0x8CF2
+0x99DD 0x8D1C
+0x99DE 0x4798
+0x99DF 0x585F
+0x99E0 0x8DC3
+0x99E1 0x47ED
+0x99E2 0x4EEE
+0x99E3 0x8E3A
+0x99E4 0x55D8
+0x99E5 0x5754
+0x99E6 0x8E71
+0x99E7 0x55F5
+0x99E8 0x8EB0
+0x99E9 0x4837
+0x99EA 0x8ECE
+0x99EB 0x8EE2
+0x99EC 0x8EE4
+0x99ED 0x8EED
+0x99EE 0x8EF2
+0x99EF 0x8FB7
+0x99F0 0x8FC1
+0x99F1 0x8FCA
+0x99F2 0x8FCC
+0x99F3 0x9033
+0x99F4 0x99C4
+0x99F5 0x48AD
+0x99F6 0x98E0
+0x99F7 0x9213
+0x99F8 0x491E
+0x99F9 0x9228
+0x99FA 0x9258
+0x99FB 0x926B
+0x99FC 0x92B1
+0x99FD 0x92AE
+0x99FE 0x92BF
+0x9A40 0x92E3
+0x9A41 0x92EB
+0x9A42 0x92F3
+0x9A43 0x92F4
+0x9A44 0x92FD
+0x9A45 0x9343
+0x9A46 0x9384
+0x9A47 0x93AD
+0x9A48 0x4945
+0x9A49 0x4951
+0x9A4A 0x9EBF
+0x9A4B 0x9417
+0x9A4C 0x5301
+0x9A4D 0x941D
+0x9A4E 0x942D
+0x9A4F 0x943E
+0x9A50 0x496A
+0x9A51 0x9454
+0x9A52 0x9479
+0x9A53 0x952D
+0x9A54 0x95A2
+0x9A55 0x49A7
+0x9A56 0x95F4
+0x9A57 0x9633
+0x9A58 0x49E5
+0x9A59 0x67A0
+0x9A5A 0x4A24
+0x9A5B 0x9740
+0x9A5C 0x4A35
+0x9A5D 0x97B2
+0x9A5E 0x97C2
+0x9A5F 0x5654
+0x9A60 0x4AE4
+0x9A61 0x60E8
+0x9A62 0x98B9
+0x9A63 0x4B19
+0x9A64 0x98F1
+0x9A65 0x5844
+0x9A66 0x990E
+0x9A67 0x9919
+0x9A68 0x51B4
+0x9A69 0x991C
+0x9A6A 0x9937
+0x9A6B 0x9942
+0x9A6C 0x995D
+0x9A6D 0x9962
+0x9A6E 0x4B70
+0x9A6F 0x99C5
+0x9A70 0x4B9D
+0x9A71 0x9A3C
+0x9A72 0x9B0F
+0x9A73 0x7A83
+0x9A74 0x9B69
+0x9A75 0x9B81
+0x9A76 0x9BDD
+0x9A77 0x9BF1
+0x9A78 0x9BF4
+0x9A79 0x4C6D
+0x9A7A 0x9C20
+0x9A7B 0x376F
+0x9A7C 0xEAA9
+0x9A7D 0x9D49
+0x9A7E 0x9C3A
+0x9AA1 0x9EFE
+0x9AA2 0x5650
+0x9AA3 0x9D93
+0x9AA4 0x9DBD
+0x9AA5 0x9DC0
+0x9AA6 0x9DFC
+0x9AA7 0x94F6
+0x9AA8 0x8FB6
+0x9AA9 0x9E7B
+0x9AAA 0x9EAC
+0x9AAB 0x9EB1
+0x9AAC 0x9EBD
+0x9AAD 0x9EC6
+0x9AAE 0x94DC
+0x9AAF 0x9EE2
+0x9AB0 0x9EF1
+0x9AB1 0x9EF8
+0x9AB2 0x7AC8
+0x9AB3 0x9F44
+0x9AB4 0xEABF
+0x9AB5 0xEAC0
+0x9AB6 0xEAC1
+0x9AB7 0x691A
+0x9AB8 0x94C3
+0x9AB9 0x59AC
+0x9ABA 0xEAC5
+0x9ABB 0x5840
+0x9ABC 0x94C1
+0x9ABD 0x37B9
+0x9ABE 0xEAC9
+0x9ABF 0xEACA
+0x9AC0 0xEACB
+0x9AC1 0xEACC
+0x9AC2 0x5757
+0x9AC3 0x7173
+0x9AC4 0xEACF
+0x9AC5 0xEAD0
+0x9AC6 0xEAD1
+0x9AC7 0x546A
+0x9AC8 0xEAD3
+0x9AC9 0xEAD4
+0x9ACA 0x549E
+0x9ACB 0xEAD6
+0x9ACC 0xEAD7
+0x9ACD 0xEAD8
+0x9ACE 0xEAD9
+0x9ACF 0xEADA
+0x9AD0 0x60E7
+0x9AD1 0xEADC
+0x9AD2 0x567A
+0x9AD3 0xEADE
+0x9AD4 0xEADF
+0x9AD5 0xEAE0
+0x9AD6 0xEAE1
+0x9AD7 0xEAE2
+0x9AD8 0xEAE3
+0x9AD9 0x6955
+0x9ADA 0x9C2F
+0x9ADB 0x87A5
+0x9ADC 0xEAE7
+0x9ADD 0xEAE8
+0x9ADE 0xEAE9
+0x9ADF 0xEAEA
+0x9AE0 0xEAEB
+0x9AE1 0xEAEC
+0x9AE2 0x5C20
+0x9AE3 0xEAEE
+0x9AE4 0x5E0B
+0x9AE5 0xEAF0
+0x9AE6 0xEAF1
+0x9AE7 0xEAF2
+0x9AE8 0x671E
+0x9AE9 0xEAF4
+0x9AEA 0xEAF5
+0x9AEB 0xEAF6
+0x9AEC 0x3647
+0x9AED 0xEAF8
+0x9AEE 0xEAF9
+0x9AEF 0xEAFA
+0x9AF0 0xEAFB
+0x9AF1 0x5364
+0x9AF2 0x84AD
+0x9AF3 0xEAFE
+0x9AF4 0xEAFF
+0x9AF5 0xEB00
+0x9AF6 0x8B81
+0x9AF7 0xEB02
+0x9AF8 0xEB03
+0x9AF9 0xEB04
+0x9AFA 0xEB05
+0x9AFB 0x4E78
+0x9AFC 0x70BB
+0x9AFD 0xEB08
+0x9AFE 0xEB09
+0x9B40 0xEB0A
+0x9B41 0xEB0B
+0x9B42 0xEB0C
+0x9B43 0xEB0D
+0x9B44 0xEB0E
+0x9B45 0xEB0F
+0x9B46 0x62C3
+0x9B47 0xEB11
+0x9B48 0xEB12
+0x9B49 0x7198
+0x9B4A 0x6855
+0x9B4B 0xEB15
+0x9B4C 0x69E9
+0x9B4D 0x36C8
+0x9B4E 0xEB18
+0x9B4F 0xEB19
+0x9B50 0xEB1A
+0x9B51 0xEB1B
+0x9B52 0xEB1C
+0x9B53 0xEB1D
+0x9B54 0x82FD
+0x9B55 0xEB1F
+0x9B56 0xEB20
+0x9B57 0xEB21
+0x9B58 0x89A5
+0x9B59 0xEB23
+0x9B5A 0x8FA0
+0x9B5B 0xEB25
+0x9B5C 0x97B8
+0x9B5D 0xEB27
+0x9B5E 0x9847
+0x9B5F 0x9ABD
+0x9B60 0xEB2A
+0x9B62 0xEB2C
+0x9B63 0xEB2D
+0x9B64 0xEB2E
+0x9B65 0xEB2F
+0x9B66 0xEB30
+0x9B67 0xEB31
+0x9B68 0xEB32
+0x9B69 0xEB33
+0x9B6A 0xEB34
+0x9B6B 0xEB35
+0x9B6C 0xEB36
+0x9B6D 0xEB37
+0x9B6E 0xEB38
+0x9B6F 0xEB39
+0x9B70 0x5FB1
+0x9B71 0x6648
+0x9B72 0x66BF
+0x9B73 0xEB3D
+0x9B74 0xEB3E
+0x9B75 0xEB3F
+0x9B77 0xEB41
+0x9B79 0xEB43
+0x9B7A 0xEB44
+0x9B7C 0xEB46
+0x9B7D 0x58B5
+0x9B7E 0x670E
+0x9BA1 0x6918
+0x9BA2 0xEB4A
+0x9BA3 0xEB4B
+0x9BA4 0xEB4C
+0x9BA5 0xEB4D
+0x9BA6 0xEB4E
+0x9BA7 0xEB4F
+0x9BA8 0xEB50
+0x9BA9 0x48D0
+0x9BAA 0x4AB8
+0x9BAB 0xEB53
+0x9BAC 0xEB54
+0x9BAD 0xEB55
+0x9BAE 0xEB56
+0x9BAF 0xEB57
+0x9BB0 0xEB58
+0x9BB1 0xEB59
+0x9BB2 0xEB5A
+0x9BB3 0xEB5B
+0x9BB4 0x51D2
+0x9BB5 0xEB5D
+0x9BB6 0x599F
+0x9BB7 0xEB5F
+0x9BB8 0x3BBE
+0x9BB9 0xEB61
+0x9BBA 0xEB62
+0x9BBB 0xEB63
+0x9BBC 0x5788
+0x9BBD 0xEB65
+0x9BBE 0x399B
+0x9BBF 0xEB67
+0x9BC0 0xEB68
+0x9BC1 0xEB69
+0x9BC2 0x3762
+0x9BC3 0xEB6B
+0x9BC4 0x8B5E
+0x9BC5 0xEB6D
+0x9BC7 0xEB6F
+0x9BC8 0xEB70
+0x9BC9 0xEB71
+0x9BCA 0x7209
+0x9BCB 0xEB73
+0x9BCC 0xEB74
+0x9BCD 0x5965
+0x9BCE 0xEB76
+0x9BCF 0xEB77
+0x9BD0 0xEB78
+0x9BD1 0x8EDA
+0x9BD2 0xEB7A
+0x9BD3 0x528F
+0x9BD4 0x573F
+0x9BD5 0x7171
+0x9BD6 0xEB7E
+0x9BD7 0xEB7F
+0x9BD8 0xEB80
+0x9BD9 0xEB81
+0x9BDA 0x55BC
+0x9BDB 0xEB83
+0x9BDC 0xEB84
+0x9BDD 0xEB85
+0x9BDF 0x3473
+0x9BE0 0xEB88
+0x9BE1 0xEB89
+0x9BE2 0xEB8A
+0x9BE3 0x4718
+0x9BE4 0xEB8C
+0x9BE5 0xEB8D
+0x9BE6 0xEB8E
+0x9BE7 0xEB8F
+0x9BE8 0xEB90
+0x9BE9 0x5066
+0x9BEA 0x34FB
+0x9BEB 0xEB93
+0x9BED 0xEB95
+0x9BEE 0x477C
+0x9BEF 0xEB97
+0x9BF0 0xEB98
+0x9BF1 0xEB99
+0x9BF2 0xEB9A
+0x9BF3 0xEB9B
+0x9BF4 0x57A1
+0x9BF5 0x7151
+0x9BF7 0xEB9F
+0x9BF8 0xEBA0
+0x9BF9 0x9056
+0x9BFA 0xEBA2
+0x9BFB 0xEBA3
+0x9BFC 0x8B62
+0x9BFD 0xEBA5
+0x9BFE 0xEBA6
+0x9C40 0x5D5B
+0x9C41 0xEBA8
+0x9C43 0xEBAA
+0x9C44 0xEBAB
+0x9C45 0x8AEA
+0x9C46 0xEBAD
+0x9C47 0xEBAE
+0x9C48 0xEBAF
+0x9C49 0xEBB0
+0x9C4A 0x4BC0
+0x9C4B 0xEBB2
+0x9C4C 0xEBB3
+0x9C4D 0xEBB4
+0x9C4E 0x9465
+0x9C4F 0xEBB6
+0x9C50 0x6195
+0x9C51 0x5A27
+0x9C52 0xEBB9
+0x9C54 0x56B9
+0x9C55 0xEBBC
+0x9C56 0xEBBD
+0x9C57 0x4E6A
+0x9C58 0xEBBF
+0x9C59 0x9656
+0x9C5A 0x6D8F
+0x9C5B 0xEBC2
+0x9C5C 0x3618
+0x9C5D 0x8977
+0x9C5E 0xEBC5
+0x9C5F 0xEBC6
+0x9C60 0xEBC7
+0x9C61 0xEBC8
+0x9C63 0xEBCA
+0x9C64 0x7B42
+0x9C65 0xEBCC
+0x9C66 0xEBCD
+0x9C67 0xEBCE
+0x9C69 0xEBD0
+0x9C6A 0x7A45
+0x9C6C 0xEBD3
+0x9C6D 0x9A26
+0x9C6E 0xEBD5
+0x9C6F 0x365F
+0x9C70 0xEBD7
+0x9C71 0xEBD8
+0x9C72 0x7983
+0x9C73 0xEBDA
+0x9C74 0xEBDB
+0x9C75 0x5D2C
+0x9C76 0xEBDD
+0x9C78 0xEBDF
+0x9C79 0x46D0
+0x9C7A 0xEBE1
+0x9C7B 0x753B
+0x9C7C 0x8865
+0x9C7D 0xEBE4
+0x9C7E 0x58B6
+0x9CA1 0x371C
+0x9CA2 0xEBE7
+0x9CA3 0xEBE8
+0x9CA4 0xEBE9
+0x9CA5 0x3C54
+0x9CA6 0xEBEB
+0x9CA7 0xEBEC
+0x9CA8 0x9281
+0x9CA9 0xEBEE
+0x9CAA 0xEBEF
+0x9CAB 0x9330
+0x9CAC 0xEBF1
+0x9CAD 0xEBF2
+0x9CAE 0x6C39
+0x9CAF 0x949F
+0x9CB0 0xEBF5
+0x9CB1 0xEBF6
+0x9CB2 0x8827
+0x9CB3 0x88F5
+0x9CB4 0xEBF9
+0x9CB5 0xEBFA
+0x9CB6 0xEBFB
+0x9CB7 0x6EB8
+0x9CB8 0xEBFD
+0x9CB9 0xEBFE
+0x9CBA 0x39A4
+0x9CBB 0x36B9
+0x9CBE 0x453F
+0x9CBF 0x66B6
+0x9CC0 0xEC05
+0x9CC1 0xEC06
+0x9CC2 0x8943
+0x9CC3 0xEC08
+0x9CC4 0xEC09
+0x9CC5 0x56D6
+0x9CC6 0x40DF
+0x9CC7 0xEC0C
+0x9CC8 0x39A1
+0x9CC9 0xEC0E
+0x9CCA 0xEC0F
+0x9CCB 0xEC10
+0x9CCC 0x71AD
+0x9CCD 0x8366
+0x9CCE 0xEC13
+0x9CCF 0xEC14
+0x9CD1 0x4CB7
+0x9CD2 0xEC17
+0x9CD3 0xEC18
+0x9CD4 0xEC19
+0x9CD5 0xEC1A
+0x9CD6 0xEC1B
+0x9CD7 0xEC1C
+0x9CD8 0xEC1D
+0x9CD9 0x7B43
+0x9CDA 0x797E
+0x9CDB 0xEC20
+0x9CDC 0x6FB5
+0x9CDD 0xEC22
+0x9CDE 0x6A03
+0x9CDF 0xEC24
+0x9CE0 0x53A2
+0x9CE1 0xEC26
+0x9CE2 0x93BF
+0x9CE3 0x6836
+0x9CE4 0x975D
+0x9CE5 0xEC2A
+0x9CE6 0xEC2B
+0x9CE7 0xEC2C
+0x9CE8 0xEC2D
+0x9CE9 0xEC2E
+0x9CEA 0xEC2F
+0x9CEB 0x5D85
+0x9CEC 0xEC31
+0x9CED 0xEC32
+0x9CEE 0x5715
+0x9CEF 0x9823
+0x9CF0 0xEC35
+0x9CF1 0x5DAB
+0x9CF2 0xEC37
+0x9CF3 0x65BE
+0x9CF4 0x69D5
+0x9CF5 0x53D2
+0x9CF6 0xEC3B
+0x9CF7 0xEC3C
+0x9CF8 0x3C11
+0x9CF9 0x6736
+0x9CFA 0xEC3F
+0x9CFB 0xEC40
+0x9CFC 0xEC41
+0x9CFD 0xEC42
+0x9CFE 0xEC43
+0x9D40 0xEC44
+0x9D41 0xEC45
+0x9D42 0xEC46
+0x9D43 0xEC47
+0x9D44 0xEC48
+0x9D45 0xEC49
+0x9D46 0x35CA
+0x9D47 0xEC4B
+0x9D48 0xEC4C
+0x9D49 0x48FA
+0x9D4A 0x63E6
+0x9D4B 0xEC4F
+0x9D4C 0x7808
+0x9D4D 0x9255
+0x9D4E 0xEC52
+0x9D4F 0x43F2
+0x9D50 0xEC54
+0x9D51 0x43DF
+0x9D52 0xEC56
+0x9D53 0xEC57
+0x9D54 0xEC58
+0x9D55 0x59F8
+0x9D56 0xEC5A
+0x9D58 0xEC5C
+0x9D59 0xEC5D
+0x9D5B 0xEC5F
+0x9D5C 0xEC60
+0x9D5D 0x3DF7
+0x9D5E 0xEC62
+0x9D5F 0xEC63
+0x9D60 0x8FD0
+0x9D61 0x728F
+0x9D62 0x568B
+0x9D63 0xEC67
+0x9D64 0xEC68
+0x9D65 0xEC69
+0x9D66 0xEC6A
+0x9D67 0xEC6B
+0x9D68 0xEC6C
+0x9D69 0xEC6D
+0x9D6A 0xEC6E
+0x9D6B 0xEC6F
+0x9D6C 0xEC70
+0x9D6D 0xEC71
+0x9D6E 0xEC72
+0x9D6F 0xEC73
+0x9D70 0x7E9F
+0x9D71 0xEC75
+0x9D72 0xEC76
+0x9D73 0x4CA4
+0x9D74 0x9547
+0x9D75 0xEC79
+0x9D76 0x71A2
+0x9D77 0xEC7B
+0x9D78 0x4D91
+0x9D79 0x9012
+0x9D7A 0xEC7E
+0x9D7B 0x4D9C
+0x9D7C 0xEC80
+0x9D7D 0x8FBE
+0x9D7E 0x55C1
+0x9DA1 0x8FBA
+0x9DA2 0xEC84
+0x9DA3 0x8FB9
+0x9DA4 0xEC86
+0x9DA5 0x4509
+0x9DA6 0x7E7F
+0x9DA7 0x6F56
+0x9DA8 0x6AB1
+0x9DA9 0x4EEA
+0x9DAA 0x34E4
+0x9DAB 0xEC8D
+0x9DAC 0xEC8E
+0x9DAD 0x373A
+0x9DAE 0x8E80
+0x9DAF 0xEC91
+0x9DB0 0xEC92
+0x9DB1 0xEC93
+0x9DB2 0xEC94
+0x9DB3 0xEC95
+0x9DB4 0xEC96
+0x9DB5 0x3DEB
+0x9DB6 0xEC98
+0x9DB7 0xEC99
+0x9DB8 0xEC9A
+0x9DB9 0xEC9B
+0x9DBA 0x4E9A
+0x9DBB 0xEC9D
+0x9DBC 0xEC9E
+0x9DBD 0x56BF
+0x9DBE 0xECA0
+0x9DBF 0x8E0E
+0x9DC0 0x5B6D
+0x9DC1 0xECA3
+0x9DC2 0xECA4
+0x9DC3 0x63DE
+0x9DC5 0xECA7
+0x9DC6 0xECA8
+0x9DC7 0x6530
+0x9DC8 0x562D
+0x9DC9 0xECAB
+0x9DCA 0x541A
+0x9DCB 0xECAD
+0x9DCC 0x3DC6
+0x9DCD 0xECAF
+0x9DCE 0x4C7D
+0x9DCF 0x5622
+0x9DD0 0x561E
+0x9DD1 0x7F49
+0x9DD2 0xECB4
+0x9DD3 0x5975
+0x9DD4 0xECB6
+0x9DD5 0x8770
+0x9DD6 0x4E1C
+0x9DD7 0xECB9
+0x9DD8 0xECBA
+0x9DD9 0xECBB
+0x9DDA 0x8117
+0x9DDB 0x9D5E
+0x9DDC 0x8D18
+0x9DDD 0x763B
+0x9DDE 0x9C45
+0x9DDF 0x764E
+0x9DE0 0x77B9
+0x9DE1 0x9345
+0x9DE2 0x5432
+0x9DE3 0x8148
+0x9DE4 0x82F7
+0x9DE5 0x5625
+0x9DE6 0x8132
+0x9DE7 0x8418
+0x9DE8 0x80BD
+0x9DE9 0x55EA
+0x9DEA 0x7962
+0x9DEB 0x5643
+0x9DEC 0x5416
+0x9DED 0xECCF
+0x9DEE 0x35CE
+0x9DEF 0x5605
+0x9DF0 0x55F1
+0x9DF1 0x66F1
+0x9DF2 0xECD4
+0x9DF3 0x362D
+0x9DF4 0x7534
+0x9DF5 0x55F0
+0x9DF6 0x55BA
+0x9DF7 0x5497
+0x9DF8 0x5572
+0x9DF9 0xECDB
+0x9DFA 0xECDC
+0x9DFB 0x5ED0
+0x9DFC 0xECDE
+0x9DFD 0xECDF
+0x9DFE 0xECE0
+0x9E40 0xECE1
+0x9E41 0x9EAB
+0x9E42 0x7D5A
+0x9E43 0x55DE
+0x9E44 0xECE5
+0x9E45 0x629D
+0x9E46 0x976D
+0x9E47 0x5494
+0x9E48 0x8CCD
+0x9E49 0x71F6
+0x9E4A 0x9176
+0x9E4B 0x63FC
+0x9E4C 0x63B9
+0x9E4D 0x63FE
+0x9E4E 0x5569
+0x9E4F 0xECF0
+0x9E50 0x9C72
+0x9E51 0xECF2
+0x9E52 0x519A
+0x9E53 0x34DF
+0x9E54 0xECF5
+0x9E55 0x51A7
+0x9E56 0x544D
+0x9E57 0x551E
+0x9E58 0x5513
+0x9E59 0x7666
+0x9E5A 0x8E2D
+0x9E5B 0xECFC
+0x9E5C 0x75B1
+0x9E5D 0x80B6
+0x9E5E 0x8804
+0x9E5F 0x8786
+0x9E60 0x88C7
+0x9E61 0x81B6
+0x9E62 0x841C
+0x9E63 0xED04
+0x9E64 0x44EC
+0x9E65 0x7304
+0x9E66 0xED07
+0x9E67 0x5B90
+0x9E68 0x830B
+0x9E69 0xED0A
+0x9E6A 0x567B
+0x9E6B 0xED0C
+0x9E6C 0xED0D
+0x9E6D 0xED0E
+0x9E6E 0xED0F
+0x9E6F 0xED10
+0x9E70 0xED11
+0x9E71 0x9170
+0x9E72 0xED13
+0x9E73 0x9208
+0x9E74 0xED15
+0x9E75 0xED16
+0x9E76 0xED17
+0x9E77 0xED18
+0x9E78 0x7266
+0x9E79 0xED1A
+0x9E7A 0x474E
+0x9E7B 0xED1C
+0x9E7C 0xED1D
+0x9E7D 0xED1E
+0x9E7E 0x40FA
+0x9EA1 0x9C5D
+0x9EA2 0x651F
+0x9EA3 0xED22
+0x9EA4 0x48F3
+0x9EA5 0xED24
+0x9EA6 0xED25
+0x9EA7 0xED26
+0x9EA8 0xED27
+0x9EAA 0xED29
+0x9EAB 0xED2A
+0x9EAD 0xED2C
+0x9EAE 0xED2D
+0x9EAF 0x71A3
+0x9EB0 0x7E8E
+0x9EB1 0x9D50
+0x9EB2 0x4E1A
+0x9EB3 0x4E04
+0x9EB4 0x3577
+0x9EB5 0x5B0D
+0x9EB6 0x6CB2
+0x9EB7 0x5367
+0x9EB8 0x36AC
+0x9EB9 0x39DC
+0x9EBA 0x537D
+0x9EBB 0x36A5
+0x9EBC 0xED3B
+0x9EBD 0x589A
+0x9EBE 0xED3D
+0x9EBF 0x822D
+0x9EC0 0x544B
+0x9EC1 0x57AA
+0x9EC2 0xED41
+0x9EC3 0xED42
+0x9EC5 0x3A52
+0x9EC6 0xED45
+0x9EC7 0x7374
+0x9EC8 0xED47
+0x9EC9 0x4D09
+0x9ECA 0x9BED
+0x9ECB 0xED4A
+0x9ECC 0xED4B
+0x9ECD 0x4C5B
+0x9ECE 0xED4D
+0x9ECF 0xED4E
+0x9ED0 0xED4F
+0x9ED1 0x845C
+0x9ED2 0xED51
+0x9ED3 0xED52
+0x9ED4 0xED53
+0x9ED5 0xED54
+0x9ED6 0x632E
+0x9ED7 0x7D25
+0x9ED8 0xED57
+0x9ED9 0xED58
+0x9EDA 0x3A2A
+0x9EDB 0x9008
+0x9EDC 0x52CC
+0x9EDD 0x3E74
+0x9EDE 0x367A
+0x9EDF 0x45E9
+0x9EE0 0xED5F
+0x9EE1 0x7640
+0x9EE2 0x5AF0
+0x9EE3 0xED62
+0x9EE4 0x787A
+0x9EE5 0x47B6
+0x9EE6 0x58A7
+0x9EE7 0x40BF
+0x9EE8 0x567C
+0x9EE9 0x9B8B
+0x9EEA 0x5D74
+0x9EEB 0x7654
+0x9EEC 0xED6B
+0x9EED 0x9E85
+0x9EEE 0x4CE1
+0x9EF0 0x37FB
+0x9EF1 0x6119
+0x9EF2 0xED71
+0x9EF3 0xED72
+0x9EF5 0x565D
+0x9EF6 0xED75
+0x9EF7 0x57A7
+0x9EF8 0xED77
+0x9EF9 0xED78
+0x9EFA 0x5234
+0x9EFB 0xED7A
+0x9EFC 0x35AD
+0x9EFE 0x9D7C
+0x9F40 0x7C56
+0x9F41 0x9B39
+0x9F42 0x57DE
+0x9F43 0xED81
+0x9F44 0x5C53
+0x9F45 0x64D3
+0x9F46 0xED84
+0x9F47 0xED85
+0x9F48 0xED86
+0x9F49 0x86AD
+0x9F4A 0xED88
+0x9F4B 0xED89
+0x9F4C 0xED8A
+0x9F4D 0xED8B
+0x9F4F 0x51FE
+0x9F50 0xED8E
+0x9F51 0x5D8E
+0x9F52 0x9703
+0x9F53 0xED91
+0x9F54 0x9E81
+0x9F55 0x904C
+0x9F56 0x7B1F
+0x9F57 0x9B02
+0x9F58 0x5CD1
+0x9F59 0x7BA3
+0x9F5A 0x6268
+0x9F5B 0x6335
+0x9F5C 0x9AFF
+0x9F5D 0x7BCF
+0x9F5E 0x9B2A
+0x9F5F 0x7C7E
+0x9F61 0x7C42
+0x9F62 0x7C86
+0x9F63 0x9C15
+0x9F64 0x7BFC
+0x9F65 0x9B09
+0x9F67 0x9C1B
+0x9F68 0xEDA6
+0x9F69 0x9F5A
+0x9F6A 0x5573
+0x9F6B 0x5BC3
+0x9F6C 0x4FFD
+0x9F6D 0x9E98
+0x9F6E 0x4FF2
+0x9F6F 0x5260
+0x9F70 0x3E06
+0x9F71 0x52D1
+0x9F72 0x5767
+0x9F73 0x5056
+0x9F74 0x59B7
+0x9F75 0x5E12
+0x9F76 0x97C8
+0x9F77 0x9DAB
+0x9F78 0x8F5C
+0x9F79 0x5469
+0x9F7A 0x97B4
+0x9F7B 0x9940
+0x9F7C 0x97BA
+0x9F7D 0x532C
+0x9F7E 0x6130
+0x9FA1 0x692C
+0x9FA2 0x53DA
+0x9FA3 0x9C0A
+0x9FA4 0x9D02
+0x9FA5 0x4C3B
+0x9FA6 0x9641
+0x9FA7 0x6980
+0x9FA8 0x50A6
+0x9FA9 0x7546
+0x9FAA 0xEDC6
+0x9FAB 0x99DA
+0x9FAC 0x5273
+0x9FAE 0x9159
+0x9FAF 0x9681
+0x9FB0 0x915C
+0x9FB2 0x9151
+0x9FB3 0xEDCF
+0x9FB4 0x637F
+0x9FB5 0xEDD1
+0x9FB6 0x6ACA
+0x9FB7 0x5611
+0x9FB8 0x918E
+0x9FB9 0x757A
+0x9FBA 0x6285
+0x9FBB 0xEDD7
+0x9FBC 0x734F
+0x9FBD 0x7C70
+0x9FBE 0xEDDA
+0x9FBF 0xEDDB
+0x9FC1 0xEDDD
+0x9FC2 0x76D6
+0x9FC3 0x9B9D
+0x9FC4 0x4E2A
+0x9FC5 0xEDE1
+0x9FC6 0x83BE
+0x9FC7 0x8842
+0x9FC9 0x5C4A
+0x9FCA 0x69C0
+0x9FCC 0x577A
+0x9FCD 0x521F
+0x9FCE 0x5DF5
+0x9FCF 0x4ECE
+0x9FD0 0x6C31
+0x9FD1 0xEDED
+0x9FD2 0x4F39
+0x9FD3 0x549C
+0x9FD4 0x54DA
+0x9FD5 0x529A
+0x9FD6 0x8D82
+0x9FD7 0x35FE
+0x9FD9 0x35F3
+0x9FDB 0x6B52
+0x9FDC 0x917C
+0x9FDD 0x9FA5
+0x9FDE 0x9B97
+0x9FDF 0x982E
+0x9FE0 0x98B4
+0x9FE1 0x9ABA
+0x9FE2 0x9EA8
+0x9FE3 0x9E84
+0x9FE4 0x717A
+0x9FE5 0x7B14
+0x9FE7 0x6BFA
+0x9FE8 0x8818
+0x9FE9 0x7F78
+0x9FEB 0x5620
+0x9FEC 0xEE08
+0x9FED 0x8E77
+0x9FEE 0x9F53
+0x9FF0 0x8DD4
+0x9FF1 0x8E4F
+0x9FF2 0x9E1C
+0x9FF3 0x8E01
+0x9FF4 0x6282
+0x9FF5 0xEE11
+0x9FF6 0x8E28
+0x9FF7 0x8E75
+0x9FF8 0x7AD3
+0x9FF9 0xEE15
+0x9FFA 0x7A3E
+0x9FFB 0x78D8
+0x9FFC 0x6CEA
+0x9FFD 0x8A67
+0x9FFE 0x7607
+0xA040 0xEE1B
+0xA041 0x9F26
+0xA042 0x6CCE
+0xA043 0x87D6
+0xA044 0x75C3
+0xA045 0xEE20
+0xA046 0x7853
+0xA047 0xEE22
+0xA048 0x8D0C
+0xA049 0x72E2
+0xA04A 0x7371
+0xA04B 0x8B2D
+0xA04C 0x7302
+0xA04D 0x74F1
+0xA04E 0x8CEB
+0xA04F 0xEE2A
+0xA050 0x862F
+0xA051 0x5FBA
+0xA052 0x88A0
+0xA053 0x44B7
+0xA055 0xEE30
+0xA056 0xEE31
+0xA058 0x8A7E
+0xA059 0xEE34
+0xA05B 0x60FD
+0xA05C 0x7667
+0xA05D 0x9AD7
+0xA05E 0x9D44
+0xA05F 0x936E
+0xA060 0x9B8F
+0xA061 0x87F5
+0xA064 0x8CF7
+0xA065 0x732C
+0xA066 0x9721
+0xA067 0x9BB0
+0xA068 0x35D6
+0xA069 0x72B2
+0xA06A 0x4C07
+0xA06B 0x7C51
+0xA06C 0x994A
+0xA06D 0xEE48
+0xA06E 0x6159
+0xA06F 0x4C04
+0xA070 0x9E96
+0xA071 0x617D
+0xA073 0x575F
+0xA074 0x616F
+0xA075 0x62A6
+0xA076 0x6239
+0xA078 0x3A5C
+0xA079 0x61E2
+0xA07A 0x53AA
+0xA07B 0xEE56
+0xA07C 0x6364
+0xA07D 0x6802
+0xA07E 0x35D2
+0xA0A1 0x5D57
+0xA0A2 0xEE5B
+0xA0A3 0x8FDA
+0xA0A4 0xEE5D
+0xA0A6 0x50D9
+0xA0A7 0xEE60
+0xA0A8 0x7906
+0xA0A9 0x5332
+0xA0AA 0x9638
+0xA0AB 0xEE64
+0xA0AC 0x4065
+0xA0AE 0x77FE
+0xA0B0 0x7CC2
+0xA0B1 0xEE6A
+0xA0B2 0x7CDA
+0xA0B3 0x7A2D
+0xA0B4 0x8066
+0xA0B5 0x8063
+0xA0B6 0x7D4D
+0xA0B7 0x7505
+0xA0B8 0x74F2
+0xA0B9 0x8994
+0xA0BA 0x821A
+0xA0BB 0x670C
+0xA0BC 0x8062
+0xA0BD 0xEE76
+0xA0BE 0x805B
+0xA0BF 0x74F0
+0xA0C0 0x8103
+0xA0C1 0x7724
+0xA0C2 0x8989
+0xA0C3 0xEE7C
+0xA0C4 0x7553
+0xA0C5 0xEE7E
+0xA0C6 0x87A9
+0xA0C7 0x87CE
+0xA0C8 0x81C8
+0xA0C9 0x878C
+0xA0CA 0x8A49
+0xA0CB 0x8CAD
+0xA0CC 0x8B43
+0xA0CD 0x772B
+0xA0CE 0x74F8
+0xA0CF 0x84DA
+0xA0D0 0x3635
+0xA0D1 0x69B2
+0xA0D2 0x8DA6
+0xA0D4 0x89A9
+0xA0D6 0x6DB9
+0xA0D7 0x87C1
+0xA0D8 0xEE91
+0xA0D9 0x74E7
+0xA0DA 0x3DDB
+0xA0DB 0x7176
+0xA0DC 0x60A4
+0xA0DD 0x619C
+0xA0DE 0x3CD1
+0xA0E0 0x6077
+0xA0E2 0x7F71
+0xA0E3 0xEE9C
+0xA0E5 0x60E9
+0xA0E6 0x4B7E
+0xA0E7 0x5220
+0xA0E8 0xEEA1
+0xA0E9 0xEEA2
+0xA0EA 0xEEA3
+0xA0EB 0xEEA4
+0xA0EC 0xEEA5
+0xA0ED 0xEEA6
+0xA0EE 0xEEA7
+0xA0EF 0xEEA8
+0xA0F0 0xEEA9
+0xA0F1 0xEEAA
+0xA0F2 0x5CC1
+0xA0F3 0xEEAC
+0xA0F4 0xEEAD
+0xA0F5 0xEEAE
+0xA0F6 0xEEAF
+0xA0F7 0xEEB0
+0xA0F8 0xEEB1
+0xA0F9 0x4562
+0xA0FA 0x5B1F
+0xA0FB 0xEEB4
+0xA0FC 0x9F50
+0xA0FD 0x9EA6
+0xA0FE 0xEEB7
+0xC6A1 0x2460
+0xC6A2 0x2461
+0xC6A3 0x2462
+0xC6A4 0x2463
+0xC6A5 0x2464
+0xC6A6 0x2465
+0xC6A7 0x2466
+0xC6A8 0x2467
+0xC6A9 0x2468
+0xC6AA 0x2469
+0xC6AB 0x2474
+0xC6AC 0x2475
+0xC6AD 0x2476
+0xC6AE 0x2477
+0xC6AF 0x2478
+0xC6B0 0x2479
+0xC6B1 0x247A
+0xC6B2 0x247B
+0xC6B3 0x247C
+0xC6B4 0x247D
+0xC6B5 0x2170
+0xC6B6 0x2171
+0xC6B7 0x2172
+0xC6B8 0x2173
+0xC6B9 0x2174
+0xC6BA 0x2175
+0xC6BB 0x2176
+0xC6BC 0x2177
+0xC6BD 0x2178
+0xC6BE 0x2179
+0xC6BF 0x4E36
+0xC6C0 0x4E3F
+0xC6C1 0x4E85
+0xC6C2 0x4EA0
+0xC6C3 0x5182
+0xC6C4 0x5196
+0xC6C5 0x51AB
+0xC6C6 0x52F9
+0xC6C7 0x5338
+0xC6C8 0x5369
+0xC6C9 0x53B6
+0xC6CA 0x590A
+0xC6CB 0x5B80
+0xC6CC 0x5DDB
+0xC6CD 0x2F33
+0xC6CE 0x5E7F
+0xC6D0 0x5F50
+0xC6D1 0x5F61
+0xC6D2 0x6534
+0xC6D4 0x7592
+0xC6D6 0x8FB5
+0xC6D8 0x00A8
+0xC6D9 0x02C6
+0xC6DA 0x30FD
+0xC6DB 0x30FE
+0xC6DC 0x309D
+0xC6DD 0x309E
+0xC6E0 0x3005
+0xC6E1 0x3006
+0xC6E2 0x3007
+0xC6E3 0x30FC
+0xC6E4 0xFF3B
+0xC6E5 0xFF3D
+0xC6E6 0x273D
+0xC6E7 0x3041
+0xC6E8 0x3042
+0xC6E9 0x3043
+0xC6EA 0x3044
+0xC6EB 0x3045
+0xC6EC 0x3046
+0xC6ED 0x3047
+0xC6EE 0x3048
+0xC6EF 0x3049
+0xC6F0 0x304A
+0xC6F1 0x304B
+0xC6F2 0x304C
+0xC6F3 0x304D
+0xC6F4 0x304E
+0xC6F5 0x304F
+0xC6F6 0x3050
+0xC6F7 0x3051
+0xC6F8 0x3052
+0xC6F9 0x3053
+0xC6FA 0x3054
+0xC6FB 0x3055
+0xC6FC 0x3056
+0xC6FD 0x3057
+0xC6FE 0x3058
+0xC740 0x3059
+0xC741 0x305A
+0xC742 0x305B
+0xC743 0x305C
+0xC744 0x305D
+0xC745 0x305E
+0xC746 0x305F
+0xC747 0x3060
+0xC748 0x3061
+0xC749 0x3062
+0xC74A 0x3063
+0xC74B 0x3064
+0xC74C 0x3065
+0xC74D 0x3066
+0xC74E 0x3067
+0xC74F 0x3068
+0xC750 0x3069
+0xC751 0x306A
+0xC752 0x306B
+0xC753 0x306C
+0xC754 0x306D
+0xC755 0x306E
+0xC756 0x306F
+0xC757 0x3070
+0xC758 0x3071
+0xC759 0x3072
+0xC75A 0x3073
+0xC75B 0x3074
+0xC75C 0x3075
+0xC75D 0x3076
+0xC75E 0x3077
+0xC75F 0x3078
+0xC760 0x3079
+0xC761 0x307A
+0xC762 0x307B
+0xC763 0x307C
+0xC764 0x307D
+0xC765 0x307E
+0xC766 0x307F
+0xC767 0x3080
+0xC768 0x3081
+0xC769 0x3082
+0xC76A 0x3083
+0xC76B 0x3084
+0xC76C 0x3085
+0xC76D 0x3086
+0xC76E 0x3087
+0xC76F 0x3088
+0xC770 0x3089
+0xC771 0x308A
+0xC772 0x308B
+0xC773 0x308C
+0xC774 0x308D
+0xC775 0x308E
+0xC776 0x308F
+0xC777 0x3090
+0xC778 0x3091
+0xC779 0x3092
+0xC77A 0x3093
+0xC77B 0x30A1
+0xC77C 0x30A2
+0xC77D 0x30A3
+0xC77E 0x30A4
+0xC7A1 0x30A5
+0xC7A2 0x30A6
+0xC7A3 0x30A7
+0xC7A4 0x30A8
+0xC7A5 0x30A9
+0xC7A6 0x30AA
+0xC7A7 0x30AB
+0xC7A8 0x30AC
+0xC7A9 0x30AD
+0xC7AA 0x30AE
+0xC7AB 0x30AF
+0xC7AC 0x30B0
+0xC7AD 0x30B1
+0xC7AE 0x30B2
+0xC7AF 0x30B3
+0xC7B0 0x30B4
+0xC7B1 0x30B5
+0xC7B2 0x30B6
+0xC7B3 0x30B7
+0xC7B4 0x30B8
+0xC7B5 0x30B9
+0xC7B6 0x30BA
+0xC7B7 0x30BB
+0xC7B8 0x30BC
+0xC7B9 0x30BD
+0xC7BA 0x30BE
+0xC7BB 0x30BF
+0xC7BC 0x30C0
+0xC7BD 0x30C1
+0xC7BE 0x30C2
+0xC7BF 0x30C3
+0xC7C0 0x30C4
+0xC7C1 0x30C5
+0xC7C2 0x30C6
+0xC7C3 0x30C7
+0xC7C4 0x30C8
+0xC7C5 0x30C9
+0xC7C6 0x30CA
+0xC7C7 0x30CB
+0xC7C8 0x30CC
+0xC7C9 0x30CD
+0xC7CA 0x30CE
+0xC7CB 0x30CF
+0xC7CC 0x30D0
+0xC7CD 0x30D1
+0xC7CE 0x30D2
+0xC7CF 0x30D3
+0xC7D0 0x30D4
+0xC7D1 0x30D5
+0xC7D2 0x30D6
+0xC7D3 0x30D7
+0xC7D4 0x30D8
+0xC7D5 0x30D9
+0xC7D6 0x30DA
+0xC7D7 0x30DB
+0xC7D8 0x30DC
+0xC7D9 0x30DD
+0xC7DA 0x30DE
+0xC7DB 0x30DF
+0xC7DC 0x30E0
+0xC7DD 0x30E1
+0xC7DE 0x30E2
+0xC7DF 0x30E3
+0xC7E0 0x30E4
+0xC7E1 0x30E5
+0xC7E2 0x30E6
+0xC7E3 0x30E7
+0xC7E4 0x30E8
+0xC7E5 0x30E9
+0xC7E6 0x30EA
+0xC7E7 0x30EB
+0xC7E8 0x30EC
+0xC7E9 0x30ED
+0xC7EA 0x30EE
+0xC7EB 0x30EF
+0xC7EC 0x30F0
+0xC7ED 0x30F1
+0xC7EE 0x30F2
+0xC7EF 0x30F3
+0xC7F0 0x30F4
+0xC7F1 0x30F5
+0xC7F2 0x30F6
+0xC7F3 0x0410
+0xC7F4 0x0411
+0xC7F5 0x0412
+0xC7F6 0x0413
+0xC7F7 0x0414
+0xC7F8 0x0415
+0xC7F9 0x0401
+0xC7FA 0x0416
+0xC7FB 0x0417
+0xC7FC 0x0418
+0xC7FD 0x0419
+0xC7FE 0x041A
+0xC840 0x041B
+0xC841 0x041C
+0xC842 0x041D
+0xC843 0x041E
+0xC844 0x041F
+0xC845 0x0420
+0xC846 0x0421
+0xC847 0x0422
+0xC848 0x0423
+0xC849 0x0424
+0xC84A 0x0425
+0xC84B 0x0426
+0xC84C 0x0427
+0xC84D 0x0428
+0xC84E 0x0429
+0xC84F 0x042A
+0xC850 0x042B
+0xC851 0x042C
+0xC852 0x042D
+0xC853 0x042E
+0xC854 0x042F
+0xC855 0x0430
+0xC856 0x0431
+0xC857 0x0432
+0xC858 0x0433
+0xC859 0x0434
+0xC85A 0x0435
+0xC85B 0x0451
+0xC85C 0x0436
+0xC85D 0x0437
+0xC85E 0x0438
+0xC85F 0x0439
+0xC860 0x043A
+0xC861 0x043B
+0xC862 0x043C
+0xC863 0x043D
+0xC864 0x043E
+0xC865 0x043F
+0xC866 0x0440
+0xC867 0x0441
+0xC868 0x0442
+0xC869 0x0443
+0xC86A 0x0444
+0xC86B 0x0445
+0xC86C 0x0446
+0xC86D 0x0447
+0xC86E 0x0448
+0xC86F 0x0449
+0xC870 0x044A
+0xC871 0x044B
+0xC872 0x044C
+0xC873 0x044D
+0xC874 0x044E
+0xC875 0x044F
+0xC876 0x21E7
+0xC877 0x21B8
+0xC878 0x21B9
+0xC879 0xF7E5
+0xC87A 0xF7E6
+0xC87B 0x4E5A
+0xC87C 0xF7E8
+0xC87D 0x5202
+0xC87E 0xF7EA
+0xC8A1 0xF7EB
+0xC8A2 0x5188
+0xC8A3 0xF7ED
+0xC8A4 0xF7EE
+0xC8CD 0xFFE2
+0xC8CE 0xFFE4
+0xC8CF 0xFF07
+0xC8D0 0xFF02
+0xC8D1 0x3231
+0xC8D2 0x2116
+0xC8D3 0x2121
+0xC8D4 0x309B
+0xC8D5 0x309C
+0xC8D6 0x2E80
+0xC8D7 0x2E84
+0xC8D8 0x2E86
+0xC8D9 0x2E87
+0xC8DA 0x2E88
+0xC8DB 0x2E8A
+0xC8DC 0x2E8C
+0xC8DD 0x2E8D
+0xC8DE 0x2E95
+0xC8DF 0x2E9C
+0xC8E0 0x2E9D
+0xC8E1 0x2EA5
+0xC8E2 0x2EA7
+0xC8E3 0x2EAA
+0xC8E4 0x2EAC
+0xC8E5 0x2EAE
+0xC8E6 0x2EB6
+0xC8E7 0x2EBC
+0xC8E8 0x2EBE
+0xC8E9 0x2EC6
+0xC8EA 0x2ECA
+0xC8EB 0x2ECC
+0xC8EC 0x2ECD
+0xC8ED 0x2ECF
+0xC8EE 0x2ED6
+0xC8EF 0x2ED7
+0xC8F0 0x2EDE
+0xC8F1 0x2EE3
+0xC8F5 0x0283
+0xC8F6 0x0250
+0xC8F7 0x025B
+0xC8F8 0x0254
+0xC8F9 0x0275
+0xC8FA 0x0153
+0xC8FB 0x00F8
+0xC8FC 0x014B
+0xC8FD 0x028A
+0xC8FE 0x026A
+0xF9D6 0x7881
+0xF9D7 0x92B9
+0xF9D8 0x88CF
+0xF9D9 0x58BB
+0xF9DA 0x6052
+0xF9DB 0x7CA7
+0xF9DC 0x5AFA
+0xF9DD 0x2554
+0xF9DE 0x2566
+0xF9DF 0x2557
+0xF9E0 0x2560
+0xF9E1 0x256C
+0xF9E2 0x2563
+0xF9E3 0x255A
+0xF9E4 0x2569
+0xF9E5 0x255D
+0xF9E6 0x2552
+0xF9E7 0x2564
+0xF9E8 0x2555
+0xF9E9 0x255E
+0xF9EA 0x256A
+0xF9EB 0x2561
+0xF9EC 0x2558
+0xF9ED 0x2567
+0xF9EE 0x255B
+0xF9EF 0x2553
+0xF9F0 0x2565
+0xF9F1 0x2556
+0xF9F2 0x255F
+0xF9F3 0x256B
+0xF9F4 0x2562
+0xF9F5 0x2559
+0xF9F6 0x2568
+0xF9F7 0x255C
+0xF9F8 0x2551
+0xF9F9 0x2550
+0xF9FA 0x256D
+0xF9FB 0x256E
+0xF9FC 0x2570
+0xF9FD 0x256F
+0xF9FE 0xFFED
+0xFA40 0xE000
+0xFA41 0x92DB
+0xFA42 0xE002
+0xFA43 0xE003
+0xFA44 0x854C
+0xFA45 0x42B5
+0xFA46 0x73EF
+0xFA47 0x51B5
+0xFA48 0x3649
+0xFA49 0xE009
+0xFA4A 0xE00A
+0xFA4B 0x9344
+0xFA4C 0xE00C
+0xFA4D 0x82EE
+0xFA4E 0xE00E
+0xFA4F 0x783C
+0xFA50 0x6744
+0xFA51 0x62DF
+0xFA52 0xE012
+0xFA53 0xE013
+0xFA54 0xE014
+0xFA55 0xE015
+0xFA56 0xE016
+0xFA57 0x4FAB
+0xFA58 0xE018
+0xFA59 0x5008
+0xFA5A 0xE01A
+0xFA5B 0xE01B
+0xFA5C 0xE01C
+0xFA5D 0xE01D
+0xFA5E 0xE01E
+0xFA60 0xE020
+0xFA61 0x5FA4
+0xFA62 0xE022
+0xFA63 0xE023
+0xFA64 0x6EDB
+0xFA65 0xE025
+0xFA67 0x5101
+0xFA68 0x347A
+0xFA69 0x510E
+0xFA6A 0x986C
+0xFA6B 0x3743
+0xFA6C 0x8416
+0xFA6D 0xE02D
+0xFA6E 0xE02E
+0xFA6F 0x5160
+0xFA70 0xE030
+0xFA71 0x516A
+0xFA72 0xE032
+0xFA73 0xE033
+0xFA74 0xE034
+0xFA75 0xE035
+0xFA76 0xE036
+0xFA77 0xE037
+0xFA78 0xE038
+0xFA79 0x5B82
+0xFA7A 0x877D
+0xFA7B 0xE03B
+0xFA7C 0xE03C
+0xFA7D 0x51B2
+0xFA7E 0x51B8
+0xFAA1 0x9D34
+0xFAA2 0x51C9
+0xFAA3 0x51CF
+0xFAA4 0x51D1
+0xFAA5 0x3CDC
+0xFAA6 0x51D3
+0xFAA7 0xE045
+0xFAA8 0x51B3
+0xFAA9 0x51E2
+0xFAAA 0x5342
+0xFAAB 0x51ED
+0xFAAC 0x83CD
+0xFAAD 0x693E
+0xFAAE 0xE04C
+0xFAAF 0x5F7B
+0xFAB0 0x520B
+0xFAB1 0x5226
+0xFAB2 0x523C
+0xFAB3 0x52B5
+0xFAB4 0x5257
+0xFAB5 0x5294
+0xFAB6 0x52B9
+0xFAB7 0x52C5
+0xFAB8 0x7C15
+0xFAB9 0x8542
+0xFABA 0x52E0
+0xFABB 0x860D
+0xFABC 0xE05A
+0xFABE 0xE05C
+0xFABF 0x5549
+0xFAC0 0x6ED9
+0xFAC1 0xE05F
+0xFAC2 0xE060
+0xFAC3 0xE061
+0xFAC4 0x5333
+0xFAC6 0xE064
+0xFAC7 0x6CCB
+0xFAC8 0xE066
+0xFAC9 0x681B
+0xFACA 0x73D5
+0xFACB 0x604A
+0xFACC 0x3EAA
+0xFACD 0x38CC
+0xFACE 0xE06C
+0xFACF 0x71DD
+0xFAD0 0x44A2
+0xFAD1 0x536D
+0xFAD2 0x5374
+0xFAD3 0xE071
+0xFAD4 0x537E
+0xFAD6 0xE074
+0xFAD7 0xE075
+0xFAD8 0x77E6
+0xFAD9 0x5393
+0xFADA 0xE078
+0xFADB 0x53A0
+0xFADC 0x53AB
+0xFADD 0x53AE
+0xFADE 0x73A7
+0xFADF 0xE07D
+0xFAE0 0x3F59
+0xFAE1 0x739C
+0xFAE2 0x53C1
+0xFAE3 0x53C5
+0xFAE4 0x6C49
+0xFAE5 0x4E49
+0xFAE6 0x57FE
+0xFAE7 0x53D9
+0xFAE8 0x3AAB
+0xFAE9 0xE087
+0xFAEA 0x53E0
+0xFAEB 0xE089
+0xFAEC 0xE08A
+0xFAED 0x53F6
+0xFAEE 0xE08C
+0xFAEF 0x5413
+0xFAF0 0x7079
+0xFAF1 0x552B
+0xFAF2 0x6657
+0xFAF3 0x6D5B
+0xFAF4 0x546D
+0xFAF5 0xE093
+0xFAF6 0xE094
+0xFAF7 0x555D
+0xFAF8 0x548F
+0xFAF9 0x54A4
+0xFAFA 0x47A6
+0xFAFB 0xE099
+0xFAFC 0xE09A
+0xFAFD 0x3DB4
+0xFAFE 0xE09C
+0xFB40 0xE09D
+0xFB41 0xE09E
+0xFB42 0x5547
+0xFB43 0x4CED
+0xFB44 0x542F
+0xFB45 0x7417
+0xFB46 0x5586
+0xFB47 0x55A9
+0xFB49 0xE0A6
+0xFB4A 0xE0A7
+0xFB4B 0x4552
+0xFB4C 0xE0A9
+0xFB4D 0x66B3
+0xFB4E 0xE0AB
+0xFB4F 0x5637
+0xFB50 0x66CD
+0xFB51 0xE0AE
+0xFB52 0x66A4
+0xFB53 0x66AD
+0xFB54 0x564D
+0xFB55 0x564F
+0xFB56 0x78F1
+0xFB57 0x56F1
+0xFB58 0x9787
+0xFB59 0x53FE
+0xFB5A 0x5700
+0xFB5B 0x56EF
+0xFB5C 0x56ED
+0xFB5D 0xE0BA
+0xFB5E 0x3623
+0xFB5F 0xE0BC
+0xFB60 0x5746
+0xFB61 0xE0BE
+0xFB62 0x6C6E
+0xFB63 0x708B
+0xFB64 0x5742
+0xFB65 0x36B1
+0xFB66 0xE0C3
+0xFB67 0x57E6
+0xFB68 0xE0C5
+0xFB69 0x5803
+0xFB6A 0xE0C7
+0xFB6B 0xE0C8
+0xFB6C 0x5826
+0xFB6D 0xE0CA
+0xFB6E 0x585C
+0xFB6F 0x58AA
+0xFB70 0x3561
+0xFB71 0x58E0
+0xFB72 0x58DC
+0xFB73 0xE0D0
+0xFB74 0x58FB
+0xFB75 0x5BFF
+0xFB76 0x5743
+0xFB77 0xE0D4
+0xFB78 0xE0D5
+0xFB79 0x93D3
+0xFB7A 0x35A1
+0xFB7B 0x591F
+0xFB7C 0x68A6
+0xFB7D 0x36C3
+0xFB7E 0x6E59
+0xFBA1 0xE0DC
+0xFBA2 0x5A24
+0xFBA3 0x5553
+0xFBA4 0xE0DF
+0xFBA5 0x8505
+0xFBA6 0x59C9
+0xFBA7 0xE0E2
+0xFBA8 0xE0E3
+0xFBA9 0xE0E4
+0xFBAA 0xE0E5
+0xFBAB 0x59D9
+0xFBAC 0xE0E7
+0xFBAD 0xE0E8
+0xFBAE 0xE0E9
+0xFBAF 0x6D71
+0xFBB0 0xE0EB
+0xFBB1 0xE0EC
+0xFBB2 0x59F9
+0xFBB3 0xE0EE
+0xFBB4 0x5AAB
+0xFBB5 0x5A63
+0xFBB6 0x36E6
+0xFBB7 0xE0F2
+0xFBB9 0x3708
+0xFBBA 0x5A96
+0xFBBB 0x7465
+0xFBBC 0x5AD3
+0xFBBD 0xE0F8
+0xFBBE 0xE0F9
+0xFBBF 0x3D85
+0xFBC0 0xE0FB
+0xFBC1 0x3732
+0xFBC2 0xE0FD
+0xFBC3 0x5E83
+0xFBC4 0x52D0
+0xFBC5 0x5B76
+0xFBC6 0x6588
+0xFBC7 0x5B7C
+0xFBC8 0xE103
+0xFBC9 0x4004
+0xFBCA 0x485D
+0xFBCB 0xE106
+0xFBCC 0x5BD5
+0xFBCD 0x6160
+0xFBCE 0xE109
+0xFBCF 0xE10A
+0xFBD0 0xE10B
+0xFBD1 0x5BF3
+0xFBD2 0x5B9D
+0xFBD3 0x4D10
+0xFBD4 0x5C05
+0xFBD5 0xE110
+0xFBD6 0x5C13
+0xFBD7 0x73CE
+0xFBD8 0x5C14
+0xFBD9 0xE114
+0xFBDA 0xE115
+0xFBDB 0x5C49
+0xFBDC 0x48DD
+0xFBDD 0x5C85
+0xFBDE 0x5CE9
+0xFBDF 0x5CEF
+0xFBE0 0x5D8B
+0xFBE1 0xE11C
+0xFBE2 0xE11D
+0xFBE3 0x5D10
+0xFBE4 0x5D18
+0xFBE5 0x5D46
+0xFBE6 0xE121
+0xFBE7 0x5CBA
+0xFBE8 0x5DD7
+0xFBE9 0x82FC
+0xFBEA 0x382D
+0xFBEB 0xE126
+0xFBEC 0xE127
+0xFBED 0xE128
+0xFBEE 0x8287
+0xFBEF 0x3836
+0xFBF0 0x3BC2
+0xFBF1 0x5E2E
+0xFBF2 0x6A8A
+0xFBF4 0x5E7A
+0xFBF5 0xE130
+0xFBF6 0xE131
+0xFBF7 0x53A6
+0xFBF8 0x4EB7
+0xFBFA 0x53A8
+0xFBFB 0xE136
+0xFBFC 0x5E09
+0xFBFD 0x5EF4
+0xFBFE 0xE139
+0xFC40 0x5EF9
+0xFC41 0x5EFB
+0xFC42 0x38A0
+0xFC43 0x5EFC
+0xFC44 0x683E
+0xFC45 0x941B
+0xFC46 0x5F0D
+0xFC47 0xE141
+0xFC48 0xE142
+0xFC49 0x3ADE
+0xFC4A 0x48AE
+0xFC4B 0xE145
+0xFC4C 0x5F3A
+0xFC4D 0xE147
+0xFC4E 0xE148
+0xFC50 0xE14A
+0xFC51 0x5F63
+0xFC52 0x97BD
+0xFC53 0xE14D
+0xFC54 0x5F72
+0xFC55 0x9340
+0xFC56 0xE150
+0xFC57 0x5FA7
+0xFC58 0x5DB6
+0xFC59 0x3D5F
+0xFC5A 0xE154
+0xFC5B 0xE155
+0xFC5C 0xE156
+0xFC5D 0xE157
+0xFC5E 0x91D6
+0xFC5F 0xE159
+0xFC60 0xE15A
+0xFC61 0x6031
+0xFC62 0x6685
+0xFC63 0xE15D
+0xFC64 0x3963
+0xFC65 0x3DC7
+0xFC66 0x3639
+0xFC67 0x5790
+0xFC68 0xE162
+0xFC69 0x7971
+0xFC6A 0x3E40
+0xFC6B 0x609E
+0xFC6D 0x60B3
+0xFC6E 0xE168
+0xFC6F 0xE169
+0xFC70 0xE16A
+0xFC71 0x74A4
+0xFC72 0x50E1
+0xFC73 0x5AA0
+0xFC74 0x6164
+0xFC75 0x8424
+0xFC76 0x6142
+0xFC77 0xE171
+0xFC78 0xE172
+0xFC79 0x6181
+0xFC7A 0x51F4
+0xFC7B 0xE175
+0xFC7C 0x6187
+0xFC7D 0x5BAA
+0xFC7E 0xE178
+0xFCA1 0xE179
+0xFCA2 0x61D3
+0xFCA3 0xE17B
+0xFCA4 0xE17C
+0xFCA5 0x61D0
+0xFCA6 0x3932
+0xFCA7 0xE17F
+0xFCA8 0xE180
+0xFCA9 0x6023
+0xFCAA 0x615C
+0xFCAB 0x651E
+0xFCAC 0x638B
+0xFCAD 0xE185
+0xFCAE 0x62C5
+0xFCAF 0xE187
+0xFCB0 0x62D5
+0xFCB1 0xE189
+0xFCB2 0x636C
+0xFCB3 0xE18B
+0xFCB4 0x3A17
+0xFCB5 0x6438
+0xFCB6 0x63F8
+0xFCB7 0xE18F
+0xFCB8 0xE190
+0xFCBA 0x6F8A
+0xFCBB 0xE193
+0xFCBC 0x9814
+0xFCBD 0xE195
+0xFCBE 0xE196
+0xFCBF 0x64E1
+0xFCC0 0x64E5
+0xFCC1 0x947B
+0xFCC2 0x3A66
+0xFCC3 0x643A
+0xFCC4 0x3A57
+0xFCC5 0x654D
+0xFCC6 0x6F16
+0xFCC7 0xE19F
+0xFCC8 0xE1A0
+0xFCC9 0x6585
+0xFCCA 0x656D
+0xFCCB 0x655F
+0xFCCC 0xE1A4
+0xFCCD 0x65B5
+0xFCCE 0xE1A6
+0xFCCF 0x4B37
+0xFCD0 0x65D1
+0xFCD1 0x40D8
+0xFCD2 0xE1AA
+0xFCD3 0x65E0
+0xFCD4 0x65E3
+0xFCD5 0x5FDF
+0xFCD6 0xE1AE
+0xFCD7 0x6618
+0xFCD8 0xE1B0
+0xFCD9 0xE1B1
+0xFCDA 0x6644
+0xFCDB 0xE1B3
+0xFCDC 0xE1B4
+0xFCDD 0x664B
+0xFCDE 0xE1B6
+0xFCDF 0x6667
+0xFCE0 0xE1B8
+0xFCE1 0x6673
+0xFCE3 0xE1BB
+0xFCE4 0xE1BC
+0xFCE5 0xE1BD
+0xFCE6 0xE1BE
+0xFCE7 0xE1BF
+0xFCE8 0x77C5
+0xFCE9 0xE1C1
+0xFCEA 0x99A4
+0xFCEB 0x6702
+0xFCEC 0xE1C4
+0xFCED 0xE1C5
+0xFCEE 0x3B2B
+0xFCEF 0x69FA
+0xFCF0 0xE1C8
+0xFCF2 0x6767
+0xFCF3 0x6762
+0xFCF4 0xE1CC
+0xFCF5 0xE1CD
+0xFCF6 0x67D7
+0xFCF7 0x44E9
+0xFCF8 0x6822
+0xFCF9 0x6E50
+0xFCFA 0x923C
+0xFCFB 0x6801
+0xFCFC 0xE1D4
+0xFCFD 0xE1D5
+0xFCFE 0x685D
+0xFD40 0xE1D7
+0xFD41 0x69E1
+0xFD42 0x6A0B
+0xFD43 0xE1DA
+0xFD44 0x6973
+0xFD45 0x68C3
+0xFD46 0xE1DD
+0xFD47 0x6901
+0xFD48 0x6900
+0xFD49 0x3D32
+0xFD4A 0x3A01
+0xFD4B 0xE1E2
+0xFD4C 0x3B80
+0xFD4D 0x67AC
+0xFD4E 0x6961
+0xFD4F 0xE1E6
+0xFD50 0x42FC
+0xFD51 0x6936
+0xFD52 0x6998
+0xFD53 0x3BA1
+0xFD54 0xE1EB
+0xFD55 0x8363
+0xFD56 0x5090
+0xFD57 0x69F9
+0xFD58 0xE1EF
+0xFD59 0xE1F0
+0xFD5A 0x6A45
+0xFD5B 0xE1F2
+0xFD5C 0x6A9D
+0xFD5D 0x3BF3
+0xFD5E 0x67B1
+0xFD5F 0x6AC8
+0xFD60 0xE1F7
+0xFD61 0x3C0D
+0xFD62 0x6B1D
+0xFD63 0xE1FA
+0xFD64 0x60DE
+0xFD65 0x6B35
+0xFD66 0x6B74
+0xFD67 0xE1FE
+0xFD68 0x6EB5
+0xFD69 0xE200
+0xFD6A 0xE201
+0xFD6B 0xE202
+0xFD6C 0x3740
+0xFD6D 0x5421
+0xFD6E 0xE205
+0xFD6F 0x6BE1
+0xFD70 0xE207
+0xFD71 0x6BDC
+0xFD72 0x6C37
+0xFD73 0xE20A
+0xFD74 0xE20B
+0xFD75 0xE20C
+0xFD76 0x6C5A
+0xFD77 0x8226
+0xFD78 0x6C79
+0xFD79 0xE210
+0xFD7A 0x44C5
+0xFD7B 0xE212
+0xFD7C 0xE213
+0xFD7D 0xE214
+0xFD7E 0xE215
+0xFDA1 0xE216
+0xFDA2 0x36E5
+0xFDA3 0x3CEB
+0xFDA4 0xE219
+0xFDA5 0x9B83
+0xFDA6 0xE21B
+0xFDA7 0xE21C
+0xFDA8 0x7F8F
+0xFDA9 0x6837
+0xFDAA 0xE21F
+0xFDAB 0xE220
+0xFDAC 0xE221
+0xFDAD 0x6D96
+0xFDAE 0x6D5C
+0xFDAF 0x6E7C
+0xFDB0 0x6F04
+0xFDB1 0xE226
+0xFDB2 0xE227
+0xFDB3 0xE228
+0xFDB4 0x8533
+0xFDB5 0xE22A
+0xFDB6 0x51C7
+0xFDB9 0x842E
+0xFDBA 0xE22F
+0xFDBC 0xE231
+0xFDBD 0x7453
+0xFDBE 0xE233
+0xFDBF 0x79CC
+0xFDC0 0x6E4F
+0xFDC1 0x5A91
+0xFDC2 0xE237
+0xFDC3 0x6FF8
+0xFDC4 0x370D
+0xFDC5 0x6F9D
+0xFDC6 0xE23B
+0xFDC7 0x6EFA
+0xFDC8 0xE23D
+0xFDC9 0xE23E
+0xFDCA 0x4555
+0xFDCB 0x93F0
+0xFDCC 0x6F44
+0xFDCD 0x6F5C
+0xFDCE 0x3D4E
+0xFDCF 0x6F74
+0xFDD0 0xE245
+0xFDD1 0x3D3B
+0xFDD2 0x6F9F
+0xFDD3 0xE248
+0xFDD4 0x6FD3
+0xFDD5 0xE24A
+0xFDD6 0xE24B
+0xFDD7 0xE24C
+0xFDD8 0xE24D
+0xFDD9 0xE24E
+0xFDDA 0xE24F
+0xFDDB 0x51DF
+0xFDDC 0xE251
+0xFDDD 0xE252
+0xFDDE 0xE253
+0xFDDF 0xE254
+0xFDE0 0x704B
+0xFDE1 0x707E
+0xFDE2 0x70A7
+0xFDE3 0x7081
+0xFDE4 0x70CC
+0xFDE5 0x70D5
+0xFDE6 0x70D6
+0xFDE7 0x70DF
+0xFDE8 0x4104
+0xFDE9 0x3DE8
+0xFDEA 0x71B4
+0xFDEB 0x7196
+0xFDEC 0xE261
+0xFDED 0x712B
+0xFDEE 0x7145
+0xFDEF 0x5A88
+0xFDF0 0x714A
+0xFDF2 0x5C9C
+0xFDF3 0xE268
+0xFDF4 0x714F
+0xFDF5 0x9362
+0xFDF6 0xE26B
+0xFDF7 0x712C
+0xFDF8 0xE26D
+0xFDF9 0xE26E
+0xFDFA 0xE26F
+0xFDFB 0x71BA
+0xFDFC 0xE271
+0xFDFD 0x70BD
+0xFDFE 0x720E
+0xFE40 0x9442
+0xFE41 0x7215
+0xFE42 0x5911
+0xFE43 0x9443
+0xFE44 0x7224
+0xFE45 0x9341
+0xFE46 0xE27A
+0xFE47 0x722E
+0xFE48 0x7240
+0xFE49 0xE27D
+0xFE4A 0x68BD
+0xFE4B 0x7255
+0xFE4C 0x7257
+0xFE4D 0x3E55
+0xFE4E 0xE282
+0xFE4F 0x680D
+0xFE50 0x6F3D
+0xFE51 0x7282
+0xFE53 0x732B
+0xFE54 0xE288
+0xFE55 0xE289
+0xFE56 0x48ED
+0xFE57 0xE28B
+0xFE58 0x7328
+0xFE59 0x732E
+0xFE5A 0x73CF
+0xFE5B 0x73AA
+0xFE5C 0xE290
+0xFE5D 0xE291
+0xFE5E 0x73C9
+0xFE5F 0x7449
+0xFE60 0xE294
+0xFE61 0xE295
+0xFE62 0xE296
+0xFE63 0x6623
+0xFE64 0x36C5
+0xFE65 0xE299
+0xFE66 0xE29A
+0xFE67 0xE29B
+0xFE68 0x73F7
+0xFE69 0x7415
+0xFE6A 0x6903
+0xFE6B 0xE29F
+0xFE6C 0x7439
+0xFE6D 0xE2A1
+0xFE6E 0x3ED7
+0xFE70 0xE2A4
+0xFE71 0x7460
+0xFE72 0xE2A6
+0xFE73 0x7447
+0xFE74 0x73E4
+0xFE75 0x7476
+0xFE76 0x83B9
+0xFE77 0x746C
+0xFE78 0x3730
+0xFE79 0x7474
+0xFE7A 0x93F1
+0xFE7B 0x6A2C
+0xFE7C 0x7482
+0xFE7D 0x4953
+0xFE7E 0xE2B2
+0xFEA1 0xE2B3
+0xFEA2 0xE2B4
+0xFEA3 0xE2B5
+0xFEA4 0x5B46
+0xFEA5 0xE2B7
+0xFEA6 0xE2B8
+0xFEA7 0x74C8
+0xFEA8 0xE2BA
+0xFEA9 0x750E
+0xFEAB 0x751E
+0xFEAC 0xE2BE
+0xFEAD 0xE2BF
+0xFEAE 0x5BD7
+0xFEAF 0xE2C1
+0xFEB0 0x9385
+0xFEB1 0x754D
+0xFEB2 0x754A
+0xFEB3 0x7567
+0xFEB4 0x756E
+0xFEB5 0xE2C7
+0xFEB6 0x3F04
+0xFEB7 0xE2C9
+0xFEB8 0x758E
+0xFEB9 0x745D
+0xFEBA 0x759E
+0xFEBB 0x75B4
+0xFEBC 0x7602
+0xFEBD 0x762C
+0xFEBE 0x7651
+0xFEBF 0x764F
+0xFEC0 0x766F
+0xFEC1 0x7676
+0xFEC2 0xE2D4
+0xFEC3 0x7690
+0xFEC4 0x81EF
+0xFEC5 0x37F8
+0xFEC6 0xE2D8
+0xFEC7 0xE2D9
+0xFEC8 0x76A1
+0xFEC9 0x76A5
+0xFECA 0x76B7
+0xFECB 0x76CC
+0xFECC 0xE2DE
+0xFECD 0x8462
+0xFECE 0xE2E0
+0xFECF 0xE2E1
+0xFED0 0xE2E2
+0xFED1 0x771E
+0xFED2 0x7726
+0xFED3 0x7740
+0xFED4 0x64AF
+0xFED5 0xE2E7
+0xFED6 0x7758
+0xFED7 0xE2E9
+0xFED8 0x77AF
+0xFED9 0xE2EB
+0xFEDA 0xE2EC
+0xFEDB 0xE2ED
+0xFEDC 0x77F4
+0xFEDE 0xE2F0
+0xFEDF 0xE2F1
+0xFEE0 0x68CA
+0xFEE1 0x78AF
+0xFEE2 0x78C7
+0xFEE3 0x78D3
+0xFEE4 0x96A5
+0xFEE5 0x792E
+0xFEE6 0xE2F8
+0xFEE7 0x78D7
+0xFEE8 0x7934
+0xFEE9 0x78B1
+0xFEEA 0xE2FC
+0xFEEB 0x8FB8
+0xFEEC 0x8884
+0xFEED 0xE2FF
+0xFEEE 0xE300
+0xFEEF 0xE301
+0xFEF0 0x7986
+0xFEF1 0x8900
+0xFEF2 0x6902
+0xFEF3 0x7980
+0xFEF4 0xE306
+0xFEF5 0x799D
+0xFEF6 0xE308
+0xFEF7 0x793C
+0xFEF8 0x79A9
+0xFEF9 0x6E2A
+0xFEFA 0xE30C
+0xFEFB 0x3EA8
+0xFEFC 0x79C6
+0xFEFD 0xE30F
+0xFEFE 0x79D4
--- a/jdk/make/tools/CharsetMapping/dbcs Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/tools/CharsetMapping/dbcs Tue Apr 20 01:24:48 2010 -0700
@@ -1,6 +1,7 @@
#
#clzName csName hisName dbtype pkg ascii b1min b1max b2min b2max
#
+Big5 Big5 Big5 basic sun.nio.cs.ext true 0xa1 0xf9 0x40 0xfe
Johab x-Johab x-Johab basic sun.nio.cs.ext true 0x84 0xf9 0x31 0xfe
EUC_CN GB2312 EUC_CN basic sun.nio.cs.ext true 0xa1 0xf7 0xa1 0xfe
EUC_KR EUC-KR EUC_KR basic sun.nio.cs.ext true 0xa1 0xfd 0xa1 0xfe
--- a/jdk/make/tools/src/build/tools/charsetmapping/CharsetMapping.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.*;
-
-public class CharsetMapping {
- public final static char UNMAPPABLE_DECODING = '\uFFFD';
- public final static int UNMAPPABLE_ENCODING = 0xFFFD;
-
- public static class Entry {
- public int bs; //byte sequence reps
- public int cp; //Unicode codepoint
- public int cp2; //CC of composite
-
- public Entry () {}
- public Entry (int bytes, int cp, int cp2) {
- this.bs = bytes;
- this.cp = cp;
- this.cp2 = cp2;
- }
- }
-
- static Comparator<Entry> comparatorCP =
- new Comparator<Entry>() {
- public int compare(Entry m1, Entry m2) {
- return m1.cp - m2.cp;
- }
- public boolean equals(Object obj) {
- return this == obj;
- }
- };
-
- public static class Parser {
- static final Pattern basic = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)?\\s*+.*");
- static final int gBS = 1;
- static final int gCP = 2;
- static final int gCP2 = 3;
-
- BufferedReader reader;
- boolean closed;
- Matcher matcher;
- int gbs, gcp, gcp2;
-
- public Parser (InputStream in, Pattern p, int gbs, int gcp, int gcp2)
- throws IOException
- {
- this.reader = new BufferedReader(new InputStreamReader(in));
- this.closed = false;
- this.matcher = p.matcher("");
- this.gbs = gbs;
- this.gcp = gcp;
- this.gcp2 = gcp2;
- }
-
- public Parser (InputStream in, Pattern p) throws IOException {
- this(in, p, gBS, gCP, gCP2);
- }
-
- public Parser (InputStream in) throws IOException {
- this(in, basic, gBS, gCP, gCP2);
- }
-
- protected boolean isDirective(String line) {
- return line.startsWith("#");
- }
-
- protected Entry parse(Matcher matcher, Entry mapping) {
- mapping.bs = Integer.parseInt(matcher.group(gbs), 16);
- mapping.cp = Integer.parseInt(matcher.group(gcp), 16);
- if (gcp2 <= matcher.groupCount() &&
- matcher.group(gcp2) != null)
- mapping.cp2 = Integer.parseInt(matcher.group(gcp2), 16);
- else
- mapping.cp2 = 0;
- return mapping;
- }
-
- public Entry next() throws Exception {
- return next(new Entry());
- }
-
- // returns null and closes the input stream if the eof has beenreached.
- public Entry next(Entry mapping) throws Exception {
- if (closed)
- return null;
- String line;
- while ((line = reader.readLine()) != null) {
- if (isDirective(line))
- continue;
- matcher.reset(line);
- if (!matcher.lookingAt()) {
- //System.out.println("Missed: " + line);
- continue;
- }
- return parse(matcher, mapping);
- }
- reader.close();
- closed = true;
- return null;
- }
- }
-
- // tags of different charset mapping tables
- private final static int MAP_SINGLEBYTE = 0x1; // 0..256 : c
- private final static int MAP_DOUBLEBYTE1 = 0x2; // min..max: c
- private final static int MAP_DOUBLEBYTE2 = 0x3; // min..max: c [DB2]
- private final static int MAP_SUPPLEMENT = 0x5; // db,c
- private final static int MAP_SUPPLEMENT_C2B = 0x6; // c,db
- private final static int MAP_COMPOSITE = 0x7; // db,base,cc
- private final static int MAP_INDEXC2B = 0x8; // index table of c->bb
-
- private static final void writeShort(OutputStream out, int data)
- throws IOException
- {
- out.write((data >>> 8) & 0xFF);
- out.write((data ) & 0xFF);
- }
-
- private static final void writeShortArray(OutputStream out,
- int type,
- int[] array,
- int off,
- int size) // exclusive
- throws IOException
- {
- writeShort(out, type);
- writeShort(out, size);
- for (int i = off; i < size; i++) {
- writeShort(out, array[off+i]);
- }
- }
-
- public static final void writeSIZE(OutputStream out, int data)
- throws IOException
- {
- out.write((data >>> 24) & 0xFF);
- out.write((data >>> 16) & 0xFF);
- out.write((data >>> 8) & 0xFF);
- out.write((data ) & 0xFF);
- }
-
- public static void writeINDEXC2B(OutputStream out, int[] indexC2B)
- throws IOException
- {
- writeShort(out, MAP_INDEXC2B);
- writeShort(out, indexC2B.length);
- int off = 0;
- for (int i = 0; i < indexC2B.length; i++) {
- if (indexC2B[i] != 0) {
- writeShort(out, off);
- off += 256;
- } else {
- writeShort(out, -1);
- }
- }
- }
-
- public static void writeSINGLEBYTE(OutputStream out, int[] sb)
- throws IOException
- {
- writeShortArray(out, MAP_SINGLEBYTE, sb, 0, 256);
- }
-
- private static void writeDOUBLEBYTE(OutputStream out,
- int type,
- int[] db,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- throws IOException
- {
- writeShort(out, type);
- writeShort(out, b1Min);
- writeShort(out, b1Max);
- writeShort(out, b2Min);
- writeShort(out, b2Max);
- writeShort(out, (b1Max - b1Min + 1) * (b2Max - b2Min + 1));
-
- for (int b1 = b1Min; b1 <= b1Max; b1++) {
- for (int b2 = b2Min; b2 <= b2Max; b2++) {
- writeShort(out, db[b1 * 256 + b2]);
- }
- }
- }
- public static void writeDOUBLEBYTE1(OutputStream out,
- int[] db,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- throws IOException
- {
- writeDOUBLEBYTE(out, MAP_DOUBLEBYTE1, db, b1Min, b1Max, b2Min, b2Max);
- }
-
- public static void writeDOUBLEBYTE2(OutputStream out,
- int[] db,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- throws IOException
- {
- writeDOUBLEBYTE(out, MAP_DOUBLEBYTE2, db, b1Min, b1Max, b2Min, b2Max);
- }
-
- // the c2b table is output as well
- public static void writeSUPPLEMENT(OutputStream out, Entry[] supp, int size)
- throws IOException
- {
- writeShort(out, MAP_SUPPLEMENT);
- writeShort(out, size * 2);
- // db at first half, cc at the low half
- for (int i = 0; i < size; i++) {
- writeShort(out, supp[i].bs);
- }
- for (int i = 0; i < size; i++) {
- writeShort(out, supp[i].cp);
- }
-
- //c2b
- writeShort(out, MAP_SUPPLEMENT_C2B);
- writeShort(out, size*2);
- Arrays.sort(supp, 0, size, comparatorCP);
- for (int i = 0; i < size; i++) {
- writeShort(out, supp[i].cp);
- }
- for (int i = 0; i < size; i++) {
- writeShort(out, supp[i].bs);
- }
- }
-
- public static void writeCOMPOSITE(OutputStream out, Entry[] comp, int size)
- throws IOException
- {
- writeShort(out, MAP_COMPOSITE);
- writeShort(out, size*3);
- // comp is sorted already
- for (int i = 0; i < size; i++) {
- writeShort(out, (char)comp[i].bs);
- writeShort(out, (char)comp[i].cp);
- writeShort(out, (char)comp[i].cp2);
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,236 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class DBCS {
+ // pattern used by this class to read in mapping table
+ static Pattern mPattern = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)(?:\\s++#.*)?");
+
+ public static void genClass(String args[]) throws Exception {
+
+ Scanner s = new Scanner(new File(args[0], args[2]));
+ while (s.hasNextLine()) {
+ String line = s.nextLine();
+ if (line.startsWith("#") || line.length() == 0)
+ continue;
+ String[] fields = line.split("\\s+");
+ if (fields.length < 10) {
+ System.err.println("Misconfiged sbcs line <" + line + ">?");
+ continue;
+ }
+ String clzName = fields[0];
+ String csName = fields[1];
+ String hisName = ("null".equals(fields[2]))?null:fields[2];
+ String type = fields[3].toUpperCase();
+ if ("BASIC".equals(type))
+ type = "";
+ else
+ type = "_" + type;
+ String pkgName = fields[4];
+ boolean isASCII = Boolean.valueOf(fields[5]);
+ int b1Min = toInteger(fields[6]);
+ int b1Max = toInteger(fields[7]);
+ int b2Min = toInteger(fields[8]);
+ int b2Max = toInteger(fields[9]);
+ System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
+ genClass0(args[0], args[1], "DoubleByte-X.java.template",
+ clzName, csName, hisName, pkgName,
+ isASCII, type,
+ b1Min, b1Max, b2Min, b2Max);
+ }
+ }
+
+ static int toInteger(String s) {
+ if (s.startsWith("0x") || s.startsWith("0X"))
+ return Integer.valueOf(s.substring(2), 16);
+ else
+ return Integer.valueOf(s);
+ }
+
+ private static void genClass0(String srcDir, String dstDir, String template,
+ String clzName,
+ String csName,
+ String hisName,
+ String pkgName,
+ boolean isASCII,
+ String type,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ throws Exception
+ {
+
+ StringBuilder b2cSB = new StringBuilder();
+ StringBuilder b2cNRSB = new StringBuilder();
+ StringBuilder c2bNRSB = new StringBuilder();
+
+ char[] db = new char[0x10000];
+ char[] c2bIndex = new char[0x100];
+ int c2bOff = 0x100; // first 0x100 for unmappable segs
+
+ Arrays.fill(db, UNMAPPABLE_DECODING);
+ Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
+
+ char[] b2cIndex = new char[0x100];
+ Arrays.fill(b2cIndex, UNMAPPABLE_DECODING);
+
+ // (1)read in .map to parse all b->c entries
+ FileInputStream in = new FileInputStream(new File(srcDir, clzName + ".map"));
+ Parser p = new Parser(in, mPattern);
+ Entry e = null;
+ while ((e = p.next()) != null) {
+ db[e.bs] = (char)e.cp;
+
+ if (e.bs > 0x100 && // db
+ b2cIndex[e.bs>>8] == UNMAPPABLE_DECODING) {
+ b2cIndex[e.bs>>8] = 1;
+ }
+
+ if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+ c2bOff += 0x100;
+ c2bIndex[e.cp>>8] = 1;
+ }
+ }
+ Output out = new Output(new Formatter(b2cSB));
+ out.format("%n static final String b2cSBStr =%n");
+ out.format(db, 0x00, 0x100, ";");
+
+ out.format("%n static final String[] b2cStr = {%n");
+ for (int i = 0; i < 0x100; i++) {
+ if (b2cIndex[i] == UNMAPPABLE_DECODING) {
+ out.format(" null,%n"); //unmappable segments
+ } else {
+ out.format(db, i, b2Min, b2Max, ",");
+ }
+ }
+
+ out.format(" };%n");
+ out.close();
+
+ // (2)now parse the .nr file which includes "b->c" non-roundtrip entries
+ File f = new File(srcDir, clzName + ".nr");
+ if (f.exists()) {
+ StringBuilder sb = new StringBuilder();
+ in = new FileInputStream(f);
+ p = new Parser(in, mPattern);
+ e = null;
+ while ((e = p.next()) != null) {
+ // A <b,c> pair
+ sb.append((char)e.bs);
+ sb.append((char)e.cp);
+ }
+ char[] nr = sb.toString().toCharArray();
+ out = new Output(new Formatter(b2cNRSB));
+ out.format("String b2cNR =%n");
+ out.format(nr, 0, nr.length, ";");
+ out.close();
+ } else {
+ b2cNRSB.append("String b2cNR = null;");
+ }
+
+ // (3)finally the .c2b file which includes c->b non-roundtrip entries
+ f = new File(srcDir, clzName + ".c2b");
+ if (f.exists()) {
+ StringBuilder sb = new StringBuilder();
+ in = new FileInputStream(f);
+ p = new Parser(in, mPattern);
+ e = null;
+ while ((e = p.next()) != null) {
+ // A <b,c> pair
+ if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+ c2bOff += 0x100;
+ c2bIndex[e.cp>>8] = 1;
+ }
+ sb.append((char)e.bs);
+ sb.append((char)e.cp);
+ }
+ char[] nr = sb.toString().toCharArray();
+ out = new Output(new Formatter(c2bNRSB));
+ out.format("String c2bNR =%n");
+ out.format(nr, 0, nr.length, ";");
+ out.close();
+ } else {
+ c2bNRSB.append("String c2bNR = null;");
+ }
+
+ // (4)it's time to generate the source file
+ String b2c = b2cSB.toString();
+ String b2cNR = b2cNRSB.toString();
+ String c2bNR = c2bNRSB.toString();
+
+ Scanner s = new Scanner(new File(srcDir, template));
+ PrintStream ops = new PrintStream(new FileOutputStream(
+ new File(dstDir, clzName + ".java")));
+ if (hisName == null)
+ hisName = "";
+
+ while (s.hasNextLine()) {
+ String line = s.nextLine();
+ if (line.indexOf("$") == -1) {
+ ops.println(line);
+ continue;
+ }
+ line = line.replace("$PACKAGE$" , pkgName)
+ .replace("$IMPLEMENTS$", (hisName == null)?
+ "" : "implements HistoricallyNamedCharset")
+ .replace("$NAME_CLZ$", clzName)
+ .replace("$NAME_ALIASES$",
+ "sun.nio.cs".equals(pkgName) ?
+ "StandardCharsets.aliases_" + clzName :
+ "ExtendedCharsets.aliasesFor(\"" + csName + "\")")
+ .replace("$NAME_CS$" , csName)
+ .replace("$CONTAINS$",
+ "MS932".equals(clzName)?
+ "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof JIS_X_0201) || (cs instanceof " + clzName + "));":
+ (isASCII ?
+ "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));":
+ "return (cs instanceof " + clzName + ");"))
+ .replace("$HISTORICALNAME$",
+ (hisName == null)? "" :
+ " public String historicalName() { return \"" + hisName + "\"; }")
+ .replace("$DECTYPE$", type)
+ .replace("$ENCTYPE$", type)
+ .replace("$B1MIN$" , "0x" + Integer.toString(b1Min, 16))
+ .replace("$B1MAX$" , "0x" + Integer.toString(b1Max, 16))
+ .replace("$B2MIN$" , "0x" + Integer.toString(b2Min, 16))
+ .replace("$B2MAX$" , "0x" + Integer.toString(b2Max, 16))
+ .replace("$B2C$", b2c)
+ .replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16))
+ .replace("$NONROUNDTRIP_B2C$", b2cNR)
+ .replace("$NONROUNDTRIP_C2B$", c2bNR);
+
+ ops.println(line);
+ }
+ ops.close();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,177 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class EUC_TW {
+
+ static char[] toCharArray(int[] db,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ {
+ char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
+ int off = 0;
+ for (int b1 = b1Min; b1 <= b1Max; b1++) {
+ for (int b2 = b2Min; b2 <= b2Max; b2++) {
+ ca[off++] = (char)(db[b1 * 256 + b2] & 0xffff);
+ }
+ }
+ return ca;
+ }
+
+ static char[] toCharArray(byte[] ba,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ {
+ char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
+ int off = 0;
+ for (int b1 = b1Min; b1 <= b1Max; b1++) {
+ int b2 = b2Min;
+ while (b2 <= b2Max) {
+ ca[off++] = (char)(((ba[b1 * 256 + b2++] & 0xff) << 8) |
+ (ba[b1 * 256 + b2++] & 0xff));
+ }
+ }
+ return ca;
+ }
+
+ private static int initC2BIndex(char[] index) {
+ int off = 0;
+ for (int i = 0; i < index.length; i++) {
+ if (index[i] != 0) {
+ index[i] = (char)off;
+ off += 0x100;
+ } else {
+ index[i] = UNMAPPABLE_ENCODING;
+ }
+ }
+ return off;
+ }
+
+ private static Pattern euctw = Pattern.compile("(?:8ea)?(\\p{XDigit}++)\\s++(\\p{XDigit}++)?\\s*+.*");
+
+ static void genClass(String args[]) throws Exception
+ {
+ InputStream is = new FileInputStream(new File(args[0], "euc_tw.map"));
+ PrintStream ps = new PrintStream(new File(args[1], "EUC_TWMapping.java"),
+ "ISO-8859-1");
+ String copyright = getCopyright(new File(args[3]));
+
+
+ // ranges of byte1 and byte2, something should come from a "config" file
+ int b1Min = 0xa1;
+ int b1Max = 0xfe;
+ int b2Min = 0xa1;
+ int b2Max = 0xfe;
+
+ try {
+ int[][] db = new int[8][0x10000]; // doublebyte
+ byte[] suppFlag = new byte[0x10000]; // doublebyte
+ char[] indexC2B = new char[256];
+ char[] indexC2BSupp = new char[256];
+
+ for (int i = 0; i < 8; i++)
+ for (int j = 0; j < 0x10000; j++)
+ db[i][j] = UNMAPPABLE_DECODING;
+
+ Parser p = new Parser(is, euctw);
+ Entry e = null;
+ while ((e = p.next()) != null) {
+ int plane = 0;
+ if (e.bs >= 0x10000) {
+ plane = ((e.bs >> 16) & 0xff) - 1;
+ if (plane >= 14)
+ plane = 7;
+ e.bs = e.bs & 0xffff;
+ }
+ db[plane][e.bs] = e.cp;
+ if (e.cp < 0x10000) {
+ indexC2B[e.cp>>8] = 1;
+ } else {
+ indexC2BSupp[(e.cp&0xffff)>>8] = 1;
+ suppFlag[e.bs] |= (1 << plane);
+ }
+ }
+
+ StringBuilder sb = new StringBuilder();
+ Output out = new Output(new Formatter(sb));
+
+ out.format(copyright);
+ out.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
+ out.format("package sun.nio.cs.ext;%n%n");
+ out.format("class EUC_TWMapping {%n%n");
+
+ // boundaries
+ out.format(" final static int b1Min = 0x%x;%n", b1Min);
+ out.format(" final static int b1Max = 0x%x;%n", b1Max);
+ out.format(" final static int b2Min = 0x%x;%n", b2Min);
+ out.format(" final static int b2Max = 0x%x;%n", b2Max);
+
+ // b2c tables
+ out.format("%n final static String[] b2c = {%n");
+ for (int plane = 0; plane < 8; plane++) {
+ out.format(" // Plane %d%n", plane);
+ out.format(toCharArray(db[plane], b1Min, b1Max, b2Min, b2Max),
+ ",");
+ out.format("%n");
+ }
+ out.format(" };%n");
+
+ // c2bIndex
+ out.format("%n static final int C2BSIZE = 0x%x;%n",
+ initC2BIndex(indexC2B));
+ out.format("%n static char[] c2bIndex = new char[] {%n");
+ out.format(indexC2B);
+ out.format(" };%n");
+
+ // c2bIndexSupp
+ out.format("%n static final int C2BSUPPSIZE = 0x%x;%n",
+ initC2BIndex(indexC2BSupp));
+ out.format("%n static char[] c2bSuppIndex = new char[] {%n");
+ out.format(indexC2BSupp);
+ out.format(" };%n");
+
+ // suppFlags
+ out.format("%n static String b2cIsSuppStr =%n");
+ out.format(toCharArray(suppFlag, b1Min, b1Max, b2Min, b2Max),
+ ";");
+ out.format("}");
+ out.close();
+
+ ps.println(sb.toString());
+ ps.close();
+ } catch (Exception x) {
+ x.printStackTrace();
+ }
+ }
+}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateDBCS.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,287 +0,0 @@
-/*
- * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-import java.io.*;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateDBCS {
- // pattern used by this class to read in mapping table
- static Pattern mPattern = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)(?:\\s++#.*)?");
- public static void genDBCS(String args[]) throws Exception {
-
- Scanner s = new Scanner(new File(args[0], args[2]));
- while (s.hasNextLine()) {
- String line = s.nextLine();
- if (line.startsWith("#") || line.length() == 0)
- continue;
- String[] fields = line.split("\\s+");
- if (fields.length < 10) {
- System.err.println("Misconfiged sbcs line <" + line + ">?");
- continue;
- }
- String clzName = fields[0];
- String csName = fields[1];
- String hisName = ("null".equals(fields[2]))?null:fields[2];
- String type = fields[3].toUpperCase();
- if ("BASIC".equals(type))
- type = "";
- else
- type = "_" + type;
- String pkgName = fields[4];
- boolean isASCII = Boolean.valueOf(fields[5]);
- int b1Min = toInteger(fields[6]);
- int b1Max = toInteger(fields[7]);
- int b2Min = toInteger(fields[8]);
- int b2Max = toInteger(fields[9]);
- System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
- genClass(args[0], args[1], "DoubleByte-X.java.template",
- clzName, csName, hisName, pkgName,
- isASCII, type,
- b1Min, b1Max, b2Min, b2Max);
- }
- }
-
- private static int toInteger(String s) {
- if (s.startsWith("0x") || s.startsWith("0X"))
- return Integer.valueOf(s.substring(2), 16);
- else
- return Integer.valueOf(s);
- }
-
- private static void outString(Formatter out,
- char[] cc, int off, int end,
- String closure)
- {
- while (off < end) {
- out.format(" \"");
- for (int j = 0; j < 8; j++) {
- if (off == end)
- break;
- char c = cc[off++];
- switch (c) {
- case '\b':
- out.format("\\b"); break;
- case '\t':
- out.format("\\t"); break;
- case '\n':
- out.format("\\n"); break;
- case '\f':
- out.format("\\f"); break;
- case '\r':
- out.format("\\r"); break;
- case '\"':
- out.format("\\\""); break;
- case '\'':
- out.format("\\'"); break;
- case '\\':
- out.format("\\\\"); break;
- default:
- out.format("\\u%04X", c & 0xffff);
- }
- }
- if (off == end)
- out.format("\" %s%n", closure);
- else
- out.format("\" + %n");
- }
- }
-
- private static void outString(Formatter out,
- char[] db,
- int b1,
- int b2Min, int b2Max,
- String closure)
- {
- char[] cc = new char[b2Max - b2Min + 1];
- int off = 0;
- for (int b2 = b2Min; b2 <= b2Max; b2++) {
- cc[off++] = db[(b1 << 8) | b2];
- }
- outString(out, cc, 0, cc.length, closure);
- }
-
- private static void genClass(String srcDir, String dstDir, String template,
- String clzName,
- String csName,
- String hisName,
- String pkgName,
- boolean isASCII,
- String type,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- throws Exception
- {
-
- StringBuilder b2cSB = new StringBuilder();
- StringBuilder b2cNRSB = new StringBuilder();
- StringBuilder c2bNRSB = new StringBuilder();
-
- char[] db = new char[0x10000];
- char[] c2bIndex = new char[0x100];
- int c2bOff = 0x100; // first 0x100 for unmappable segs
-
- Arrays.fill(db, UNMAPPABLE_DECODING);
- Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
-
- char[] b2cIndex = new char[0x100];
- Arrays.fill(b2cIndex, UNMAPPABLE_DECODING);
-
- // (1)read in .map to parse all b->c entries
- FileInputStream in = new FileInputStream(new File(srcDir, clzName + ".map"));
- Parser p = new Parser(in, mPattern);
- Entry e = null;
- while ((e = p.next()) != null) {
- db[e.bs] = (char)e.cp;
-
- if (e.bs > 0x100 && // db
- b2cIndex[e.bs>>8] == UNMAPPABLE_DECODING) {
- b2cIndex[e.bs>>8] = 1;
- }
-
- if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
- c2bOff += 0x100;
- c2bIndex[e.cp>>8] = 1;
- }
- }
- Formatter fm = new Formatter(b2cSB);
- fm.format("%n static final String b2cSBStr =%n");
- outString(fm, db, 0x00, 0x100, ";");
-
- fm.format("%n static final String[] b2cStr = {%n");
- for (int i = 0; i < 0x100; i++) {
- if (b2cIndex[i] == UNMAPPABLE_DECODING) {
- fm.format(" null,%n"); //unmappable segments
- } else {
- outString(fm, db, i, b2Min, b2Max, ",");
- }
- }
-
- fm.format(" };%n");
- fm.close();
-
- // (2)now parse the .nr file which includes "b->c" non-roundtrip entries
- File f = new File(srcDir, clzName + ".nr");
- if (f.exists()) {
- StringBuilder sb = new StringBuilder();
- in = new FileInputStream(f);
- p = new Parser(in, mPattern);
- e = null;
- while ((e = p.next()) != null) {
- // A <b,c> pair
- sb.append((char)e.bs);
- sb.append((char)e.cp);
- }
- char[] nr = sb.toString().toCharArray();
- fm = new Formatter(b2cNRSB);
- fm.format("String b2cNR =%n");
- outString(fm, nr, 0, nr.length, ";");
- fm.close();
- } else {
- b2cNRSB.append("String b2cNR = null;");
- }
-
- // (3)finally the .c2b file which includes c->b non-roundtrip entries
- f = new File(srcDir, clzName + ".c2b");
- if (f.exists()) {
- StringBuilder sb = new StringBuilder();
- in = new FileInputStream(f);
- p = new Parser(in, mPattern);
- e = null;
- while ((e = p.next()) != null) {
- // A <b,c> pair
- if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
- c2bOff += 0x100;
- c2bIndex[e.cp>>8] = 1;
- }
- sb.append((char)e.bs);
- sb.append((char)e.cp);
- }
- char[] nr = sb.toString().toCharArray();
- fm = new Formatter(c2bNRSB);
- fm.format("String c2bNR =%n");
- outString(fm, nr, 0, nr.length, ";");
- fm.close();
- } else {
- c2bNRSB.append("String c2bNR = null;");
- }
-
- // (4)it's time to generate the source file
- String b2c = b2cSB.toString();
- String b2cNR = b2cNRSB.toString();
- String c2bNR = c2bNRSB.toString();
-
- Scanner s = new Scanner(new File(srcDir, template));
- PrintStream out = new PrintStream(new FileOutputStream(
- new File(dstDir, clzName + ".java")));
- if (hisName == null)
- hisName = "";
-
- while (s.hasNextLine()) {
- String line = s.nextLine();
- if (line.indexOf("$") == -1) {
- out.println(line);
- continue;
- }
- line = line.replace("$PACKAGE$" , pkgName)
- .replace("$IMPLEMENTS$", (hisName == null)?
- "" : "implements HistoricallyNamedCharset")
- .replace("$NAME_CLZ$", clzName)
- .replace("$NAME_ALIASES$",
- "sun.nio.cs".equals(pkgName) ?
- "StandardCharsets.aliases_" + clzName :
- "ExtendedCharsets.aliasesFor(\"" + csName + "\")")
- .replace("$NAME_CS$" , csName)
- .replace("$CONTAINS$",
- "MS932".equals(clzName)?
- "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof JIS_X_0201) || (cs instanceof " + clzName + "));":
- (isASCII ?
- "return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));":
- "return (cs instanceof " + clzName + ");"))
- .replace("$HISTORICALNAME$",
- (hisName == null)? "" :
- " public String historicalName() { return \"" + hisName + "\"; }")
- .replace("$DECTYPE$", type)
- .replace("$ENCTYPE$", type)
- .replace("$B1MIN$" , "0x" + Integer.toString(b1Min, 16))
- .replace("$B1MAX$" , "0x" + Integer.toString(b1Max, 16))
- .replace("$B2MIN$" , "0x" + Integer.toString(b2Min, 16))
- .replace("$B2MAX$" , "0x" + Integer.toString(b2Max, 16))
- .replace("$B2C$", b2c)
- .replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16))
- .replace("$NONROUNDTRIP_B2C$", b2cNR)
- .replace("$NONROUNDTRIP_C2B$", c2bNR);
-
- out.println(line);
- }
- out.close();
- }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/*
- * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateEUC_TW {
-
- public static void genEUC_TW(String args[]) throws Exception {
- genClass(new FileInputStream(new File(args[0], "euc_tw.map")),
- new PrintStream(new File(args[1], "EUC_TWMapping.java"), "ISO-8859-1"),
- getCopyright(new File(args[3])));
- }
-
- private static String getCopyright(File f) throws IOException {
- Scanner s = new Scanner(f, "ISO-8859-1");
- StringBuilder sb = new StringBuilder();
- while (s.hasNextLine()) {
- String ln = s.nextLine();
- sb.append(ln + "\n");
- // assume we have the copyright as the first comment
- if (ln.matches("^\\s\\*\\/$"))
- break;
- }
- s.close();
- return sb.toString();
- }
-
- private static char[] toCharArray(int[] db,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- {
- char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
- int off = 0;
- for (int b1 = b1Min; b1 <= b1Max; b1++) {
- for (int b2 = b2Min; b2 <= b2Max; b2++) {
- ca[off++] = (char)(db[b1 * 256 + b2] & 0xffff);
- }
- }
- return ca;
- }
-
- private static void toChar(Formatter out, String fmt, char c) {
- switch (c) {
- case '\b':
- out.format("\\b"); break;
- case '\t':
- out.format("\\t"); break;
- case '\n':
- out.format("\\n"); break;
- case '\f':
- out.format("\\f"); break;
- case '\r':
- out.format("\\r"); break;
- case '\"':
- out.format("\\\""); break;
- case '\'':
- out.format("\\'"); break;
- case '\\':
- out.format("\\\\"); break;
- default:
- out.format(fmt, c & 0xffff);
- }
- }
-
- private static void toString(Formatter out, char[] date, String endStr)
- {
- int off = 0;
- int end = date.length;
- while (off < end) {
- out.format(" \"");
- for (int j = 0; j < 8 && off < end; j++) {
- toChar(out, "\\u%04X", date[off++]);
- }
- if (off == end)
- out.format("\"%s%n", endStr);
- else
- out.format("\" +%n");
- }
- }
-
- private static char[] toCharArray(byte[] ba,
- int b1Min, int b1Max,
- int b2Min, int b2Max)
- {
- char[] ca = new char[(b1Max - b1Min + 1) * (b2Max - b2Min + 1)];
- int off = 0;
- for (int b1 = b1Min; b1 <= b1Max; b1++) {
- int b2 = b2Min;
- while (b2 <= b2Max) {
- ca[off++] = (char)(((ba[b1 * 256 + b2++] & 0xff) << 8) |
- (ba[b1 * 256 + b2++] & 0xff));
- }
- }
- return ca;
- }
-
- private static void toCharArray(Formatter out, char[] date) {
- int off = 0;
- int end = date.length;
- while (off < end) {
- out.format(" ");
- for (int j = 0; j < 8 && off < end; j++) {
- toChar(out, "'\\u%04X',", date[off++]);
- }
- out.format("%n");
- }
- }
-
- private static int initC2BIndex(char[] index) {
- int off = 0;
- for (int i = 0; i < index.length; i++) {
- if (index[i] != 0) {
- index[i] = (char)off;
- off += 0x100;
- } else {
- index[i] = CharsetMapping.UNMAPPABLE_ENCODING;
- }
- }
- return off;
- }
-
- private static Pattern euctw = Pattern.compile("(?:8ea)?(\\p{XDigit}++)\\s++(\\p{XDigit}++)?\\s*+.*");
-
- private static void genClass(InputStream is, PrintStream ps, String copyright)
- throws Exception
- {
- // ranges of byte1 and byte2, something should come from a "config" file
- int b1Min = 0xa1;
- int b1Max = 0xfe;
- int b2Min = 0xa1;
- int b2Max = 0xfe;
-
- try {
- int[][] db = new int[8][0x10000]; // doublebyte
- byte[] suppFlag = new byte[0x10000]; // doublebyte
- char[] indexC2B = new char[256];
- char[] indexC2BSupp = new char[256];
-
- for (int i = 0; i < 8; i++)
- for (int j = 0; j < 0x10000; j++)
- db[i][j] = CharsetMapping.UNMAPPABLE_DECODING;
-
- CharsetMapping.Parser p = new CharsetMapping.Parser(is, euctw);
- CharsetMapping.Entry e = null;
- while ((e = p.next()) != null) {
- int plane = 0;
- if (e.bs >= 0x10000) {
- plane = ((e.bs >> 16) & 0xff) - 1;
- if (plane >= 14)
- plane = 7;
- e.bs = e.bs & 0xffff;
- }
- db[plane][e.bs] = e.cp;
- if (e.cp < 0x10000) {
- indexC2B[e.cp>>8] = 1;
- } else {
- indexC2BSupp[(e.cp&0xffff)>>8] = 1;
- suppFlag[e.bs] |= (1 << plane);
- }
- }
-
- StringBuilder out = new StringBuilder();
- Formatter fm = new Formatter(out);
-
- fm.format(copyright);
- fm.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
- fm.format("package sun.nio.cs.ext;%n%n");
- fm.format("class EUC_TWMapping {%n%n");
-
- // boundaries
- fm.format(" final static int b1Min = 0x%x;%n", b1Min);
- fm.format(" final static int b1Max = 0x%x;%n", b1Max);
- fm.format(" final static int b2Min = 0x%x;%n", b2Min);
- fm.format(" final static int b2Max = 0x%x;%n", b2Max);
-
- // b2c tables
- fm.format("%n final static String[] b2c = {%n");
- for (int plane = 0; plane < 8; plane++) {
- fm.format(" // Plane %d%n", plane);
- toString(fm, toCharArray(db[plane],
- b1Min, b1Max, b2Min, b2Max),
- ",");
- fm.format("%n");
- }
- fm.format(" };%n");
-
- // c2bIndex
- fm.format("%n static final int C2BSIZE = 0x%x;%n",
- initC2BIndex(indexC2B));
- fm.format("%n static char[] c2bIndex = new char[] {%n");
- toCharArray(fm, indexC2B);
- fm.format(" };%n");
-
- // c2bIndexSupp
- fm.format("%n static final int C2BSUPPSIZE = 0x%x;%n",
- initC2BIndex(indexC2BSupp));
- fm.format("%n static char[] c2bSuppIndex = new char[] {%n");
- toCharArray(fm, indexC2BSupp);
- fm.format(" };%n");
-
- // suppFlags
- fm.format("%n static String b2cIsSuppStr =%n");
- toString(fm, toCharArray(suppFlag,
- b1Min, b1Max, b2Min, b2Max),
- ";");
-
- fm.format("}");
- fm.close();
-
- ps.println(out.toString());
- ps.close();
- } catch (Exception x) {
- x.printStackTrace();
- }
- }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateMapping.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.regex.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateMapping {
-
- public static void genMapping(String argv[]) throws IOException {
- genDataJIS0213(new FileInputStream(argv[0]),
- new FileOutputStream(argv[1]));
- }
-
- // regex pattern to parse the "jis0213.map" file
- static Pattern sjis0213 = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(?:\\+(\\p{XDigit}++))?\\s++#.*");
- private static void genDataJIS0213(InputStream in, OutputStream out)
- {
- int[] sb = new int[0x100]; // singlebyte
- int[] db = new int[0x10000]; // doublebyte
- int[] indexC2B = new int[256];
- Entry[] supp = new Entry[0x10000];
- Entry[] comp = new Entry[0x100];
- int suppTotal = 0;
- int compTotal = 0;
-
- int b1Min1 = 0x81;
- int b1Max1 = 0x9f;
- int b1Min2 = 0xe0;
- int b1Max2 = 0xfc;
- int b2Min = 0x40;
- int b2Max = 0xfe;
-
- //init
- for (int i = 0; i < 0x80; i++) sb[i] = i;
- for (int i = 0x80; i < 0x100; i++) sb[i] = UNMAPPABLE_DECODING;
- for (int i = 0; i < 0x10000; i++) db[i] = UNMAPPABLE_DECODING;
- try {
- Parser p = new Parser(in, sjis0213);
- Entry e = null;
- while ((e = p.next()) != null) {
- if (e.cp2 != 0) {
- comp[compTotal++] = e;
- } else {
- if (e.cp <= 0xffff) {
- if (e.bs <= 0xff)
- sb[e.bs] = e.cp;
- else
- db[e.bs] = e.cp;
- indexC2B[e.cp>>8] = 1;
- } else {
- supp[suppTotal++] = e;
- }
- }
- }
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- // c2b Index Table, always the first one
- writeINDEXC2B(baos, indexC2B);
- writeSINGLEBYTE(baos, sb);
- writeDOUBLEBYTE1(baos, db, b1Min1, b1Max1, b2Min, b2Max);
- writeDOUBLEBYTE2(baos, db, b1Min2, b1Max2, b2Min, b2Max);
- writeSUPPLEMENT(baos, supp, suppTotal);
- writeCOMPOSITE(baos, comp, compTotal);
- writeSIZE(out, baos.size());
- baos.writeTo(out);
- out.close();
- } catch (Exception x) {
- x.printStackTrace();
- }
- }
-}
--- a/jdk/make/tools/src/build/tools/charsetmapping/GenerateSBCS.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
- * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package build.tools.charsetmapping;
-
-import java.io.*;
-import java.util.Arrays;
-import java.util.ArrayList;
-import java.util.Scanner;
-import java.util.Formatter;
-import java.util.regex.*;
-import java.nio.charset.*;
-import static build.tools.charsetmapping.CharsetMapping.*;
-
-public class GenerateSBCS {
-
- public static void genSBCS(String args[]) throws Exception {
-
- Scanner s = new Scanner(new File(args[0], args[2]));
- while (s.hasNextLine()) {
- String line = s.nextLine();
- if (line.startsWith("#") || line.length() == 0)
- continue;
- String[] fields = line.split("\\s+");
- if (fields.length < 5) {
- System.err.println("Misconfiged sbcs line <" + line + ">?");
- continue;
- }
- String clzName = fields[0];
- String csName = fields[1];
- String hisName = fields[2];
- boolean isASCII = Boolean.valueOf(fields[3]);
- String pkgName = fields[4];
- System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
-
- genClass(args[0], args[1], "SingleByte-X.java.template",
- clzName, csName, hisName, pkgName, isASCII);
- }
- }
-
- private static void toString(char[] sb, int off, int end,
- Formatter out, String closure,
- boolean comment) {
- while (off < end) {
- out.format(" \"");
- for (int j = 0; j < 8; j++) {
- if (off == end)
- break;
- char c = sb[off++];
- switch (c) {
- case '\b':
- out.format("\\b"); break;
- case '\t':
- out.format("\\t"); break;
- case '\n':
- out.format("\\n"); break;
- case '\f':
- out.format("\\f"); break;
- case '\r':
- out.format("\\r"); break;
- case '\"':
- out.format("\\\""); break;
- case '\'':
- out.format("\\'"); break;
- case '\\':
- out.format("\\\\"); break;
- default:
- out.format("\\u%04X", c & 0xffff);
- }
- }
- if (comment) {
- if (off == end)
- out.format("\" %s // 0x%02x - 0x%02x%n",
- closure, off-8, off-1);
- else
- out.format("\" + // 0x%02x - 0x%02x%n",
- off-8, off-1);
- } else {
- if (off == end)
- out.format("\"%s%n", closure);
- else
- out.format("\" +%n");
- }
- }
- }
-
- static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?");
-
- private static void genClass(String srcDir, String dstDir,
- String template,
- String clzName,
- String csName,
- String hisName,
- String pkgName,
- boolean isASCII)
- throws Exception
- {
- StringBuilder b2cSB = new StringBuilder();
- StringBuilder b2cNRSB = new StringBuilder();
- StringBuilder c2bNRSB = new StringBuilder();
-
- char[] sb = new char[0x100];
- char[] c2bIndex = new char[0x100];
- int c2bOff = 0;
- Arrays.fill(sb, UNMAPPABLE_DECODING);
- Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
-
- // (1)read in .map to parse all b->c entries
- FileInputStream in = new FileInputStream(
- new File(srcDir, clzName + ".map"));
- Parser p = new Parser(in, sbmap);
- Entry e = null;
-
- while ((e = p.next()) != null) {
- sb[e.bs] = (char)e.cp;
- if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
- c2bOff += 0x100;
- c2bIndex[e.cp>>8] = 1;
- }
- }
-
- Formatter fm = new Formatter(b2cSB);
- fm.format("%n");
-
- // vm -server shows cc[byte + 128] access is much faster than
- // cc[byte&0xff] so we output the upper segment first
- toString(sb, 0x80, 0x100, fm, "+", true);
- toString(sb, 0x00, 0x80, fm, ";", true);
- fm.close();
-
- // (2)now the .nr file which includes "b->c" non-roundtrip entries
- File f = new File(srcDir, clzName + ".nr");
- if (f.exists()) {
- in = new FileInputStream(f);
- fm = new Formatter(b2cNRSB);
- p = new Parser(in, sbmap);
- e = null;
-
- fm.format("// remove non-roundtrip entries%n");
- fm.format(" b2cMap = b2cTable.toCharArray();%n");
- while ((e = p.next()) != null) {
- fm.format(" b2cMap[%d] = UNMAPPABLE_DECODING;%n",
- (e.bs>=0x80)?(e.bs-0x80):(e.bs+0x80));
- }
- fm.close();
- }
-
- // (3)finally the .c2b file which includes c->b non-roundtrip entries
- f = new File(srcDir, clzName + ".c2b");
- if (f.exists()) {
- in = new FileInputStream(f);
- fm = new Formatter(c2bNRSB);
- p = new Parser(in, sbmap);
- e = null;
- ArrayList<Entry> es = new ArrayList<Entry>();
- while ((e = p.next()) != null) {
- if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
- c2bOff += 0x100;
- c2bIndex[e.cp>>8] = 1;
- }
- es.add(e);
- }
- fm.format("// non-roundtrip c2b only entries%n");
- if (es.size() < 100) {
- fm.format(" c2bNR = new char[%d];%n", es.size() * 2);
- int i = 0;
- for (Entry entry: es) {
- fm.format(" c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n",
- i++, entry.bs, i++, entry.cp);
- }
- } else {
- char[] cc = new char[es.size() * 2];
- int i = 0;
- for (Entry entry: es) {
- cc[i++] = (char)entry.bs;
- cc[i++] = (char)entry.cp;
- }
- fm.format(" c2bNR = (%n");
- toString(cc, 0, i, fm, ").toCharArray();", false);
- }
- fm.close();
- }
-
- // (4)it's time to generate the source file
- String b2c = b2cSB.toString();
- String b2cNR = b2cNRSB.toString();
- String c2bNR = c2bNRSB.toString();
-
- Scanner s = new Scanner(new File(srcDir, template));
- PrintStream out = new PrintStream(new FileOutputStream(
- new File(dstDir, clzName + ".java")));
-
- while (s.hasNextLine()) {
- String line = s.nextLine();
- int i = line.indexOf("$");
- if (i == -1) {
- out.println(line);
- continue;
- }
- if (line.indexOf("$PACKAGE$", i) != -1) {
- line = line.replace("$PACKAGE$", pkgName);
- }
- if (line.indexOf("$NAME_CLZ$", i) != -1) {
- line = line.replace("$NAME_CLZ$", clzName);
- }
- if (line.indexOf("$NAME_CS$", i) != -1) {
- line = line.replace("$NAME_CS$", csName);
- }
- if (line.indexOf("$NAME_ALIASES$", i) != -1) {
- if ("sun.nio.cs".equals(pkgName))
- line = line.replace("$NAME_ALIASES$",
- "StandardCharsets.aliases_" + clzName);
- else
- line = line.replace("$NAME_ALIASES$",
- "ExtendedCharsets.aliasesFor(\"" + csName + "\")");
- }
- if (line.indexOf("$NAME_HIS$", i) != -1) {
- line = line.replace("$NAME_HIS$", hisName);
- }
- if (line.indexOf("$CONTAINS$", i) != -1) {
- if (isASCII)
- line = " return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));";
- else
- line = " return (cs instanceof " + clzName + ");";
- }
- if (line.indexOf("$B2CTABLE$") != -1) {
- line = line.replace("$B2CTABLE$", b2c);
- }
- if (line.indexOf("$C2BLENGTH$") != -1) {
- line = line.replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16));
- }
- if (line.indexOf("$NONROUNDTRIP_B2C$") != -1) {
- if (b2cNR.length() == 0)
- continue;
- line = line.replace("$NONROUNDTRIP_B2C$", b2cNR);
- }
-
- if (line.indexOf("$NONROUNDTRIP_C2B$") != -1) {
- if (c2bNR.length() == 0)
- continue;
- line = line.replace("$NONROUNDTRIP_C2B$", c2bNR);
- }
- out.println(line);
- }
- out.close();
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,190 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class HKSCS {
+
+ // HKSCS2001.map has the third column for "UnicodeAlternate", which
+ // is for c->b non-roundtrip mapping.
+ // For HKSCS2008, those non-roundtrip mappings are in .nr file
+ private static Pattern hkscs =
+ Pattern.compile("(?:0x)?+(\\p{XDigit}++)\\s++(?:0x|U\\+)?+(\\p{XDigit}++)?\\s*+(?:0x|U\\+)?(\\p{XDigit}++)?\\s*+.*");
+
+ static void genClass(String args[]) throws Exception {
+
+ // hkscs2008
+ genClass0(new FileInputStream(new File(args[0], "HKSCS2008.map")),
+ new FileInputStream(new File(args[0], "HKSCS2008.c2b")),
+ new PrintStream(new File(args[1], "HKSCSMapping.java"),
+ "ISO-8859-1"),
+ "HKSCSMapping",
+ getCopyright(new File(args[3])));
+
+
+ // xp2001
+ genClass0(new FileInputStream(new File(args[0], "HKSCS_XP.map")),
+ null,
+ new PrintStream(new File(args[1], "HKSCS_XPMapping.java"),
+ "ISO-8859-1"),
+ "HKSCS_XPMapping",
+ getCopyright(new File(args[3])));
+
+ // hkscs2001
+ genClass0(new FileInputStream(new File(args[0], "HKSCS2001.map")),
+ new FileInputStream(new File(args[0], "HKSCS2001.c2b")),
+ new PrintStream(new File(args[1], "HKSCS2001Mapping.java"),
+ "ISO-8859-1"),
+ "HKSCS2001Mapping",
+ getCopyright(new File(args[3])));
+ }
+
+ static void genClass0(InputStream isB2C,
+ InputStream isC2B,
+ PrintStream ps,
+ String clzName,
+ String copyright)
+ throws Exception
+ {
+ // ranges of byte1 and byte2, something should come from a "config" file
+ int b1Min = 0x87;
+ int b1Max = 0xfe;
+ int b2Min = 0x40;
+ int b2Max = 0xfe;
+
+ try {
+ char[] bmp = new char[0x10000];
+ char[] supp = new char[0x10000];
+
+ boolean[] b2cBmp = new boolean[0x100];
+ boolean[] b2cSupp = new boolean[0x100];
+ // pua should be in range of e000-f8ff. Expand
+ // it to 0xf93b becase the hkscs2001.c2b has
+ // the f920-f93b filled
+ //char[] pua = new char[0xF8FF - 0xE000 + 1];
+ char[] pua = new char[0xF93b - 0xE000 + 1];
+ boolean hasSupp = false;
+ boolean hasPua = false;
+
+ Arrays.fill(bmp, UNMAPPABLE_DECODING);
+ Arrays.fill(supp, UNMAPPABLE_DECODING);
+ Arrays.fill(pua, UNMAPPABLE_DECODING);
+
+ Parser p = new Parser(isB2C, hkscs);
+ Entry e = null;
+ while ((e = p.next()) != null) {
+ if (e.cp >= 0x10000) {
+ supp[e.bs] = (char)e.cp;
+ b2cSupp[e.bs>>8] = true;
+ hasSupp = true;
+ } else {
+ bmp[e.bs] = (char)e.cp;
+ b2cBmp[e.bs>>8] = true;
+ }
+ if (e.cp2 != 0 && e.cp2 >= 0xe000 && e.cp2 <= 0xf8ff) {
+ hasPua = true;
+ pua[e.cp2 - 0xE000] = (char)e.bs;
+ }
+ }
+
+ if (isC2B != null) {
+ p = new Parser(isC2B, hkscs);
+ e = null;
+ while ((e = p.next()) != null) {
+ pua[e.cp - 0xE000] = (char)e.bs;
+ }
+ hasPua = true;
+ }
+
+ StringBuilder sb = new StringBuilder();
+ Output out = new Output(new Formatter(sb));
+
+ out.format(copyright);
+ out.format("%n// -- This file was mechanically generated: Do not edit! -- //%n");
+ out.format("package sun.nio.cs.ext;%n%n");
+ out.format("class %s {%n%n", clzName);
+
+ /* hardcoded in sun.nio.cs.ext.HKSCS.java
+ out.format(" final static int b1Min = 0x%x;%n", b1Min);
+ out.format(" final static int b1Max = 0x%x;%n", b1Max);
+ out.format(" final static int b2Min = 0x%x;%n", b2Min);
+ out.format(" final static int b2Max = 0x%x;%n", b2Max);
+ */
+
+ // bmp tables
+ out.format("%n static final String[] b2cBmpStr = new String[] {%n");
+ for (int i = 0; i < 0x100; i++) {
+ if (b2cBmp[i])
+ out.format(bmp, i, b2Min, b2Max, ",");
+ else
+ out.format(" null,%n"); //unmappable segments
+ }
+ out.format(" };%n");
+
+ // supp tables
+ out.format("%n static final String[] b2cSuppStr =");
+ if (hasSupp) {
+ out.format(" new String[] {%n");
+ for (int i = 0; i < 0x100; i++) {
+ if (b2cSupp[i])
+ out.format(supp, i, b2Min, b2Max, ",");
+ else
+ out.format(" null,%n"); //unmappable segments
+ }
+ out.format(" };%n");
+ } else {
+ out.format(" null;%n");
+ }
+
+ // private area tables
+ out.format("%n final static String pua =");
+ if (hasPua) {
+ out.format("%n");
+ out.format(pua, 0, pua.length, ";");
+ } else {
+ out.format(" null;%n");
+ }
+ out.format("%n");
+ out.format("}");
+
+ out.close();
+
+ ps.println(sb.toString());
+ ps.close();
+
+ } catch (Exception x) {
+ x.printStackTrace();
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/JIS0213.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,244 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.regex.*;
+import java.util.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class JIS0213 {
+
+ // regex pattern to parse the "jis0213.map" file
+ static Pattern sjis0213 = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(?:\\+(\\p{XDigit}++))?\\s++#.*");
+
+ static void genClass(String argv[]) throws IOException
+ {
+ InputStream in = new FileInputStream(argv[0]) ;
+ OutputStream out = new FileOutputStream(argv[1]);
+
+ int[] sb = new int[0x100]; // singlebyte
+ int[] db = new int[0x10000]; // doublebyte
+ int[] indexC2B = new int[256];
+ Entry[] supp = new Entry[0x10000];
+ Entry[] comp = new Entry[0x100];
+ int suppTotal = 0;
+ int compTotal = 0;
+
+ int b1Min1 = 0x81;
+ int b1Max1 = 0x9f;
+ int b1Min2 = 0xe0;
+ int b1Max2 = 0xfc;
+ int b2Min = 0x40;
+ int b2Max = 0xfe;
+
+ //init
+ for (int i = 0; i < 0x80; i++) sb[i] = i;
+ for (int i = 0x80; i < 0x100; i++) sb[i] = UNMAPPABLE_DECODING;
+ for (int i = 0; i < 0x10000; i++) db[i] = UNMAPPABLE_DECODING;
+ try {
+ Parser p = new Parser(in, sjis0213);
+ Entry e = null;
+ while ((e = p.next()) != null) {
+ if (e.cp2 != 0) {
+ comp[compTotal++] = e;
+ } else {
+ if (e.cp <= 0xffff) {
+ if (e.bs <= 0xff)
+ sb[e.bs] = e.cp;
+ else
+ db[e.bs] = e.cp;
+ indexC2B[e.cp>>8] = 1;
+ } else {
+ supp[suppTotal++] = e;
+ }
+ }
+ }
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ // c2b Index Table, always the first one
+ writeINDEXC2B(baos, indexC2B);
+ writeSINGLEBYTE(baos, sb);
+ writeDOUBLEBYTE1(baos, db, b1Min1, b1Max1, b2Min, b2Max);
+ writeDOUBLEBYTE2(baos, db, b1Min2, b1Max2, b2Min, b2Max);
+ writeSUPPLEMENT(baos, supp, suppTotal);
+ writeCOMPOSITE(baos, comp, compTotal);
+ writeSIZE(out, baos.size());
+ baos.writeTo(out);
+ out.close();
+ } catch (Exception x) {
+ x.printStackTrace();
+ }
+ }
+
+ static Comparator<Entry> comparatorCP =
+ new Comparator<Entry>() {
+ public int compare(Entry m1, Entry m2) {
+ return m1.cp - m2.cp;
+ }
+ public boolean equals(Object obj) {
+ return this == obj;
+ }
+ };
+
+ // tags of different charset mapping tables
+ private final static int MAP_SINGLEBYTE = 0x1; // 0..256 : c
+ private final static int MAP_DOUBLEBYTE1 = 0x2; // min..max: c
+ private final static int MAP_DOUBLEBYTE2 = 0x3; // min..max: c [DB2]
+ private final static int MAP_SUPPLEMENT = 0x5; // db,c
+ private final static int MAP_SUPPLEMENT_C2B = 0x6; // c,db
+ private final static int MAP_COMPOSITE = 0x7; // db,base,cc
+ private final static int MAP_INDEXC2B = 0x8; // index table of c->bb
+
+ private static final void writeShort(OutputStream out, int data)
+ throws IOException
+ {
+ out.write((data >>> 8) & 0xFF);
+ out.write((data ) & 0xFF);
+ }
+
+ private static final void writeShortArray(OutputStream out,
+ int type,
+ int[] array,
+ int off,
+ int size) // exclusive
+ throws IOException
+ {
+ writeShort(out, type);
+ writeShort(out, size);
+ for (int i = off; i < size; i++) {
+ writeShort(out, array[off+i]);
+ }
+ }
+
+ private static final void writeSIZE(OutputStream out, int data)
+ throws IOException
+ {
+ out.write((data >>> 24) & 0xFF);
+ out.write((data >>> 16) & 0xFF);
+ out.write((data >>> 8) & 0xFF);
+ out.write((data ) & 0xFF);
+ }
+
+ private static void writeINDEXC2B(OutputStream out, int[] indexC2B)
+ throws IOException
+ {
+ writeShort(out, MAP_INDEXC2B);
+ writeShort(out, indexC2B.length);
+ int off = 0;
+ for (int i = 0; i < indexC2B.length; i++) {
+ if (indexC2B[i] != 0) {
+ writeShort(out, off);
+ off += 256;
+ } else {
+ writeShort(out, -1);
+ }
+ }
+ }
+
+ private static void writeSINGLEBYTE(OutputStream out, int[] sb)
+ throws IOException
+ {
+ writeShortArray(out, MAP_SINGLEBYTE, sb, 0, 256);
+ }
+
+ private static void writeDOUBLEBYTE(OutputStream out,
+ int type,
+ int[] db,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ throws IOException
+ {
+ writeShort(out, type);
+ writeShort(out, b1Min);
+ writeShort(out, b1Max);
+ writeShort(out, b2Min);
+ writeShort(out, b2Max);
+ writeShort(out, (b1Max - b1Min + 1) * (b2Max - b2Min + 1));
+
+ for (int b1 = b1Min; b1 <= b1Max; b1++) {
+ for (int b2 = b2Min; b2 <= b2Max; b2++) {
+ writeShort(out, db[b1 * 256 + b2]);
+ }
+ }
+ }
+
+ private static void writeDOUBLEBYTE1(OutputStream out,
+ int[] db,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ throws IOException
+ {
+ writeDOUBLEBYTE(out, MAP_DOUBLEBYTE1, db, b1Min, b1Max, b2Min, b2Max);
+ }
+
+ private static void writeDOUBLEBYTE2(OutputStream out,
+ int[] db,
+ int b1Min, int b1Max,
+ int b2Min, int b2Max)
+ throws IOException
+ {
+ writeDOUBLEBYTE(out, MAP_DOUBLEBYTE2, db, b1Min, b1Max, b2Min, b2Max);
+ }
+
+ // the c2b table is output as well
+ private static void writeSUPPLEMENT(OutputStream out, Entry[] supp, int size)
+ throws IOException
+ {
+ writeShort(out, MAP_SUPPLEMENT);
+ writeShort(out, size * 2);
+ // db at first half, cc at the low half
+ for (int i = 0; i < size; i++) {
+ writeShort(out, supp[i].bs);
+ }
+ for (int i = 0; i < size; i++) {
+ writeShort(out, supp[i].cp);
+ }
+
+ //c2b
+ writeShort(out, MAP_SUPPLEMENT_C2B);
+ writeShort(out, size*2);
+ Arrays.sort(supp, 0, size, comparatorCP);
+ for (int i = 0; i < size; i++) {
+ writeShort(out, supp[i].cp);
+ }
+ for (int i = 0; i < size; i++) {
+ writeShort(out, supp[i].bs);
+ }
+ }
+
+ private static void writeCOMPOSITE(OutputStream out, Entry[] comp, int size)
+ throws IOException
+ {
+ writeShort(out, MAP_COMPOSITE);
+ writeShort(out, size*3);
+ // comp is sorted already
+ for (int i = 0; i < size; i++) {
+ writeShort(out, (char)comp[i].bs);
+ writeShort(out, (char)comp[i].cp);
+ writeShort(out, (char)comp[i].cp2);
+ }
+ }
+}
--- a/jdk/make/tools/src/build/tools/charsetmapping/Main.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/tools/src/build/tools/charsetmapping/Main.java Tue Apr 20 01:24:48 2010 -0700
@@ -32,23 +32,19 @@
public static void main(String args[]) throws Exception {
if (args.length < 3 ) {
- System.out.println("Usage: java -jar charsetmapping.jar src dst mType...");
+ System.out.println("Usage: java -jar charsetmapping.jar src dst mType [copyrightSrc]");
System.exit(1);
}
if ("sbcs".equals(args[2]) || "extsbcs".equals(args[2])) {
- GenerateSBCS.genSBCS(args);
+ SBCS.genClass(args);
} else if ("dbcs".equals(args[2])) {
- GenerateDBCS.genDBCS(args);
-
+ DBCS.genClass(args);
} else if ("euctw".equals(args[2])) {
- if (args.length != 4) {
- System.out.println("Usage: java -jar charsetmapping.jar srcDir dstDir euctw copyrightSrc");
- System.exit(1);
- }
- GenerateEUC_TW.genEUC_TW(args);
+ EUC_TW.genClass(args);
} else if ("sjis0213".equals(args[2])) {
- GenerateMapping.genMapping(args);
+ JIS0213.genClass(args);
+ } else if ("hkscs".equals(args[2])) {
+ HKSCS.genClass(args);
}
}
-
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,269 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.*;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Scanner;
+import java.util.Formatter;
+import java.util.regex.*;
+import java.nio.charset.*;
+import static build.tools.charsetmapping.Utils.*;
+
+public class SBCS {
+
+ public static void genClass(String args[]) throws Exception {
+
+ Scanner s = new Scanner(new File(args[0], args[2]));
+ while (s.hasNextLine()) {
+ String line = s.nextLine();
+ if (line.startsWith("#") || line.length() == 0)
+ continue;
+ String[] fields = line.split("\\s+");
+ if (fields.length < 5) {
+ System.err.println("Misconfiged sbcs line <" + line + ">?");
+ continue;
+ }
+ String clzName = fields[0];
+ String csName = fields[1];
+ String hisName = fields[2];
+ boolean isASCII = Boolean.valueOf(fields[3]);
+ String pkgName = fields[4];
+ System.out.printf("%s,%s,%s,%b,%s%n", clzName, csName, hisName, isASCII, pkgName);
+
+ genClass0(args[0], args[1], "SingleByte-X.java.template",
+ clzName, csName, hisName, pkgName, isASCII);
+ }
+ }
+
+ private static void toString(char[] sb, int off, int end,
+ Formatter out, String closure,
+ boolean comment) {
+ while (off < end) {
+ out.format(" \"");
+ for (int j = 0; j < 8; j++) {
+ if (off == end)
+ break;
+ char c = sb[off++];
+ switch (c) {
+ case '\b':
+ out.format("\\b"); break;
+ case '\t':
+ out.format("\\t"); break;
+ case '\n':
+ out.format("\\n"); break;
+ case '\f':
+ out.format("\\f"); break;
+ case '\r':
+ out.format("\\r"); break;
+ case '\"':
+ out.format("\\\""); break;
+ case '\'':
+ out.format("\\'"); break;
+ case '\\':
+ out.format("\\\\"); break;
+ default:
+ out.format("\\u%04X", c & 0xffff);
+ }
+ }
+ if (comment) {
+ if (off == end)
+ out.format("\" %s // 0x%02x - 0x%02x%n",
+ closure, off-8, off-1);
+ else
+ out.format("\" + // 0x%02x - 0x%02x%n",
+ off-8, off-1);
+ } else {
+ if (off == end)
+ out.format("\"%s%n", closure);
+ else
+ out.format("\" +%n");
+ }
+ }
+ }
+
+ static Pattern sbmap = Pattern.compile("0x(\\p{XDigit}++)\\s++U\\+(\\p{XDigit}++)(\\s++#.*)?");
+
+ private static void genClass0(String srcDir, String dstDir,
+ String template,
+ String clzName,
+ String csName,
+ String hisName,
+ String pkgName,
+ boolean isASCII)
+ throws Exception
+ {
+ StringBuilder b2cSB = new StringBuilder();
+ StringBuilder b2cNRSB = new StringBuilder();
+ StringBuilder c2bNRSB = new StringBuilder();
+
+ char[] sb = new char[0x100];
+ char[] c2bIndex = new char[0x100];
+ int c2bOff = 0;
+ Arrays.fill(sb, UNMAPPABLE_DECODING);
+ Arrays.fill(c2bIndex, UNMAPPABLE_DECODING);
+
+ // (1)read in .map to parse all b->c entries
+ FileInputStream in = new FileInputStream(
+ new File(srcDir, clzName + ".map"));
+ Parser p = new Parser(in, sbmap);
+ Entry e = null;
+
+ while ((e = p.next()) != null) {
+ sb[e.bs] = (char)e.cp;
+ if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+ c2bOff += 0x100;
+ c2bIndex[e.cp>>8] = 1;
+ }
+ }
+
+ Formatter fm = new Formatter(b2cSB);
+ fm.format("%n");
+
+ // vm -server shows cc[byte + 128] access is much faster than
+ // cc[byte&0xff] so we output the upper segment first
+ toString(sb, 0x80, 0x100, fm, "+", true);
+ toString(sb, 0x00, 0x80, fm, ";", true);
+ fm.close();
+
+ // (2)now the .nr file which includes "b->c" non-roundtrip entries
+ File f = new File(srcDir, clzName + ".nr");
+ if (f.exists()) {
+ in = new FileInputStream(f);
+ fm = new Formatter(b2cNRSB);
+ p = new Parser(in, sbmap);
+ e = null;
+
+ fm.format("// remove non-roundtrip entries%n");
+ fm.format(" b2cMap = b2cTable.toCharArray();%n");
+ while ((e = p.next()) != null) {
+ fm.format(" b2cMap[%d] = UNMAPPABLE_DECODING;%n",
+ (e.bs>=0x80)?(e.bs-0x80):(e.bs+0x80));
+ }
+ fm.close();
+ }
+
+ // (3)finally the .c2b file which includes c->b non-roundtrip entries
+ f = new File(srcDir, clzName + ".c2b");
+ if (f.exists()) {
+ in = new FileInputStream(f);
+ fm = new Formatter(c2bNRSB);
+ p = new Parser(in, sbmap);
+ e = null;
+ ArrayList<Entry> es = new ArrayList<Entry>();
+ while ((e = p.next()) != null) {
+ if (c2bIndex[e.cp>>8] == UNMAPPABLE_DECODING) {
+ c2bOff += 0x100;
+ c2bIndex[e.cp>>8] = 1;
+ }
+ es.add(e);
+ }
+ fm.format("// non-roundtrip c2b only entries%n");
+ if (es.size() < 100) {
+ fm.format(" c2bNR = new char[%d];%n", es.size() * 2);
+ int i = 0;
+ for (Entry entry: es) {
+ fm.format(" c2bNR[%d] = 0x%x; c2bNR[%d] = 0x%x;%n",
+ i++, entry.bs, i++, entry.cp);
+ }
+ } else {
+ char[] cc = new char[es.size() * 2];
+ int i = 0;
+ for (Entry entry: es) {
+ cc[i++] = (char)entry.bs;
+ cc[i++] = (char)entry.cp;
+ }
+ fm.format(" c2bNR = (%n");
+ toString(cc, 0, i, fm, ").toCharArray();", false);
+ }
+ fm.close();
+ }
+
+ // (4)it's time to generate the source file
+ String b2c = b2cSB.toString();
+ String b2cNR = b2cNRSB.toString();
+ String c2bNR = c2bNRSB.toString();
+
+ Scanner s = new Scanner(new File(srcDir, template));
+ PrintStream out = new PrintStream(new FileOutputStream(
+ new File(dstDir, clzName + ".java")));
+
+ while (s.hasNextLine()) {
+ String line = s.nextLine();
+ int i = line.indexOf("$");
+ if (i == -1) {
+ out.println(line);
+ continue;
+ }
+ if (line.indexOf("$PACKAGE$", i) != -1) {
+ line = line.replace("$PACKAGE$", pkgName);
+ }
+ if (line.indexOf("$NAME_CLZ$", i) != -1) {
+ line = line.replace("$NAME_CLZ$", clzName);
+ }
+ if (line.indexOf("$NAME_CS$", i) != -1) {
+ line = line.replace("$NAME_CS$", csName);
+ }
+ if (line.indexOf("$NAME_ALIASES$", i) != -1) {
+ if ("sun.nio.cs".equals(pkgName))
+ line = line.replace("$NAME_ALIASES$",
+ "StandardCharsets.aliases_" + clzName);
+ else
+ line = line.replace("$NAME_ALIASES$",
+ "ExtendedCharsets.aliasesFor(\"" + csName + "\")");
+ }
+ if (line.indexOf("$NAME_HIS$", i) != -1) {
+ line = line.replace("$NAME_HIS$", hisName);
+ }
+ if (line.indexOf("$CONTAINS$", i) != -1) {
+ if (isASCII)
+ line = " return ((cs.name().equals(\"US-ASCII\")) || (cs instanceof " + clzName + "));";
+ else
+ line = " return (cs instanceof " + clzName + ");";
+ }
+ if (line.indexOf("$B2CTABLE$") != -1) {
+ line = line.replace("$B2CTABLE$", b2c);
+ }
+ if (line.indexOf("$C2BLENGTH$") != -1) {
+ line = line.replace("$C2BLENGTH$", "0x" + Integer.toString(c2bOff, 16));
+ }
+ if (line.indexOf("$NONROUNDTRIP_B2C$") != -1) {
+ if (b2cNR.length() == 0)
+ continue;
+ line = line.replace("$NONROUNDTRIP_B2C$", b2cNR);
+ }
+
+ if (line.indexOf("$NONROUNDTRIP_C2B$") != -1) {
+ if (c2bNR.length() == 0)
+ continue;
+ line = line.replace("$NONROUNDTRIP_C2B$", c2bNR);
+ }
+ out.println(line);
+ }
+ out.close();
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,221 @@
+/*
+ * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package build.tools.charsetmapping;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.Scanner;
+import java.util.Formatter;
+
+public class Utils {
+
+ public final static char UNMAPPABLE_DECODING = '\uFFFD';
+ public final static int UNMAPPABLE_ENCODING = 0xFFFD;
+
+ public static class Entry {
+ public int bs; //byte sequence reps
+ public int cp; //Unicode codepoint
+ public int cp2; //CC of composite
+
+ public Entry () {}
+ public Entry (int bytes, int cp, int cp2) {
+ this.bs = bytes;
+ this.cp = cp;
+ this.cp2 = cp2;
+ }
+ }
+
+ public static class Parser {
+ static final Pattern basic = Pattern.compile("(?:0x)?(\\p{XDigit}++)\\s++(?:0x)?(\\p{XDigit}++)?\\s*+.*");
+ static final int gBS = 1;
+ static final int gCP = 2;
+ static final int gCP2 = 3;
+
+ BufferedReader reader;
+ boolean closed;
+ Matcher matcher;
+ int gbs, gcp, gcp2;
+
+ public Parser (InputStream in, Pattern p, int gbs, int gcp, int gcp2)
+ throws IOException
+ {
+ this.reader = new BufferedReader(new InputStreamReader(in));
+ this.closed = false;
+ this.matcher = p.matcher("");
+ this.gbs = gbs;
+ this.gcp = gcp;
+ this.gcp2 = gcp2;
+ }
+
+ public Parser (InputStream in, Pattern p) throws IOException {
+ this(in, p, gBS, gCP, gCP2);
+ }
+
+ public Parser (InputStream in) throws IOException {
+ this(in, basic, gBS, gCP, gCP2);
+ }
+
+ protected boolean isDirective(String line) {
+ return line.startsWith("#");
+ }
+
+ protected Entry parse(Matcher matcher, Entry mapping) {
+ mapping.bs = Integer.parseInt(matcher.group(gbs), 16);
+ mapping.cp = Integer.parseInt(matcher.group(gcp), 16);
+ if (gcp2 <= matcher.groupCount() &&
+ matcher.group(gcp2) != null)
+ mapping.cp2 = Integer.parseInt(matcher.group(gcp2), 16);
+ else
+ mapping.cp2 = 0;
+ return mapping;
+ }
+
+ public Entry next() throws Exception {
+ return next(new Entry());
+ }
+
+ // returns null and closes the input stream if the eof has beenreached.
+ public Entry next(Entry mapping) throws Exception {
+ if (closed)
+ return null;
+ String line;
+ while ((line = reader.readLine()) != null) {
+ if (isDirective(line))
+ continue;
+ matcher.reset(line);
+ if (!matcher.lookingAt()) {
+ //System.out.println("Missed: " + line);
+ continue;
+ }
+ return parse(matcher, mapping);
+ }
+ reader.close();
+ closed = true;
+ return null;
+ }
+ }
+
+ public static class Output {
+ private Formatter out;
+
+ public Output(Formatter out) {
+ this.out = out;
+ }
+
+ public void close() {
+ out.close();
+ }
+
+ private void toChar(String fmt, char c) {
+ switch (c) {
+ case '\b':
+ out.format("\\b"); break;
+ case '\t':
+ out.format("\\t"); break;
+ case '\n':
+ out.format("\\n"); break;
+ case '\f':
+ out.format("\\f"); break;
+ case '\r':
+ out.format("\\r"); break;
+ case '\"':
+ out.format("\\\""); break;
+ case '\'':
+ out.format("\\'"); break;
+ case '\\':
+ out.format("\\\\"); break;
+ default:
+ out.format(fmt, c & 0xffff);
+ }
+ }
+
+ public void format(String fmt, Object ... args) {
+ out.format(fmt, args);
+ }
+
+ public void format(char[] cc, int off, int end, String closure) {
+ while (off < end) {
+ out.format(" \"");
+ for (int j = 0; j < 8; j++) {
+ if (off == end)
+ break;
+ toChar("\\u%04X", cc[off++]);
+ }
+ if (off == end)
+ out.format("\" %s%n", closure);
+ else
+ out.format("\" + %n");
+ }
+ }
+
+ public void format(char[] cc, String closure) {
+ format(cc, 0, cc.length, closure);
+ }
+
+ public void format(char[] db, int b1, int b2Min, int b2Max,
+ String closure)
+ {
+ char[] cc = new char[b2Max - b2Min + 1];
+ int off = 0;
+ for (int b2 = b2Min; b2 <= b2Max; b2++) {
+ cc[off++] = db[(b1 << 8) | b2];
+ }
+ format(cc, 0, cc.length, closure);
+ }
+
+ public void format(char[] date) {
+ int off = 0;
+ int end = date.length;
+ while (off < end) {
+ out.format(" ");
+ for (int j = 0; j < 8 && off < end; j++) {
+ toChar("'\\u%04X',", date[off++]);
+ }
+ out.format("%n");
+ }
+ }
+ }
+
+ public static String getCopyright(File f) throws IOException {
+ Scanner s = new Scanner(f, "ISO-8859-1");
+ StringBuilder sb = new StringBuilder();
+ while (s.hasNextLine()) {
+ String ln = s.nextLine();
+ sb.append(ln + "\n");
+ // assume we have the copyright as the first comment
+ if (ln.matches("^\\s\\*\\/$"))
+ break;
+ }
+ s.close();
+ return sb.toString();
+ }
+}
--- a/jdk/make/tools/src/build/tools/javazic/RuleDay.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/make/tools/src/build/tools/javazic/RuleDay.java Tue Apr 20 01:24:48 2010 -0700
@@ -139,7 +139,7 @@
if (isLast()) {
return -1;
}
- return getDay();
+ return isEarlier() ? -getDay() : getDay();
}
/**
@@ -147,13 +147,10 @@
* @return the SimpleTimeZone day-of-week rule value
*/
int getDayOfWeekForSimpleTimeZoneInt() {
- if (!isLater() && !isEarlier() && !isLast()) {
- return 0;
- }
- if (isLater()) {
+ if (isEarlier() || isLater()) {
return -getDayOfWeekNum();
}
- return getDayOfWeekNum();
+ return isLast() ? getDayOfWeekNum() : 0;
}
/**
--- a/jdk/src/share/classes/java/beans/EventHandler.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/beans/EventHandler.java Tue Apr 20 01:24:48 2010 -0700
@@ -32,7 +32,6 @@
import java.security.AccessController;
import java.security.PrivilegedAction;
-import java.util.EventObject;
import sun.reflect.misc.MethodUtil;
/**
@@ -279,9 +278,9 @@
public class EventHandler implements InvocationHandler {
private Object target;
private String action;
- private String eventPropertyName;
- private String listenerMethodName;
- private AccessControlContext acc;
+ private final String eventPropertyName;
+ private final String listenerMethodName;
+ private final AccessControlContext acc = AccessController.getContext();
/**
* Creates a new <code>EventHandler</code> object;
@@ -310,7 +309,6 @@
*/
@ConstructorProperties({"target", "action", "eventPropertyName", "listenerMethodName"})
public EventHandler(Object target, String action, String eventPropertyName, String listenerMethodName) {
- this.acc = AccessController.getContext();
this.target = target;
this.action = action;
if (target == null) {
@@ -422,7 +420,11 @@
* @see EventHandler
*/
public Object invoke(final Object proxy, final Method method, final Object[] arguments) {
- return AccessController.doPrivileged(new PrivilegedAction() {
+ AccessControlContext acc = this.acc;
+ if ((acc == null) && (System.getSecurityManager() != null)) {
+ throw new SecurityException("AccessControlContext is not set");
+ }
+ return AccessController.doPrivileged(new PrivilegedAction<Object>() {
public Object run() {
return invokeInternal(proxy, method, arguments);
}
@@ -482,7 +484,10 @@
throw new RuntimeException(ex);
}
catch (InvocationTargetException ex) {
- throw new RuntimeException(ex.getTargetException());
+ Throwable th = ex.getTargetException();
+ throw (th instanceof RuntimeException)
+ ? (RuntimeException) th
+ : new RuntimeException(th);
}
}
return null;
--- a/jdk/src/share/classes/java/beans/Expression.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/beans/Expression.java Tue Apr 20 01:24:48 2010 -0700
@@ -99,6 +99,29 @@
}
/**
+ * {@inheritDoc}
+ * <p>
+ * If the invoked method completes normally,
+ * the value it returns is copied in the {@code value} property.
+ * Note that the {@code value} property is set to {@code null},
+ * if the return type of the underlying method is {@code void}.
+ *
+ * @throws NullPointerException if the value of the {@code target} or
+ * {@code methodName} property is {@code null}
+ * @throws NoSuchMethodException if a matching method is not found
+ * @throws SecurityException if a security manager exists and
+ * it denies the method invocation
+ * @throws Exception that is thrown by the invoked method
+ *
+ * @see java.lang.reflect.Method
+ * @since 1.7
+ */
+ @Override
+ public void execute() throws Exception {
+ setValue(invoke());
+ }
+
+ /**
* If the value property of this instance is not already set,
* this method dynamically finds the method with the specified
* methodName on this target with these arguments and calls it.
--- a/jdk/src/share/classes/java/beans/Statement.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/beans/Statement.java Tue Apr 20 01:24:48 2010 -0700
@@ -29,6 +29,10 @@
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import com.sun.beans.finder.ClassFinder;
import com.sun.beans.finder.ConstructorFinder;
@@ -63,9 +67,10 @@
}
};
- Object target;
- String methodName;
- Object[] arguments;
+ private final AccessControlContext acc = AccessController.getContext();
+ private final Object target;
+ private final String methodName;
+ private final Object[] arguments;
ClassLoader loader;
/**
@@ -127,8 +132,8 @@
}
/**
- * The execute method finds a method whose name is the same
- * as the methodName property, and invokes the method on
+ * The {@code execute} method finds a method whose name is the same
+ * as the {@code methodName} property, and invokes the method on
* the target.
*
* When the target's class defines many methods with the given name
@@ -136,7 +141,7 @@
* the algorithm specified in the Java Language Specification
* (15.11). The dynamic class of the target and arguments are used
* in place of the compile-time type information and, like the
- * <code>java.lang.reflect.Method</code> class itself, conversion between
+ * {@link java.lang.reflect.Method} class itself, conversion between
* primitive values and their associated wrapper classes is handled
* internally.
* <p>
@@ -147,19 +152,48 @@
* <li>
* The reserved method name "new" may be used to call a class's constructor
* as if all classes defined static "new" methods. Constructor invocations
- * are typically considered <code>Expression</code>s rather than <code>Statement</code>s
+ * are typically considered {@code Expression}s rather than {@code Statement}s
* as they return a value.
* <li>
- * The method names "get" and "set" defined in the <code>java.util.List</code>
+ * The method names "get" and "set" defined in the {@link java.util.List}
* interface may also be applied to array instances, mapping to
- * the static methods of the same name in the <code>Array</code> class.
+ * the static methods of the same name in the {@code Array} class.
* </ul>
+ *
+ * @throws NullPointerException if the value of the {@code target} or
+ * {@code methodName} property is {@code null}
+ * @throws NoSuchMethodException if a matching method is not found
+ * @throws SecurityException if a security manager exists and
+ * it denies the method invocation
+ * @throws Exception that is thrown by the invoked method
+ *
+ * @see java.lang.reflect.Method
*/
public void execute() throws Exception {
invoke();
}
Object invoke() throws Exception {
+ AccessControlContext acc = this.acc;
+ if ((acc == null) && (System.getSecurityManager() != null)) {
+ throw new SecurityException("AccessControlContext is not set");
+ }
+ try {
+ return AccessController.doPrivileged(
+ new PrivilegedExceptionAction<Object>() {
+ public Object run() throws Exception {
+ return invokeInternal();
+ }
+ },
+ acc
+ );
+ }
+ catch (PrivilegedActionException exception) {
+ throw exception.getException();
+ }
+ }
+
+ private Object invokeInternal() throws Exception {
Object target = getTarget();
String methodName = getMethodName();
--- a/jdk/src/share/classes/java/io/File.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/io/File.java Tue Apr 20 01:24:48 2010 -0700
@@ -2064,11 +2064,12 @@
private synchronized void readObject(java.io.ObjectInputStream s)
throws IOException, ClassNotFoundException
{
- s.defaultReadObject();
+ ObjectInputStream.GetField fields = s.readFields();
+ String pathField = (String)fields.get("path", null);
char sep = s.readChar(); // read the previous separator char
if (sep != separatorChar)
- this.path = this.path.replace(sep, separatorChar);
- this.path = fs.normalize(this.path);
+ pathField = pathField.replace(sep, separatorChar);
+ this.path = fs.normalize(pathField);
this.prefixLength = fs.prefixLength(this.path);
}
--- a/jdk/src/share/classes/java/io/FilterInputStream.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/io/FilterInputStream.java Tue Apr 20 01:24:48 2010 -0700
@@ -134,9 +134,18 @@
}
/**
- * {@inheritDoc}
+ * Skips over and discards <code>n</code> bytes of data from the
+ * input stream. The <code>skip</code> method may, for a variety of
+ * reasons, end up skipping over some smaller number of bytes,
+ * possibly <code>0</code>. The actual number of bytes skipped is
+ * returned.
* <p>
* This method simply performs <code>in.skip(n)</code>.
+ *
+ * @param n the number of bytes to be skipped.
+ * @return the actual number of bytes skipped.
+ * @exception IOException if the stream does not support seek,
+ * or if some other I/O error occurs.
*/
public long skip(long n) throws IOException {
return in.skip(n);
--- a/jdk/src/share/classes/java/lang/ProcessBuilder.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/lang/ProcessBuilder.java Tue Apr 20 01:24:48 2010 -0700
@@ -994,6 +994,8 @@
// Must convert to array first -- a malicious user-supplied
// list might try to circumvent the security check.
String[] cmdarray = command.toArray(new String[command.size()]);
+ cmdarray = cmdarray.clone();
+
for (String arg : cmdarray)
if (arg == null)
throw new NullPointerException();
--- a/jdk/src/share/classes/java/lang/ThreadGroup.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/lang/ThreadGroup.java Tue Apr 20 01:24:48 2010 -0700
@@ -55,7 +55,7 @@
*/
public
class ThreadGroup implements Thread.UncaughtExceptionHandler {
- ThreadGroup parent;
+ private final ThreadGroup parent;
String name;
int maxPriority;
boolean destroyed;
@@ -76,6 +76,7 @@
private ThreadGroup() { // called from C code
this.name = "system";
this.maxPriority = Thread.MAX_PRIORITY;
+ this.parent = null;
}
/**
@@ -113,10 +114,10 @@
* @since JDK1.0
*/
public ThreadGroup(ThreadGroup parent, String name) {
- if (parent == null) {
- throw new NullPointerException();
- }
- parent.checkAccess();
+ this(checkParentAccess(parent), parent, name);
+ }
+
+ private ThreadGroup(Void unused, ThreadGroup parent, String name) {
this.name = name;
this.maxPriority = parent.maxPriority;
this.daemon = parent.daemon;
@@ -125,6 +126,16 @@
parent.add(this);
}
+ /*
+ * @throws NullPointerException if the parent argument is {@code null}
+ * @throws SecurityException if the current thread cannot create a
+ * thread in the specified thread group.
+ */
+ private static Void checkParentAccess(ThreadGroup parent) {
+ parent.checkAccess();
+ return null;
+ }
+
/**
* Returns the name of this thread group.
*
--- a/jdk/src/share/classes/java/net/DatagramSocket.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/DatagramSocket.java Tue Apr 20 01:24:48 2010 -0700
@@ -118,6 +118,7 @@
if (address == null) {
throw new IllegalArgumentException("connect: null address");
}
+ checkAddress (address, "connect");
if (isClosed())
return;
SecurityManager security = System.getSecurityManager();
@@ -363,13 +364,15 @@
InetSocketAddress epoint = (InetSocketAddress) addr;
if (epoint.isUnresolved())
throw new SocketException("Unresolved address");
+ InetAddress iaddr = epoint.getAddress();
+ int port = epoint.getPort();
+ checkAddress(iaddr, "bind");
SecurityManager sec = System.getSecurityManager();
if (sec != null) {
- sec.checkListen(epoint.getPort());
+ sec.checkListen(port);
}
try {
- getImpl().bind(epoint.getPort(),
- epoint.getAddress());
+ getImpl().bind(port, iaddr);
} catch (SocketException e) {
getImpl().close();
throw e;
@@ -377,6 +380,15 @@
bound = true;
}
+ void checkAddress (InetAddress addr, String op) {
+ if (addr == null) {
+ return;
+ }
+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+ throw new IllegalArgumentException(op + ": invalid address type");
+ }
+ }
+
/**
* Connects the socket to a remote address for this socket. When a
* socket is connected to a remote address, packets may only be
@@ -603,6 +615,7 @@
synchronized (p) {
if (isClosed())
throw new SocketException("Socket is closed");
+ checkAddress (p.getAddress(), "send");
if (connectState == ST_NOT_CONNECTED) {
// check the address is ok wiht the security manager on every send.
SecurityManager security = System.getSecurityManager();
--- a/jdk/src/share/classes/java/net/InetAddress.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/InetAddress.java Tue Apr 20 01:24:48 2010 -0700
@@ -35,6 +35,7 @@
import java.security.AccessController;
import java.io.ObjectStreamException;
import java.io.IOException;
+import java.io.ObjectInputStream;
import sun.security.action.*;
import sun.net.InetAddressCachePolicy;
import sun.net.util.IPAddressUtil;
@@ -1472,6 +1473,23 @@
return impl;
}
+
+ private void readObjectNoData (ObjectInputStream s) throws
+ IOException, ClassNotFoundException {
+ if (getClass().getClassLoader() != null) {
+ throw new SecurityException ("invalid address type");
+ }
+ }
+
+ private void readObject (ObjectInputStream s) throws
+ IOException, ClassNotFoundException {
+ s.defaultReadObject ();
+ if (getClass().getClassLoader() != null) {
+ hostName = null;
+ address = 0;
+ throw new SecurityException ("invalid address type");
+ }
+ }
}
/*
--- a/jdk/src/share/classes/java/net/MulticastSocket.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/MulticastSocket.java Tue Apr 20 01:24:48 2010 -0700
@@ -289,6 +289,7 @@
throw new SocketException("Socket is closed");
}
+ checkAddress(mcastaddr, "joinGroup");
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkMulticast(mcastaddr);
@@ -323,6 +324,7 @@
throw new SocketException("Socket is closed");
}
+ checkAddress(mcastaddr, "leaveGroup");
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkMulticast(mcastaddr);
@@ -370,6 +372,7 @@
if (oldImpl)
throw new UnsupportedOperationException();
+ checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "joinGroup");
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress());
@@ -416,6 +419,7 @@
if (oldImpl)
throw new UnsupportedOperationException();
+ checkAddress(((InetSocketAddress)mcastaddr).getAddress(), "leaveGroup");
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkMulticast(((InetSocketAddress)mcastaddr).getAddress());
@@ -441,6 +445,7 @@
if (isClosed()) {
throw new SocketException("Socket is closed");
}
+ checkAddress(inf, "setInterface");
synchronized (infLock) {
getImpl().setOption(SocketOptions.IP_MULTICAST_IF, inf);
infAddress = inf;
@@ -632,6 +637,7 @@
throws IOException {
if (isClosed())
throw new SocketException("Socket is closed");
+ checkAddress(p.getAddress(), "send");
synchronized(ttlLock) {
synchronized(p) {
if (connectState == ST_NOT_CONNECTED) {
--- a/jdk/src/share/classes/java/net/NetworkInterface.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/NetworkInterface.java Tue Apr 20 01:24:48 2010 -0700
@@ -290,8 +290,12 @@
* If the specified address is <tt>null</tt>.
*/
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException {
- if (addr == null)
+ if (addr == null) {
throw new NullPointerException();
+ }
+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+ throw new IllegalArgumentException ("invalid address type");
+ }
return getByInetAddress0(addr);
}
--- a/jdk/src/share/classes/java/net/Socket.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/Socket.java Tue Apr 20 01:24:48 2010 -0700
@@ -122,6 +122,9 @@
if (p.type() == Proxy.Type.SOCKS) {
SecurityManager security = System.getSecurityManager();
InetSocketAddress epoint = (InetSocketAddress) p.address();
+ if (epoint.getAddress() != null) {
+ checkAddress (epoint.getAddress(), "Socket");
+ }
if (security != null) {
if (epoint.isUnresolved())
security.checkConnect(epoint.getHostName(),
@@ -558,15 +561,16 @@
throw new IllegalArgumentException("Unsupported address type");
InetSocketAddress epoint = (InetSocketAddress) endpoint;
+ InetAddress addr = epoint.getAddress ();
+ int port = epoint.getPort();
+ checkAddress(addr, "connect");
SecurityManager security = System.getSecurityManager();
if (security != null) {
if (epoint.isUnresolved())
- security.checkConnect(epoint.getHostName(),
- epoint.getPort());
+ security.checkConnect(epoint.getHostName(), port);
else
- security.checkConnect(epoint.getAddress().getHostAddress(),
- epoint.getPort());
+ security.checkConnect(addr.getHostAddress(), port);
}
if (!created)
createImpl(true);
@@ -574,10 +578,9 @@
impl.connect(epoint, timeout);
else if (timeout == 0) {
if (epoint.isUnresolved())
- impl.connect(epoint.getAddress().getHostName(),
- epoint.getPort());
+ impl.connect(addr.getHostName(), port);
else
- impl.connect(epoint.getAddress(), epoint.getPort());
+ impl.connect(addr, port);
} else
throw new UnsupportedOperationException("SocketImpl.connect(addr, timeout)");
connected = true;
@@ -614,14 +617,25 @@
InetSocketAddress epoint = (InetSocketAddress) bindpoint;
if (epoint != null && epoint.isUnresolved())
throw new SocketException("Unresolved address");
- if (bindpoint == null)
- getImpl().bind(InetAddress.anyLocalAddress(), 0);
- else
- getImpl().bind(epoint.getAddress(),
- epoint.getPort());
+ if (epoint == null) {
+ epoint = new InetSocketAddress(0);
+ }
+ InetAddress addr = epoint.getAddress();
+ int port = epoint.getPort();
+ checkAddress (addr, "bind");
+ getImpl().bind (addr, port);
bound = true;
}
+ private void checkAddress (InetAddress addr, String op) {
+ if (addr == null) {
+ return;
+ }
+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address)) {
+ throw new IllegalArgumentException(op + ": invalid address type");
+ }
+ }
+
/**
* set the flags after an accept() call.
*/
--- a/jdk/src/share/classes/java/net/SocketInputStream.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/SocketInputStream.java Tue Apr 20 01:24:48 2010 -0700
@@ -118,6 +118,10 @@
* @exception IOException If an I/O error has occurred.
*/
public int read(byte b[], int off, int length) throws IOException {
+ return read(b, off, length, impl.getTimeout());
+ }
+
+ int read(byte b[], int off, int length, int timeout) throws IOException {
int n;
// EOF already encountered
@@ -143,7 +147,7 @@
// acquire file descriptor and do the read
FileDescriptor fd = impl.acquireFD();
try {
- n = socketRead0(fd, b, off, length, impl.getTimeout());
+ n = socketRead0(fd, b, off, length, timeout);
if (n > 0) {
return n;
}
@@ -161,7 +165,7 @@
impl.setConnectionResetPending();
impl.acquireFD();
try {
- n = socketRead0(fd, b, off, length, impl.getTimeout());
+ n = socketRead0(fd, b, off, length, timeout);
if (n > 0) {
return n;
}
--- a/jdk/src/share/classes/java/net/SocksSocketImpl.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/net/SocksSocketImpl.java Tue Apr 20 01:24:48 2010 -0700
@@ -98,11 +98,31 @@
super.connect(new InetSocketAddress(host, port), timeout);
}
+ private static int remainingMillis(long deadlineMillis) throws IOException {
+ if (deadlineMillis == 0L)
+ return 0;
+
+ final long remaining = deadlineMillis - System.currentTimeMillis();
+ if (remaining > 0)
+ return (int) remaining;
+
+ throw new SocketTimeoutException();
+ }
+
private int readSocksReply(InputStream in, byte[] data) throws IOException {
+ return readSocksReply(in, data, 0L);
+ }
+
+ private int readSocksReply(InputStream in, byte[] data, long deadlineMillis) throws IOException {
int len = data.length;
int received = 0;
for (int attempts = 0; received < len && attempts < 3; attempts++) {
- int count = in.read(data, received, len - received);
+ int count;
+ try {
+ count = ((SocketInputStream)in).read(data, received, len - received, remainingMillis(deadlineMillis));
+ } catch (SocketTimeoutException e) {
+ throw new SocketTimeoutException("Connect timed out");
+ }
if (count < 0)
throw new SocketException("Malformed reply from SOCKS server");
received += count;
@@ -115,6 +135,12 @@
*/
private boolean authenticate(byte method, InputStream in,
BufferedOutputStream out) throws IOException {
+ return authenticate(method, in, out, 0L);
+ }
+
+ private boolean authenticate(byte method, InputStream in,
+ BufferedOutputStream out,
+ long deadlineMillis) throws IOException {
// No Authentication required. We're done then!
if (method == NO_AUTH)
return true;
@@ -162,7 +188,7 @@
out.write(0);
out.flush();
byte[] data = new byte[2];
- int i = readSocksReply(in, data);
+ int i = readSocksReply(in, data, deadlineMillis);
if (i != 2 || data[1] != 0) {
/* RFC 1929 specifies that the connection MUST be closed if
authentication fails */
@@ -201,18 +227,18 @@
// out.write(outToken);
// out.flush();
// data = new byte[2];
-// i = readSocksReply(in, data);
+// i = readSocksReply(in, data, deadlineMillis);
// if (i != 2 || data[1] == 0xff) {
// in.close();
// out.close();
// return false;
// }
-// i = readSocksReply(in, data);
+// i = readSocksReply(in, data, deadlineMillis);
// int len = 0;
// len = ((int)data[0] & 0xff) << 8;
// len += data[1];
// data = new byte[len];
-// i = readSocksReply(in, data);
+// i = readSocksReply(in, data, deadlineMillis);
// if (i == len)
// return true;
// in.close();
@@ -231,7 +257,8 @@
}
private void connectV4(InputStream in, OutputStream out,
- InetSocketAddress endpoint) throws IOException {
+ InetSocketAddress endpoint,
+ long deadlineMillis) throws IOException {
if (!(endpoint.getAddress() instanceof Inet4Address)) {
throw new SocketException("SOCKS V4 requires IPv4 only addresses");
}
@@ -249,7 +276,7 @@
out.write(0);
out.flush();
byte[] data = new byte[8];
- int n = readSocksReply(in, data);
+ int n = readSocksReply(in, data, deadlineMillis);
if (n != 8)
throw new SocketException("Reply from SOCKS server has bad length: " + n);
if (data[0] != 0 && data[0] != 4)
@@ -296,6 +323,15 @@
*/
@Override
protected void connect(SocketAddress endpoint, int timeout) throws IOException {
+ final long deadlineMillis;
+
+ if (timeout == 0) {
+ deadlineMillis = 0L;
+ } else {
+ long finish = System.currentTimeMillis() + timeout;
+ deadlineMillis = finish < 0 ? Long.MAX_VALUE : finish;
+ }
+
SecurityManager security = System.getSecurityManager();
if (endpoint == null || !(endpoint instanceof InetSocketAddress))
throw new IllegalArgumentException("Unsupported address type");
@@ -322,7 +358,7 @@
/*
* No default proxySelector --> direct connection
*/
- super.connect(epoint, timeout);
+ super.connect(epoint, remainingMillis(deadlineMillis));
return;
}
URI uri;
@@ -345,13 +381,13 @@
java.util.Iterator<Proxy> iProxy = null;
iProxy = sel.select(uri).iterator();
if (iProxy == null || !(iProxy.hasNext())) {
- super.connect(epoint, timeout);
+ super.connect(epoint, remainingMillis(deadlineMillis));
return;
}
while (iProxy.hasNext()) {
p = iProxy.next();
if (p == null || p == Proxy.NO_PROXY) {
- super.connect(epoint, timeout);
+ super.connect(epoint, remainingMillis(deadlineMillis));
return;
}
if (p.type() != Proxy.Type.SOCKS)
@@ -364,7 +400,7 @@
// Connects to the SOCKS server
try {
- privilegedConnect(server, serverPort, timeout);
+ privilegedConnect(server, serverPort, remainingMillis(deadlineMillis));
// Worked, let's get outta here
break;
} catch (IOException e) {
@@ -388,7 +424,7 @@
} else {
// Connects to the SOCKS server
try {
- privilegedConnect(server, serverPort, timeout);
+ privilegedConnect(server, serverPort, remainingMillis(deadlineMillis));
} catch (IOException e) {
throw new SocketException(e.getMessage());
}
@@ -403,7 +439,7 @@
// DOMAIN type of addresses (unresolved addresses here)
if (epoint.isUnresolved())
throw new UnknownHostException(epoint.toString());
- connectV4(in, out, epoint);
+ connectV4(in, out, epoint, deadlineMillis);
return;
}
@@ -414,7 +450,7 @@
out.write(USER_PASSW);
out.flush();
byte[] data = new byte[2];
- int i = readSocksReply(in, data);
+ int i = readSocksReply(in, data, deadlineMillis);
if (i != 2 || ((int)data[0]) != PROTO_VERS) {
// Maybe it's not a V5 sever after all
// Let's try V4 before we give up
@@ -422,12 +458,12 @@
// DOMAIN type of addresses (unresolved addresses here)
if (epoint.isUnresolved())
throw new UnknownHostException(epoint.toString());
- connectV4(in, out, epoint);
+ connectV4(in, out, epoint, deadlineMillis);
return;
}
if (((int)data[1]) == NO_METHODS)
throw new SocketException("SOCKS : No acceptable methods");
- if (!authenticate(data[1], in, out)) {
+ if (!authenticate(data[1], in, out, deadlineMillis)) {
throw new SocketException("SOCKS : authentication failed");
}
out.write(PROTO_VERS);
@@ -457,7 +493,7 @@
}
out.flush();
data = new byte[4];
- i = readSocksReply(in, data);
+ i = readSocksReply(in, data, deadlineMillis);
if (i != 4)
throw new SocketException("Reply from SOCKS server has bad length");
SocketException ex = null;
@@ -469,33 +505,33 @@
switch(data[3]) {
case IPV4:
addr = new byte[4];
- i = readSocksReply(in, addr);
+ i = readSocksReply(in, addr, deadlineMillis);
if (i != 4)
throw new SocketException("Reply from SOCKS server badly formatted");
data = new byte[2];
- i = readSocksReply(in, data);
+ i = readSocksReply(in, data, deadlineMillis);
if (i != 2)
throw new SocketException("Reply from SOCKS server badly formatted");
break;
case DOMAIN_NAME:
len = data[1];
byte[] host = new byte[len];
- i = readSocksReply(in, host);
+ i = readSocksReply(in, host, deadlineMillis);
if (i != len)
throw new SocketException("Reply from SOCKS server badly formatted");
data = new byte[2];
- i = readSocksReply(in, data);
+ i = readSocksReply(in, data, deadlineMillis);
if (i != 2)
throw new SocketException("Reply from SOCKS server badly formatted");
break;
case IPV6:
len = data[1];
addr = new byte[len];
- i = readSocksReply(in, addr);
+ i = readSocksReply(in, addr, deadlineMillis);
if (i != len)
throw new SocketException("Reply from SOCKS server badly formatted");
data = new byte[2];
- i = readSocksReply(in, data);
+ i = readSocksReply(in, data, deadlineMillis);
if (i != 2)
throw new SocketException("Reply from SOCKS server badly formatted");
break;
--- a/jdk/src/share/classes/java/security/Policy.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/security/Policy.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,19 +28,17 @@
import java.io.*;
import java.lang.RuntimePermission;
+import java.lang.reflect.*;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;
-import java.util.Vector;
+import java.util.PropertyPermission;
import java.util.StringTokenizer;
-import java.util.PropertyPermission;
-
-import java.lang.reflect.*;
-
+import java.util.Vector;
import java.util.WeakHashMap;
+import sun.security.jca.GetInstance;
import sun.security.util.Debug;
-import sun.security.jca.GetInstance;
import sun.security.util.SecurityConstants;
@@ -113,8 +111,8 @@
private static final Debug debug = Debug.getInstance("policy");
- // Cache mapping ProtectionDomain to PermissionCollection
- private WeakHashMap<ProtectionDomain, PermissionCollection> pdMapping;
+ // Cache mapping ProtectionDomain.Key to PermissionCollection
+ private WeakHashMap<ProtectionDomain.Key, PermissionCollection> pdMapping;
/** package private for AccessControlContext */
static boolean isSet()
@@ -307,7 +305,7 @@
synchronized (p) {
if (p.pdMapping == null) {
p.pdMapping =
- new WeakHashMap<ProtectionDomain, PermissionCollection>();
+ new WeakHashMap<ProtectionDomain.Key, PermissionCollection>();
}
}
@@ -323,7 +321,7 @@
synchronized (p.pdMapping) {
// cache of pd to permissions
- p.pdMapping.put(policyDomain, policyPerms);
+ p.pdMapping.put(policyDomain.key, policyPerms);
}
}
return;
@@ -638,7 +636,7 @@
}
synchronized (pdMapping) {
- pc = pdMapping.get(domain);
+ pc = pdMapping.get(domain.key);
}
if (pc != null) {
@@ -697,7 +695,7 @@
}
synchronized (pdMapping) {
- pc = pdMapping.get(domain);
+ pc = pdMapping.get(domain.key);
}
if (pc != null) {
@@ -711,7 +709,7 @@
synchronized (pdMapping) {
// cache it
- pdMapping.put(domain, pc);
+ pdMapping.put(domain.key, pc);
}
return pc.implies(permission);
@@ -747,21 +745,25 @@
this.params = params;
}
- public String getType() { return type; }
+ @Override public String getType() { return type; }
+
+ @Override public Policy.Parameters getParameters() { return params; }
- public Policy.Parameters getParameters() { return params; }
+ @Override public Provider getProvider() { return p; }
- public Provider getProvider() { return p; }
-
+ @Override
public PermissionCollection getPermissions(CodeSource codesource) {
return spi.engineGetPermissions(codesource);
}
+ @Override
public PermissionCollection getPermissions(ProtectionDomain domain) {
return spi.engineGetPermissions(domain);
}
+ @Override
public boolean implies(ProtectionDomain domain, Permission perm) {
return spi.engineImplies(domain, perm);
}
+ @Override
public void refresh() {
spi.engineRefresh();
}
@@ -803,7 +805,7 @@
* @exception SecurityException - if this PermissionCollection object
* has been marked readonly
*/
- public void add(Permission permission) {
+ @Override public void add(Permission permission) {
perms.add(permission);
}
@@ -816,7 +818,7 @@
* @return true if "permission" is implied by the permissions in
* the collection, false if not.
*/
- public boolean implies(Permission permission) {
+ @Override public boolean implies(Permission permission) {
return perms.implies(permission);
}
@@ -826,7 +828,7 @@
*
* @return an enumeration of all the Permissions.
*/
- public Enumeration<Permission> elements() {
+ @Override public Enumeration<Permission> elements() {
return perms.elements();
}
}
--- a/jdk/src/share/classes/java/security/ProtectionDomain.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/security/ProtectionDomain.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,9 +25,15 @@
package java.security;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
-import java.util.ArrayList;
+import java.util.Map;
+import java.util.WeakHashMap;
+import sun.misc.JavaSecurityProtectionDomainAccess;
+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
+import sun.misc.SharedSecrets;
import sun.security.util.Debug;
import sun.security.util.SecurityConstants;
@@ -72,6 +78,11 @@
or dynamic (via a policy refresh) */
private boolean staticPermissions;
+ /*
+ * An object used as a key when the ProtectionDomain is stored in a Map.
+ */
+ final Key key = new Key();
+
private static final Debug debug = Debug.getInstance("domain");
/**
@@ -238,7 +249,7 @@
/**
* Convert a ProtectionDomain to a String.
*/
- public String toString() {
+ @Override public String toString() {
String pals = "<no principals>";
if (principals != null && principals.length > 0) {
StringBuilder palBuf = new StringBuilder("(principals ");
@@ -396,4 +407,29 @@
return mergedPerms;
}
+
+ /**
+ * Used for storing ProtectionDomains as keys in a Map.
+ */
+ final class Key {}
+
+ static {
+ SharedSecrets.setJavaSecurityProtectionDomainAccess(
+ new JavaSecurityProtectionDomainAccess() {
+ public ProtectionDomainCache getProtectionDomainCache() {
+ return new ProtectionDomainCache() {
+ private final Map<Key, PermissionCollection> map =
+ Collections.synchronizedMap
+ (new WeakHashMap<Key, PermissionCollection>());
+ public void put(ProtectionDomain pd,
+ PermissionCollection pc) {
+ map.put((pd == null ? null : pd.key), pc);
+ }
+ public PermissionCollection get(ProtectionDomain pd) {
+ return pd == null ? map.get(null) : map.get(pd.key);
+ }
+ };
+ }
+ });
+ }
}
--- a/jdk/src/share/classes/java/util/concurrent/Semaphore.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/concurrent/Semaphore.java Tue Apr 20 01:24:48 2010 -0700
@@ -191,8 +191,11 @@
protected final boolean tryReleaseShared(int releases) {
for (;;) {
- int p = getState();
- if (compareAndSetState(p, p + releases))
+ int current = getState();
+ int next = current + releases;
+ if (next < current) // overflow
+ throw new Error("Maximum permit count exceeded");
+ if (compareAndSetState(current, next))
return true;
}
}
@@ -201,6 +204,8 @@
for (;;) {
int current = getState();
int next = current - reductions;
+ if (next > current) // underflow
+ throw new Error("Permit count underflow");
if (compareAndSetState(current, next))
return;
}
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java Tue Apr 20 01:24:48 2010 -0700
@@ -57,7 +57,7 @@
private long rawIndex(int i) {
if (i < 0 || i >= array.length)
throw new IndexOutOfBoundsException("index " + i);
- return base + i * scale;
+ return base + (long) i * scale;
}
/**
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java Tue Apr 20 01:24:48 2010 -0700
@@ -56,7 +56,7 @@
private long rawIndex(int i) {
if (i < 0 || i >= array.length)
throw new IndexOutOfBoundsException("index " + i);
- return base + i * scale;
+ return base + (long) i * scale;
}
/**
--- a/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java Tue Apr 20 01:24:48 2010 -0700
@@ -57,7 +57,7 @@
private long rawIndex(int i) {
if (i < 0 || i >= array.length)
throw new IndexOutOfBoundsException("index " + i);
- return base + i * scale;
+ return base + (long) i * scale;
}
/**
--- a/jdk/src/share/classes/java/util/zip/Deflater.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/zip/Deflater.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,8 @@
*/
public
class Deflater {
- private long strm;
+
+ private final ZStreamRef zsRef;
private byte[] buf = new byte[0];
private int off, len;
private int level, strategy;
@@ -165,7 +166,7 @@
public Deflater(int level, boolean nowrap) {
this.level = level;
this.strategy = DEFAULT_STRATEGY;
- strm = init(level, DEFAULT_STRATEGY, nowrap);
+ this.zsRef = new ZStreamRef(init(level, DEFAULT_STRATEGY, nowrap));
}
/**
@@ -193,16 +194,18 @@
* @param len the length of the data
* @see Deflater#needsInput
*/
- public synchronized void setInput(byte[] b, int off, int len) {
+ public void setInput(byte[] b, int off, int len) {
if (b== null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- this.buf = b;
- this.off = off;
- this.len = len;
+ synchronized (zsRef) {
+ this.buf = b;
+ this.off = off;
+ this.len = len;
+ }
}
/**
@@ -227,14 +230,17 @@
* @see Inflater#inflate
* @see Inflater#getAdler
*/
- public synchronized void setDictionary(byte[] b, int off, int len) {
- if (strm == 0 || b == null) {
+ public void setDictionary(byte[] b, int off, int len) {
+ if (b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- setDictionary(strm, b, off, len);
+ synchronized (zsRef) {
+ ensureOpen();
+ setDictionary(zsRef.address(), b, off, len);
+ }
}
/**
@@ -257,7 +263,7 @@
* @exception IllegalArgumentException if the compression strategy is
* invalid
*/
- public synchronized void setStrategy(int strategy) {
+ public void setStrategy(int strategy) {
switch (strategy) {
case DEFAULT_STRATEGY:
case FILTERED:
@@ -266,9 +272,11 @@
default:
throw new IllegalArgumentException();
}
- if (this.strategy != strategy) {
- this.strategy = strategy;
- setParams = true;
+ synchronized (zsRef) {
+ if (this.strategy != strategy) {
+ this.strategy = strategy;
+ setParams = true;
+ }
}
}
@@ -277,13 +285,15 @@
* @param level the new compression level (0-9)
* @exception IllegalArgumentException if the compression level is invalid
*/
- public synchronized void setLevel(int level) {
+ public void setLevel(int level) {
if ((level < 0 || level > 9) && level != DEFAULT_COMPRESSION) {
throw new IllegalArgumentException("invalid compression level");
}
- if (this.level != level) {
- this.level = level;
- setParams = true;
+ synchronized (zsRef) {
+ if (this.level != level) {
+ this.level = level;
+ setParams = true;
+ }
}
}
@@ -301,8 +311,10 @@
* When called, indicates that compression should end with the current
* contents of the input buffer.
*/
- public synchronized void finish() {
- finish = true;
+ public void finish() {
+ synchronized (zsRef) {
+ finish = true;
+ }
}
/**
@@ -311,8 +323,10 @@
* @return true if the end of the compressed data output stream has
* been reached
*/
- public synchronized boolean finished() {
- return finished;
+ public boolean finished() {
+ synchronized (zsRef) {
+ return finished;
+ }
}
/**
@@ -399,26 +413,31 @@
* @throws IllegalArgumentException if the flush mode is invalid
* @since 1.7
*/
- public synchronized int deflate(byte[] b, int off, int len, int flush) {
+ public int deflate(byte[] b, int off, int len, int flush) {
if (b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- if (flush == NO_FLUSH || flush == SYNC_FLUSH ||
- flush == FULL_FLUSH)
- return deflateBytes(b, off, len, flush);
- throw new IllegalArgumentException();
+ synchronized (zsRef) {
+ ensureOpen();
+ if (flush == NO_FLUSH || flush == SYNC_FLUSH ||
+ flush == FULL_FLUSH)
+ return deflateBytes(zsRef.address(), b, off, len, flush);
+ throw new IllegalArgumentException();
+ }
}
/**
* Returns the ADLER-32 value of the uncompressed data.
* @return the ADLER-32 value of the uncompressed data
*/
- public synchronized int getAdler() {
- ensureOpen();
- return getAdler(strm);
+ public int getAdler() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getAdler(zsRef.address());
+ }
}
/**
@@ -440,9 +459,11 @@
* @return the total (non-negative) number of uncompressed bytes input so far
* @since 1.5
*/
- public synchronized long getBytesRead() {
- ensureOpen();
- return getBytesRead(strm);
+ public long getBytesRead() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getBytesRead(zsRef.address());
+ }
}
/**
@@ -464,21 +485,25 @@
* @return the total (non-negative) number of compressed bytes output so far
* @since 1.5
*/
- public synchronized long getBytesWritten() {
- ensureOpen();
- return getBytesWritten(strm);
+ public long getBytesWritten() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getBytesWritten(zsRef.address());
+ }
}
/**
* Resets deflater so that a new set of input data can be processed.
* Keeps current compression level and strategy settings.
*/
- public synchronized void reset() {
- ensureOpen();
- reset(strm);
- finish = false;
- finished = false;
- off = len = 0;
+ public void reset() {
+ synchronized (zsRef) {
+ ensureOpen();
+ reset(zsRef.address());
+ finish = false;
+ finished = false;
+ off = len = 0;
+ }
}
/**
@@ -488,11 +513,14 @@
* finalize() method. Once this method is called, the behavior
* of the Deflater object is undefined.
*/
- public synchronized void end() {
- if (strm != 0) {
- end(strm);
- strm = 0;
- buf = null;
+ public void end() {
+ synchronized (zsRef) {
+ long addr = zsRef.address();
+ zsRef.clear();
+ if (addr != 0) {
+ end(addr);
+ buf = null;
+ }
}
}
@@ -504,18 +532,19 @@
}
private void ensureOpen() {
- if (strm == 0)
- throw new NullPointerException();
+ assert Thread.holdsLock(zsRef);
+ if (zsRef.address() == 0)
+ throw new NullPointerException("Deflater has been closed");
}
private static native void initIDs();
private native static long init(int level, int strategy, boolean nowrap);
- private native static void setDictionary(long strm, byte[] b, int off,
- int len);
- private native int deflateBytes(byte[] b, int off, int len, int flush);
- private native static int getAdler(long strm);
- private native static long getBytesRead(long strm);
- private native static long getBytesWritten(long strm);
- private native static void reset(long strm);
- private native static void end(long strm);
+ private native static void setDictionary(long addr, byte[] b, int off, int len);
+ private native int deflateBytes(long addr, byte[] b, int off, int len,
+ int flush);
+ private native static int getAdler(long addr);
+ private native static long getBytesRead(long addr);
+ private native static long getBytesWritten(long addr);
+ private native static void reset(long addr);
+ private native static void end(long addr);
}
--- a/jdk/src/share/classes/java/util/zip/Inflater.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/zip/Inflater.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,8 @@
*/
public
class Inflater {
- private long strm;
+
+ private final ZStreamRef zsRef;
private byte[] buf = defaultBuf;
private int off, len;
private boolean finished;
@@ -97,7 +98,7 @@
* @param nowrap if true then support GZIP compatible compression
*/
public Inflater(boolean nowrap) {
- strm = init(nowrap);
+ zsRef = new ZStreamRef(init(nowrap));
}
/**
@@ -116,16 +117,18 @@
* @param len the length of the input data
* @see Inflater#needsInput
*/
- public synchronized void setInput(byte[] b, int off, int len) {
+ public void setInput(byte[] b, int off, int len) {
if (b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- this.buf = b;
- this.off = off;
- this.len = len;
+ synchronized (zsRef) {
+ this.buf = b;
+ this.off = off;
+ this.len = len;
+ }
}
/**
@@ -150,15 +153,18 @@
* @see Inflater#needsDictionary
* @see Inflater#getAdler
*/
- public synchronized void setDictionary(byte[] b, int off, int len) {
- if (strm == 0 || b == null) {
+ public void setDictionary(byte[] b, int off, int len) {
+ if (b == null) {
throw new NullPointerException();
}
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- setDictionary(strm, b, off, len);
- needDict = false;
+ synchronized (zsRef) {
+ ensureOpen();
+ setDictionary(zsRef.address(), b, off, len);
+ needDict = false;
+ }
}
/**
@@ -180,8 +186,10 @@
* buffer after decompression has finished.
* @return the total number of bytes remaining in the input buffer
*/
- public synchronized int getRemaining() {
- return len;
+ public int getRemaining() {
+ synchronized (zsRef) {
+ return len;
+ }
}
/**
@@ -190,8 +198,10 @@
* to provide more input.
* @return true if no data remains in the input buffer
*/
- public synchronized boolean needsInput() {
- return len <= 0;
+ public boolean needsInput() {
+ synchronized (zsRef) {
+ return len <= 0;
+ }
}
/**
@@ -199,8 +209,10 @@
* @return true if a preset dictionary is needed for decompression
* @see Inflater#setDictionary
*/
- public synchronized boolean needsDictionary() {
- return needDict;
+ public boolean needsDictionary() {
+ synchronized (zsRef) {
+ return needDict;
+ }
}
/**
@@ -209,8 +221,10 @@
* @return true if the end of the compressed data stream has been
* reached
*/
- public synchronized boolean finished() {
- return finished;
+ public boolean finished() {
+ synchronized (zsRef) {
+ return finished;
+ }
}
/**
@@ -228,7 +242,7 @@
* @see Inflater#needsInput
* @see Inflater#needsDictionary
*/
- public synchronized int inflate(byte[] b, int off, int len)
+ public int inflate(byte[] b, int off, int len)
throws DataFormatException
{
if (b == null) {
@@ -237,7 +251,10 @@
if (off < 0 || len < 0 || off > b.length - len) {
throw new ArrayIndexOutOfBoundsException();
}
- return inflateBytes(b, off, len);
+ synchronized (zsRef) {
+ ensureOpen();
+ return inflateBytes(zsRef.address(), b, off, len);
+ }
}
/**
@@ -261,9 +278,11 @@
* Returns the ADLER-32 value of the uncompressed data.
* @return the ADLER-32 value of the uncompressed data
*/
- public synchronized int getAdler() {
- ensureOpen();
- return getAdler(strm);
+ public int getAdler() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getAdler(zsRef.address());
+ }
}
/**
@@ -285,9 +304,11 @@
* @return the total (non-negative) number of compressed bytes input so far
* @since 1.5
*/
- public synchronized long getBytesRead() {
- ensureOpen();
- return getBytesRead(strm);
+ public long getBytesRead() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getBytesRead(zsRef.address());
+ }
}
/**
@@ -309,21 +330,25 @@
* @return the total (non-negative) number of uncompressed bytes output so far
* @since 1.5
*/
- public synchronized long getBytesWritten() {
- ensureOpen();
- return getBytesWritten(strm);
+ public long getBytesWritten() {
+ synchronized (zsRef) {
+ ensureOpen();
+ return getBytesWritten(zsRef.address());
+ }
}
/**
* Resets inflater so that a new set of input data can be processed.
*/
- public synchronized void reset() {
- ensureOpen();
- reset(strm);
- buf = defaultBuf;
- finished = false;
- needDict = false;
- off = len = 0;
+ public void reset() {
+ synchronized (zsRef) {
+ ensureOpen();
+ reset(zsRef.address());
+ buf = defaultBuf;
+ finished = false;
+ needDict = false;
+ off = len = 0;
+ }
}
/**
@@ -333,11 +358,14 @@
* method. Once this method is called, the behavior of the Inflater
* object is undefined.
*/
- public synchronized void end() {
- if (strm != 0) {
- end(strm);
- strm = 0;
- buf = null;
+ public void end() {
+ synchronized (zsRef) {
+ long addr = zsRef.address();
+ zsRef.clear();
+ if (addr != 0) {
+ end(addr);
+ buf = null;
+ }
}
}
@@ -349,19 +377,20 @@
}
private void ensureOpen () {
- if (strm == 0)
- throw new NullPointerException();
+ assert Thread.holdsLock(zsRef);
+ if (zsRef.address() == 0)
+ throw new NullPointerException("Inflater has been closed");
}
private native static void initIDs();
private native static long init(boolean nowrap);
- private native static void setDictionary(long strm, byte[] b, int off,
+ private native static void setDictionary(long addr, byte[] b, int off,
int len);
- private native int inflateBytes(byte[] b, int off, int len)
+ private native int inflateBytes(long addr, byte[] b, int off, int len)
throws DataFormatException;
- private native static int getAdler(long strm);
- private native static long getBytesRead(long strm);
- private native static long getBytesWritten(long strm);
- private native static void reset(long strm);
- private native static void end(long strm);
+ private native static int getAdler(long addr);
+ private native static long getBytesRead(long addr);
+ private native static long getBytesWritten(long addr);
+ private native static void reset(long addr);
+ private native static void end(long addr);
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/util/zip/ZStreamRef.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package java.util.zip;
+
+/**
+ * A reference to the native zlib's z_stream structure.
+ */
+
+class ZStreamRef {
+
+ private long address;
+ ZStreamRef (long address) {
+ this.address = address;
+ }
+
+ long address() {
+ return address;
+ }
+
+ void clear() {
+ address = 0;
+ }
+}
--- a/jdk/src/share/classes/java/util/zip/ZipFile.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/java/util/zip/ZipFile.java Tue Apr 20 01:24:48 2010 -0700
@@ -36,6 +36,8 @@
import java.util.Set;
import java.util.HashSet;
import java.util.NoSuchElementException;
+import java.security.AccessController;
+import sun.security.action.GetPropertyAction;
import static java.util.zip.ZipConstants64.*;
/**
@@ -78,6 +80,17 @@
private static native void initIDs();
+ private static final boolean usemmap;
+
+ static {
+ // A system prpperty to disable mmap use to avoid vm crash when
+ // in-use zip file is accidently overwritten by others.
+ String prop = AccessController.doPrivileged(
+ new GetPropertyAction("sun.zip.disableMemoryMapping"));
+ usemmap = (prop == null ||
+ !(prop.length() == 0 || prop.equalsIgnoreCase("true")));
+ }
+
/**
* Opens a zip file for reading.
*
@@ -196,7 +209,7 @@
throw new NullPointerException("charset is null");
this.zc = ZipCoder.get(charset);
long t0 = System.nanoTime();
- jzfile = open(name, mode, file.lastModified());
+ jzfile = open(name, mode, file.lastModified(), usemmap);
sun.misc.PerfCounter.getZipFileOpenTime().addElapsedTimeFrom(t0);
sun.misc.PerfCounter.getZipFileCount().increment();
this.name = name;
@@ -673,8 +686,8 @@
}
- private static native long open(String name, int mode, long lastModified)
- throws IOException;
+ private static native long open(String name, int mode, long lastModified,
+ boolean usemmap) throws IOException;
private static native int getTotal(long jzfile);
private static native int read(long jzfile, long jzentry,
long pos, byte[] b, int off, int len);
--- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnectionImpl.java Tue Apr 20 01:24:48 2010 -0700
@@ -1271,6 +1271,7 @@
*
* @return a String representation of this object.
**/
+ @Override
public String toString() {
return super.toString() + ": connectionId=" + connectionId;
}
@@ -1514,6 +1515,21 @@
}
}
+ private static class SetCcl implements PrivilegedExceptionAction<ClassLoader> {
+ private final ClassLoader classLoader;
+
+ SetCcl(ClassLoader classLoader) {
+ this.classLoader = classLoader;
+ }
+
+ public ClassLoader run() {
+ Thread currentThread = Thread.currentThread();
+ ClassLoader old = currentThread.getContextClassLoader();
+ currentThread.setContextClassLoader(classLoader);
+ return old;
+ }
+ }
+
private static <T> T unwrap(final MarshalledObject<?> mo,
final ClassLoader cl,
final Class<T> wrappedClass)
@@ -1522,22 +1538,14 @@
return null;
}
try {
- return AccessController.doPrivileged(
- new PrivilegedExceptionAction<T>() {
- public T run()
- throws IOException {
- final ClassLoader old =
- Thread.currentThread().getContextClassLoader();
- Thread.currentThread().setContextClassLoader(cl);
- try {
- return wrappedClass.cast(mo.get());
- } catch (ClassNotFoundException cnfe) {
- throw new UnmarshalException(cnfe.toString(), cnfe);
- } finally {
- Thread.currentThread().setContextClassLoader(old);
- }
- }
- });
+ final ClassLoader old = AccessController.doPrivileged(new SetCcl(cl));
+ try {
+ return wrappedClass.cast(mo.get());
+ } catch (ClassNotFoundException cnfe) {
+ throw new UnmarshalException(cnfe.toString(), cnfe);
+ } finally {
+ AccessController.doPrivileged(new SetCcl(old));
+ }
} catch (PrivilegedActionException pe) {
Exception e = extractException(pe);
if (e instanceof IOException) {
@@ -1561,14 +1569,14 @@
return null;
}
try {
- return AccessController.doPrivileged(
- new PrivilegedExceptionAction<T>() {
- public T run()
- throws IOException {
- return unwrap(mo, new OrderClassLoaders(cl1, cl2),
- wrappedClass);
- }
- });
+ ClassLoader orderCL = AccessController.doPrivileged(
+ new PrivilegedExceptionAction<ClassLoader>() {
+ public ClassLoader run() throws Exception {
+ return new OrderClassLoaders(cl1, cl2);
+ }
+ }
+ );
+ return unwrap(mo, orderCL, wrappedClass);
} catch (PrivilegedActionException pe) {
Exception e = extractException(pe);
if (e instanceof IOException) {
--- a/jdk/src/share/classes/javax/net/SocketFactory.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/net/SocketFactory.java Tue Apr 20 01:24:48 2010 -0700
@@ -27,8 +27,10 @@
package javax.net;
import java.io.IOException;
-import java.net.*;
-
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.SocketException;
+import java.net.UnknownHostException;
/**
* This class creates sockets. It may be subclassed by other factories,
@@ -113,7 +115,17 @@
* @see java.net.Socket#Socket()
*/
public Socket createSocket() throws IOException {
- throw new SocketException("Unconnected sockets not implemented");
+ //
+ // bug 6771432:
+ // The Exception is used by HttpsClient to signal that
+ // unconnected sockets have not been implemented.
+ //
+ UnsupportedOperationException uop = new
+ UnsupportedOperationException();
+ SocketException se = new SocketException(
+ "Unconnected sockets not implemented");
+ se.initCause(uop);
+ throw se;
}
--- a/jdk/src/share/classes/javax/swing/JSplitPane.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/JSplitPane.java Tue Apr 20 01:24:48 2010 -0700
@@ -246,8 +246,7 @@
* layout, using two buttons for the components.
*/
public JSplitPane() {
- this(JSplitPane.HORIZONTAL_SPLIT,
- UIManager.getBoolean("SplitPane.continuousLayout"),
+ this(JSplitPane.HORIZONTAL_SPLIT, false,
new JButton(UIManager.getString("SplitPane.leftButtonText")),
new JButton(UIManager.getString("SplitPane.rightButtonText")));
}
@@ -264,8 +263,7 @@
*/
@ConstructorProperties({"orientation"})
public JSplitPane(int newOrientation) {
- this(newOrientation,
- UIManager.getBoolean("SplitPane.continuousLayout"));
+ this(newOrientation, false);
}
@@ -309,9 +307,7 @@
public JSplitPane(int newOrientation,
Component newLeftComponent,
Component newRightComponent){
- this(newOrientation,
- UIManager.getBoolean("SplitPane.continuousLayout"),
- newLeftComponent, newRightComponent);
+ this(newOrientation, false, newLeftComponent, newRightComponent);
}
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Tue Apr 20 01:24:48 2010 -0700
@@ -762,7 +762,9 @@
* component's background color to be painted.
* <li>
* Installs the default caret and highlighter into the
- * associated component.
+ * associated component. These properties are only set if their
+ * current value is either {@code null} or an instance of
+ * {@link UIResource}.
* <li>
* Attaches to the editor and model. If there is no
* model, a default one is created.
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/skin.laf Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/skin.laf Tue Apr 20 01:24:48 2010 -0700
@@ -21276,7 +21276,6 @@
<uiProperty name="centerOneTouchButtons" type="BOOLEAN" value="true"/>
<uiProperty name="oneTouchButtonOffset" type="INT" value="30"/>
<uiProperty name="oneTouchExpandable" type="BOOLEAN" value="false"/>
- <uiProperty name="continuousLayout" type="BOOLEAN" value="true"/>
</uiproperties>
</style>
<backgroundStates>
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java Tue Apr 20 01:24:48 2010 -0700
@@ -648,6 +648,14 @@
table.put("ColorChooser.swatchesDefaultRecentColor", Color.RED);
table.put("ColorChooser.swatchesSwatchSize", new Dimension(10, 10));
+ // These need to be defined for ImageView.
+ table.put("html.pendingImage", SwingUtilities2.makeIcon(getClass(),
+ BasicLookAndFeel.class,
+ "icons/image-delayed.png"));
+ table.put("html.missingImage", SwingUtilities2.makeIcon(getClass(),
+ BasicLookAndFeel.class,
+ "icons/image-failed.png"));
+
// These are needed for PopupMenu.
table.put("PopupMenu.selectedWindowInputMapBindings", new Object[] {
"ESCAPE", "cancel",
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java Tue Apr 20 01:24:48 2010 -0700
@@ -489,23 +489,6 @@
}
- /**
- * @inheritDoc
- */
- @Override
- protected void paintTabArea(Graphics g, int tabPlacement,
- int selectedIndex) {
- // This can be invoked from ScrollabeTabPanel
- Insets insets = tabPane.getInsets();
- int x = insets.left;
- int y = insets.top;
- int width = tabPane.getWidth() - insets.left - insets.right;
- int height = tabPane.getHeight() - insets.top - insets.bottom;
-
- paintTabArea(tabAreaContext, g, tabPlacement, selectedIndex,
- new Rectangle(x, y, width, height));
- }
-
private void paintTabArea(SynthContext ss, Graphics g,
int tabPlacement, int selectedIndex,
Rectangle tabAreaBounds) {
--- a/jdk/src/share/classes/sun/awt/HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/awt/HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -34,7 +34,7 @@
ExtendedCharsets class, because if we want to have a public HKSCS,
it probably should be HKSCS_2001 not HKSCS.
*/
-public class HKSCS extends sun.nio.cs.ext.HKSCS {
+public class HKSCS extends sun.nio.cs.ext.MS950_HKSCS_XP {
public HKSCS () {
super();
}
--- a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetContextPeer.java Tue Apr 20 01:24:48 2010 -0700
@@ -57,6 +57,7 @@
import sun.awt.SunToolkit;
import sun.awt.datatransfer.DataTransferer;
import sun.awt.datatransfer.ToolkitThreadBlockedHandler;
+import sun.security.util.SecurityConstants;
/**
* <p>
@@ -216,6 +217,18 @@
throws UnsupportedFlavorException, IOException,
InvalidDnDOperationException
{
+
+ SecurityManager sm = System.getSecurityManager();
+ try {
+ if (!dropComplete && sm != null) {
+ sm.checkSystemClipboardAccess();
+ }
+ } catch (Exception e) {
+ Thread currentThread = Thread.currentThread();
+ currentThread.getUncaughtExceptionHandler().uncaughtException(currentThread, e);
+ return null;
+ }
+
Long lFormat = null;
Transferable localTransferable = local;
--- a/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java Tue Apr 20 01:24:48 2010 -0700
@@ -333,10 +333,10 @@
hints = h;
}
- public native void setICMpixels(int x, int y, int w, int h, int[] lut,
+ private native void setICMpixels(int x, int y, int w, int h, int[] lut,
byte[] pix, int off, int scansize,
IntegerComponentRaster ict);
- public native int setDiffICM(int x, int y, int w, int h, int[] lut,
+ private native int setDiffICM(int x, int y, int w, int h, int[] lut,
int transPix, int numLut, IndexColorModel icm,
byte[] pix, int off, int scansize,
ByteComponentRaster bct, int chanOff);
@@ -361,6 +361,64 @@
}
createBufferedImage();
}
+
+ if (w <= 0 || h <= 0) {
+ return;
+ }
+
+ int biWidth = biRaster.getWidth();
+ int biHeight = biRaster.getHeight();
+
+ int x1 = x+w; // Overflow protection below
+ int y1 = y+h; // Overflow protection below
+ if (x < 0) {
+ off -= x;
+ x = 0;
+ } else if (x1 < 0) {
+ x1 = biWidth; // Must be overflow
+ }
+ if (y < 0) {
+ off -= y*scansize;
+ y = 0;
+ } else if (y1 < 0) {
+ y1 = biHeight; // Must be overflow
+ }
+ if (x1 > biWidth) {
+ x1 = biWidth;
+ }
+ if (y1 > biHeight) {
+ y1 = biHeight;
+ }
+ if (x >= x1 || y >= y1) {
+ return;
+ }
+ // x,y,x1,y1 are all >= 0, so w,h must be >= 0
+ w = x1-x;
+ h = y1-y;
+ // off is first pixel read so it must be in bounds
+ if (off < 0 || off >= pix.length) {
+ // They overflowed their own array
+ throw new ArrayIndexOutOfBoundsException("Data offset out of bounds.");
+ }
+ // pix.length and off are >= 0 so remainder >= 0
+ int remainder = pix.length - off;
+ if (remainder < w) {
+ // They overflowed their own array
+ throw new ArrayIndexOutOfBoundsException("Data array is too short.");
+ }
+ int num;
+ if (scansize < 0) {
+ num = (off / -scansize) + 1;
+ } else if (scansize > 0) {
+ num = ((remainder-w) / scansize) + 1;
+ } else {
+ num = h;
+ }
+ if (h > num) {
+ // They overflowed their own array.
+ throw new ArrayIndexOutOfBoundsException("Data array is too short.");
+ }
+
if (isSameCM && (cmodel != model) && (srcLUT != null) &&
(model instanceof IndexColorModel) &&
(biRaster instanceof ByteComponentRaster))
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5.java Tue Apr 20 01:24:48 2010 -0700
@@ -26,26 +26,24 @@
package sun.io;
+import sun.nio.cs.ext.DoubleByte;
import sun.nio.cs.ext.Big5;
/**
* Tables and data to convert Big5 to Unicode
*
- * @author ConverterGenerator tool
*/
-public class ByteToCharBig5 extends ByteToCharDoubleByte {
+public class ByteToCharBig5 extends ByteToCharDBCS_ASCII {
- private final static Big5 nioCoder = new Big5();
+ private static DoubleByte.Decoder dec =
+ (DoubleByte.Decoder)new Big5().newDecoder();
public String getCharacterEncoding() {
return "Big5";
}
public ByteToCharBig5() {
- super.index1 = nioCoder.getDecoderIndex1();
- super.index2 = nioCoder.getDecoderIndex2();
- start = 0x40;
- end = 0xFE;
+ super(dec);
}
}
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,15 +25,28 @@
package sun.io;
-public class ByteToCharBig5_HKSCS extends ByteToCharHKSCS_2001 {
- ByteToCharBig5 bcBig5 = new ByteToCharBig5();
+import sun.nio.cs.ext.Big5_HKSCS;
+import sun.nio.cs.ext.HKSCS;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class ByteToCharBig5_HKSCS extends ByteToCharDBCS_ASCII {
+
+ protected static HKSCS.Decoder dec =
+ (HKSCS.Decoder)new Big5_HKSCS().newDecoder();
+
public String getCharacterEncoding() {
return "Big5_HKSCS";
}
- protected char getUnicode(int byte1, int byte2) {
- char c = super.getUnicode(byte1, byte2);
- return (c != REPLACE_CHAR) ? c : bcBig5.getUnicode(byte1, byte2);
+ public ByteToCharBig5_HKSCS() {
+ super(dec);
+ }
+
+ protected char decodeDouble(int byte1, int byte2) {
+ char c = dec.decodeDouble(byte1, byte2);
+ if (c == UNMAPPABLE_DECODING)
+ c = dec.decodeBig5(byte1, byte2);
+ return c;
}
}
--- a/jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/ByteToCharBig5_Solaris.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,49 +25,19 @@
package sun.io;
-/*
- *
- *
- *
- *
- */
-public class ByteToCharBig5_Solaris extends ByteToCharBig5 {
- public ByteToCharBig5_Solaris() {}
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_Solaris;
+
+public class ByteToCharBig5_Solaris extends ByteToCharDBCS_ASCII {
+
+ private static DoubleByte.Decoder dec =
+ (DoubleByte.Decoder)new Big5_Solaris().newDecoder();
public String getCharacterEncoding() {
return "Big5_Solaris";
}
- protected char getUnicode(int byte1, int byte2) {
- //
- char c = super.getUnicode(byte1, byte2);
- if (c == REPLACE_CHAR) {
- if (byte1 == 0xf9) {
- switch (byte2) {
- case 0xD6:
- c = (char)0x7881;
- break;
- case 0xD7:
- c = (char)0x92B9;
- break;
- case 0xD8:
- c = (char)0x88CF;
- break;
- case 0xD9:
- c = (char)0x58BB;
- break;
- case 0xDA:
- c = (char)0x6052;
- break;
- case 0xDB:
- c = (char)0x7CA7;
- break;
- case 0xDC:
- c = (char)0x5AFA;
- break;
- }
- }
- }
- return c;
+ public ByteToCharBig5_Solaris() {
+ super(dec);
}
}
--- a/jdk/src/share/classes/sun/io/ByteToCharHKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS;
-
-/**
- * Tables and data to convert HKSCS to Unicode
- *
- * @author ConverterGenerator tool
- */
-
-public class ByteToCharHKSCS extends ByteToCharDoubleByte {
-
- public String getCharacterEncoding() {
- return "HKSCS";
- }
-
- public ByteToCharHKSCS() {
- super.index1 = HKSCS.getDecoderIndex1();
- super.index2= HKSCS.getDecoderIndex2();
- start = 0x40;
- end = 0xFE;
- }
-}
--- a/jdk/src/share/classes/sun/io/ByteToCharHKSCS_2001.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS_2001;
-
-/**
- * Tables and data to convert HKSCS (2001 revision) to Unicode
- *
- * @author ConverterGenerator tool
- */
-
-public class ByteToCharHKSCS_2001 extends ByteToCharDoubleByte {
-
- public String getCharacterEncoding() {
- return "HKSCS_2001";
- }
-
- public ByteToCharHKSCS_2001() {
- super.index1 = HKSCS_2001.getDecoderIndex1();
- super.index2= HKSCS_2001.getDecoderIndex2();
- start = 0x40;
- end = 0xFE;
- }
-}
--- a/jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/ByteToCharMS950_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,15 +25,27 @@
package sun.io;
-public class ByteToCharMS950_HKSCS extends ByteToCharHKSCS {
- ByteToCharMS950 bcMS950 = new ByteToCharMS950();
+import sun.nio.cs.ext.HKSCS;
+import sun.nio.cs.ext.MS950_HKSCS;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class ByteToCharMS950_HKSCS extends ByteToCharDBCS_ASCII {
+
+ private static HKSCS.Decoder dec =
+ (HKSCS.Decoder)new MS950_HKSCS().newDecoder();
public String getCharacterEncoding() {
return "MS950_HKSCS";
}
- protected char getUnicode(int byte1, int byte2) {
- char c = super.getUnicode(byte1, byte2);
- return (c != REPLACE_CHAR) ? c : bcMS950.decodeDouble(byte1, byte2);
+ public ByteToCharMS950_HKSCS() {
+ super(dec);
+ }
+
+ protected char decodeDouble(int byte1, int byte2) {
+ char c = dec.decodeDouble(byte1, byte2);
+ if (c == UNMAPPABLE_DECODING)
+ c = dec.decodeBig5(byte1, byte2);
+ return c;
}
}
--- a/jdk/src/share/classes/sun/io/CharToByteBig5.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5.java Tue Apr 20 01:24:48 2010 -0700
@@ -26,24 +26,24 @@
package sun.io;
+import sun.nio.cs.ext.DoubleByte;
import sun.nio.cs.ext.Big5;
/**
* Tables and data to convert Unicode to Big5
*
- * @author ConverterGenerator tool
*/
-public class CharToByteBig5 extends CharToByteDoubleByte {
+public class CharToByteBig5 extends CharToByteDBCS_ASCII {
- private static final Big5 nioCoder = new Big5();
+ private static DoubleByte.Encoder enc =
+ (DoubleByte.Encoder)new Big5().newEncoder();
public String getCharacterEncoding() {
return "Big5";
}
public CharToByteBig5() {
- super.index1 = nioCoder.getEncoderIndex1();
- super.index2 = nioCoder.getEncoderIndex2();
+ super(enc);
}
}
--- a/jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,15 +25,18 @@
package sun.io;
-public class CharToByteBig5_HKSCS extends CharToByteHKSCS_2001 {
- CharToByteBig5 cbBig5 = new CharToByteBig5();
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_HKSCS;
+
+public class CharToByteBig5_HKSCS extends CharToByteDBCS_ASCII {
+ private static DoubleByte.Encoder enc =
+ (DoubleByte.Encoder)new Big5_HKSCS().newEncoder();
public String getCharacterEncoding() {
return "Big5_HKSCS";
}
- protected int getNative(char ch) {
- int r = super.getNative(ch);
- return (r != 0) ? r : cbBig5.getNative(ch);
+ public CharToByteBig5_HKSCS() {
+ super(enc);
}
}
--- a/jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/CharToByteBig5_Solaris.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,48 +23,21 @@
* have any questions.
*/
-
package sun.io;
-/**
- */
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.Big5_Solaris;
-public class CharToByteBig5_Solaris extends CharToByteBig5 {
+public class CharToByteBig5_Solaris extends CharToByteDBCS_ASCII {
+
+ private static DoubleByte.Encoder enc =
+ (DoubleByte.Encoder)new Big5_Solaris().newEncoder();
public String getCharacterEncoding() {
return "Big5_Solaris";
}
- protected int getNative(char ch) {
- int nativeVal;
-
- if ((nativeVal = super.getNative(ch)) != 0) {
- return nativeVal;
- }
-
- switch (ch) {
- case 0x7881:
- nativeVal = 0xF9D6;
- break;
- case 0x92B9:
- nativeVal = 0xF9D7;
- break;
- case 0x88CF:
- nativeVal = 0xF9D8;
- break;
- case 0x58BB:
- nativeVal = 0xF9D9;
- break;
- case 0x6052:
- nativeVal = 0xF9DA;
- break;
- case 0x7CA7:
- nativeVal = 0xF9DB;
- break;
- case 0x5AFA:
- nativeVal = 0xF9DC;
- break;
- }
- return nativeVal;
+ public CharToByteBig5_Solaris() {
+ super(enc);
}
}
--- a/jdk/src/share/classes/sun/io/CharToByteHKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS;
-
-/**
- * Tables and data to convert Unicode to HKSCS
- *
- * @author ConverterGenerator tool
- */
-
-public class CharToByteHKSCS extends CharToByteDoubleByte {
-
- public String getCharacterEncoding() {
- return "HKSCS";
- }
-
- public CharToByteHKSCS() {
- super.index1 = HKSCS.getEncoderIndex1();
- super.index2 = HKSCS.getEncoderIndex2();
- }
-}
--- a/jdk/src/share/classes/sun/io/CharToByteHKSCS_2001.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-
-
-package sun.io;
-
-import sun.nio.cs.ext.HKSCS_2001;
-
-/**
- * Tables and data to convert Unicode to HKSCS (2001 revision)
- *
- * @author ConverterGenerator tool
- */
-
-public class CharToByteHKSCS_2001 extends CharToByteDoubleByte {
-
- public String getCharacterEncoding() {
- return "HKSCS_2001";
- }
-
- public CharToByteHKSCS_2001() {
- super.index1 = HKSCS_2001.getEncoderIndex1();
- super.index2 = HKSCS_2001.getEncoderIndex2();
- }
-}
--- a/jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/io/CharToByteMS950_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,15 +25,19 @@
package sun.io;
-public class CharToByteMS950_HKSCS extends CharToByteHKSCS {
- CharToByteMS950 cbMS950 = new CharToByteMS950();
+import sun.nio.cs.ext.DoubleByte;
+import sun.nio.cs.ext.MS950_HKSCS;
+
+public class CharToByteMS950_HKSCS extends CharToByteDBCS_ASCII {
+
+ private static DoubleByte.Encoder enc =
+ (DoubleByte.Encoder)new MS950_HKSCS().newEncoder();
public String getCharacterEncoding() {
return "MS950_HKSCS";
}
- protected int getNative(char ch) {
- int r = super.getNative(ch);
- return (r != 0) ? r : cbMS950.encodeChar(ch);
+ public CharToByteMS950_HKSCS() {
+ super(enc);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/misc/JavaSecurityProtectionDomainAccess.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package sun.misc;
+
+import java.security.PermissionCollection;
+import java.security.ProtectionDomain;
+
+public interface JavaSecurityProtectionDomainAccess {
+ interface ProtectionDomainCache {
+ void put(ProtectionDomain pd, PermissionCollection pc);
+ PermissionCollection get(ProtectionDomain pd);
+ }
+ /**
+ * Returns the ProtectionDomainCache.
+ */
+ ProtectionDomainCache getProtectionDomainCache();
+}
--- a/jdk/src/share/classes/sun/misc/SharedSecrets.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@
private static JavaNetAccess javaNetAccess;
private static JavaNioAccess javaNioAccess;
private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess;
+ private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess;
public static JavaUtilJarAccess javaUtilJarAccess() {
if (javaUtilJarAccess == null) {
@@ -113,4 +114,13 @@
return javaIOFileDescriptorAccess;
}
+ public static void setJavaSecurityProtectionDomainAccess
+ (JavaSecurityProtectionDomainAccess jspda) {
+ javaSecurityProtectionDomainAccess = jspda;
+ }
+
+ public static JavaSecurityProtectionDomainAccess
+ getJavaSecurityProtectionDomainAccess() {
+ return javaSecurityProtectionDomainAccess;
+ }
}
--- a/jdk/src/share/classes/sun/net/NetworkClient.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/net/NetworkClient.java Tue Apr 20 01:24:48 2010 -0700
@@ -29,7 +29,6 @@
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.UnknownHostException;
-import java.net.URL;
import java.net.Proxy;
import java.util.Arrays;
import java.security.AccessController;
@@ -157,10 +156,15 @@
public Socket run() {
return new Socket(proxy);
}});
- } else
+ } else if (proxy.type() == Proxy.Type.DIRECT) {
+ s = createSocket();
+ } else {
+ // Still connecting through a proxy
+ // server & port will be the proxy address and port
s = new Socket(Proxy.NO_PROXY);
+ }
} else
- s = new Socket();
+ s = createSocket();
// Instance specific timeouts do have priority, that means
// connectTimeout & readTimeout (-1 means not set)
// Then global default timeouts
@@ -182,6 +186,15 @@
return s;
}
+ /**
+ * The following method, createSocket, is provided to allow the
+ * https client to override it so that it may use its socket factory
+ * to create the socket.
+ */
+ protected Socket createSocket() throws IOException {
+ return new java.net.Socket();
+ }
+
protected InetAddress getLocalAddress() throws IOException {
if (serverSocket == null)
throw new IOException("not connected");
--- a/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/AuthenticationInfo.java Tue Apr 20 01:24:48 2010 -0700
@@ -270,13 +270,17 @@
* In this case we do not use the path because the protection space
* is identified by the host:port:realm only
*/
- static AuthenticationInfo getServerAuth(URL url, String realm, AuthScheme scheme) {
+ static String getServerAuthKey(URL url, String realm, AuthScheme scheme) {
int port = url.getPort();
if (port == -1) {
port = url.getDefaultPort();
}
String key = SERVER_AUTHENTICATION + ":" + scheme + ":" + url.getProtocol().toLowerCase()
+ ":" + url.getHost().toLowerCase() + ":" + port + ":" + realm;
+ return key;
+ }
+
+ static AuthenticationInfo getServerAuth(String key) {
AuthenticationInfo cached = getAuth(key, null);
if ((cached == null) && requestIsInProgress (key)) {
/* check the cache again, it might contain an entry */
@@ -314,9 +318,13 @@
* Used in response to a challenge. Note, the protocol field is always
* blank for proxies.
*/
- static AuthenticationInfo getProxyAuth(String host, int port, String realm, AuthScheme scheme) {
+ static String getProxyAuthKey(String host, int port, String realm, AuthScheme scheme) {
String key = PROXY_AUTHENTICATION + ":" + scheme + "::" + host.toLowerCase()
+ ":" + port + ":" + realm;
+ return key;
+ }
+
+ static AuthenticationInfo getProxyAuth(String key) {
AuthenticationInfo cached = (AuthenticationInfo) cache.get(key, null);
if ((cached == null) && requestIsInProgress (key)) {
/* check the cache again, it might contain an entry */
@@ -330,19 +338,20 @@
* Add this authentication to the cache
*/
void addToCache() {
- cache.put (cacheKey(true), this);
+ String key = cacheKey(true);
+ cache.put(key, this);
if (supportsPreemptiveAuthorization()) {
- cache.put (cacheKey(false), this);
+ cache.put(cacheKey(false), this);
}
- endAuthRequest();
+ endAuthRequest(key);
}
- void endAuthRequest () {
+ static void endAuthRequest (String key) {
if (!serializeAuth) {
return;
}
synchronized (requests) {
- requestCompleted (cacheKey(true));
+ requestCompleted(key);
}
}
--- a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1995-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1995-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -249,6 +249,8 @@
boolean isUserServerAuth;
boolean isUserProxyAuth;
+ String serverAuthKey, proxyAuthKey;
+
/* Progress source */
protected ProgressSource pi;
@@ -1258,6 +1260,11 @@
doingNTLMp2ndStage = false;
continue;
}
+ } else {
+ inNegotiateProxy = false;
+ doingNTLMp2ndStage = false;
+ if (!isUserProxyAuth)
+ requests.remove("Proxy-Authorization");
}
// cache proxy authentication info
@@ -1303,7 +1310,7 @@
serverAuthentication.getAuthScheme() != NTLM) {
if (serverAuthentication.isAuthorizationStale (raw)) {
/* we can retry with the current credentials */
- disconnectInternal();
+ disconnectWeb();
redirects++;
requests.set(serverAuthentication.getHeaderName(),
serverAuthentication.getHeaderValue(url, method));
@@ -1318,7 +1325,7 @@
currentServerCredentials = serverAuthentication;
if (serverAuthentication != null) {
- disconnectInternal();
+ disconnectWeb();
redirects++; // don't let things loop ad nauseum
setCookieHeader();
continue;
@@ -1327,7 +1334,7 @@
reset ();
/* header not used for ntlm */
if (!serverAuthentication.setHeaders(this, null, raw)) {
- disconnectInternal();
+ disconnectWeb();
throw new IOException ("Authentication failure");
}
doingNTLM2ndStage = false;
@@ -1498,11 +1505,11 @@
}
throw e;
} finally {
- if (respCode == HTTP_PROXY_AUTH && proxyAuthentication != null) {
- proxyAuthentication.endAuthRequest();
+ if (proxyAuthKey != null) {
+ AuthenticationInfo.endAuthRequest(proxyAuthKey);
}
- else if (respCode == HTTP_UNAUTHORIZED && serverAuthentication != null) {
- serverAuthentication.endAuthRequest();
+ if (serverAuthKey != null) {
+ AuthenticationInfo.endAuthRequest(serverAuthKey);
}
}
}
@@ -1715,8 +1722,8 @@
statusLine + "\"");
}
} finally {
- if (respCode == HTTP_PROXY_AUTH && proxyAuthentication != null) {
- proxyAuthentication.endAuthRequest();
+ if (proxyAuthKey != null) {
+ AuthenticationInfo.endAuthRequest(proxyAuthKey);
}
}
@@ -1832,10 +1839,8 @@
if (realm == null)
realm = "";
- ret = AuthenticationInfo.getProxyAuth(host,
- port,
- realm,
- authScheme);
+ proxyAuthKey = AuthenticationInfo.getProxyAuthKey(host, port, realm, authScheme);
+ ret = AuthenticationInfo.getProxyAuth(proxyAuthKey);
if (ret == null) {
switch (authScheme) {
case BASIC:
@@ -1976,7 +1981,8 @@
domain = p.findValue ("domain");
if (realm == null)
realm = "";
- ret = AuthenticationInfo.getServerAuth(url, realm, authScheme);
+ serverAuthKey = AuthenticationInfo.getServerAuthKey(url, realm, authScheme);
+ ret = AuthenticationInfo.getServerAuth(serverAuthKey);
InetAddress addr = null;
if (ret == null) {
try {
@@ -2320,6 +2326,22 @@
}
/**
+ * Disconnect from the web server at the first 401 error. Do not
+ * disconnect when using a proxy, a good proxy should have already
+ * closed the connection to the web server.
+ */
+ private void disconnectWeb() throws IOException {
+ if (usingProxy()) {
+ responseCode = -1;
+ // clean up, particularly, skip the content part
+ // of a 401 error response
+ reset();
+ } else {
+ disconnectInternal();
+ }
+ }
+
+ /**
* Disconnect from the server (for internal use)
*/
private void disconnectInternal() {
--- a/jdk/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/net/www/protocol/http/spnego/NegotiateCallbackHandler.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,43 +45,50 @@
private String username;
private char[] password;
+ /**
+ * Authenticator asks for username and password in a single prompt,
+ * but CallbackHandler checks one by one. So, no matter which callback
+ * gets handled first, make sure Authenticator is only called once.
+ */
+ private boolean answered;
+
private final HttpCallerInfo hci;
public NegotiateCallbackHandler(HttpCallerInfo hci) {
this.hci = hci;
}
+ private void getAnswer() {
+ if (!answered) {
+ answered = true;
+ PasswordAuthentication passAuth =
+ Authenticator.requestPasswordAuthentication(
+ hci.host, hci.addr, hci.port, hci.protocol,
+ hci.prompt, hci.scheme, hci.url, hci.authType);
+ /**
+ * To be compatible with existing callback handler implementations,
+ * when the underlying Authenticator is canceled, username and
+ * password are assigned null. No exception is thrown.
+ */
+ if (passAuth != null) {
+ username = passAuth.getUserName();
+ password = passAuth.getPassword();
+ }
+ }
+ }
+
public void handle(Callback[] callbacks) throws
UnsupportedCallbackException, IOException {
for (int i=0; i<callbacks.length; i++) {
Callback callBack = callbacks[i];
if (callBack instanceof NameCallback) {
- if (username == null) {
- PasswordAuthentication passAuth =
- Authenticator.requestPasswordAuthentication(
- hci.host, hci.addr, hci.port, hci.protocol,
- hci.prompt, hci.scheme, hci.url, hci.authType);
- username = passAuth.getUserName();
- password = passAuth.getPassword();
- }
- NameCallback nameCallback =
- (NameCallback)callBack;
- nameCallback.setName(username);
-
+ getAnswer();
+ ((NameCallback)callBack).setName(username);
} else if (callBack instanceof PasswordCallback) {
- PasswordCallback passwordCallback =
- (PasswordCallback)callBack;
- if (password == null) {
- PasswordAuthentication passAuth =
- Authenticator.requestPasswordAuthentication(
- hci.host, hci.addr, hci.port, hci.protocol,
- hci.prompt, hci.scheme, hci.url, hci.authType);
- username = passAuth.getUserName();
- password = passAuth.getPassword();
- }
- passwordCallback.setPassword(password);
- Arrays.fill(password, ' ');
+ getAnswer();
+ ((PasswordCallback)callBack).setPassword(password);
+ if (password != null) Arrays.fill(password, ' ');
} else {
throw new UnsupportedCallbackException(callBack,
"Call back not supported");
--- a/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/net/www/protocol/https/HttpsClient.java Tue Apr 20 01:24:48 2010 -0700
@@ -28,39 +28,24 @@
import java.io.IOException;
import java.io.UnsupportedEncodingException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.FileInputStream;
import java.io.PrintStream;
import java.io.BufferedOutputStream;
import java.net.Socket;
+import java.net.SocketException;
import java.net.URL;
import java.net.UnknownHostException;
-import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.CookieHandler;
-import java.net.Authenticator;
-import java.net.PasswordAuthentication;
import java.security.Principal;
-import java.security.KeyStore;
-import java.security.PrivateKey;
import java.security.cert.*;
import java.util.StringTokenizer;
import java.util.Vector;
-import java.util.Collection;
-import java.util.List;
-import java.util.Iterator;
import java.security.AccessController;
import javax.security.auth.x500.X500Principal;
import javax.net.ssl.*;
-import sun.security.x509.X500Name;
-import sun.misc.Regexp;
-import sun.misc.RegexpPool;
-import sun.net.www.HeaderParser;
-import sun.net.www.MessageHeader;
import sun.net.www.http.HttpClient;
import sun.security.action.*;
@@ -125,6 +110,7 @@
private static final int httpsPortNumber = 443;
/** Returns the default HTTPS port (443) */
+ @Override
protected int getDefaultPort() { return httpsPortNumber; }
private HostnameVerifier hv;
@@ -368,11 +354,39 @@
return sslSocketFactory;
}
+ /**
+ * The following method, createSocket, is defined in NetworkClient
+ * and overridden here so that the socket facroty is used to create
+ * new sockets.
+ */
+ @Override
+ protected Socket createSocket() throws IOException {
+ try {
+ return sslSocketFactory.createSocket();
+ } catch (SocketException se) {
+ //
+ // bug 6771432
+ // javax.net.SocketFactory throws a SocketException with an
+ // UnsupportedOperationException as its cause to indicate that
+ // unconnected sockets have not been implemented.
+ //
+ Throwable t = se.getCause();
+ if (t != null && t instanceof UnsupportedOperationException) {
+ return super.createSocket();
+ } else {
+ throw se;
+ }
+ }
+ }
+
+
+ @Override
public boolean needsTunneling() {
return (proxy != null && proxy.type() != Proxy.Type.DIRECT
&& proxy.type() != Proxy.Type.SOCKS);
}
+ @Override
public void afterConnect() throws IOException, UnknownHostException {
if (!isCachedConnection()) {
SSLSocket s = null;
@@ -383,6 +397,9 @@
host, port, true);
} else {
s = (SSLSocket)serverSocket;
+ if (s instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)s).setHost(host);
+ }
}
} catch (IOException ex) {
// If we fail to connect through the tunnel, try it
@@ -451,7 +468,6 @@
//
// Get authenticated server name, if any
//
- boolean done = false;
String host = url.getHost();
// if IPv6 strip off the "[]"
@@ -467,7 +483,7 @@
// Use ciphersuite to determine whether Kerberos is present.
if (cipher.startsWith("TLS_KRB5")) {
- if (!checker.match(host, getPeerPrincipal())) {
+ if (!HostnameChecker.match(host, getPeerPrincipal())) {
throw new SSLPeerUnverifiedException("Hostname checker" +
" failed for Kerberos");
}
@@ -514,6 +530,7 @@
+ url.getHost() + ">");
}
+ @Override
protected void putInKeepAliveCache() {
kac.put(url, sslSocketFactory, this);
}
@@ -521,6 +538,7 @@
/*
* Close an idle connection to this URL (if it exists in the cache).
*/
+ @Override
public void closeIdleConnection() {
HttpClient http = (HttpClient) kac.get(url, sslSocketFactory);
if (http != null) {
@@ -626,11 +644,12 @@
* @return the proxy host being used for this client, or null
* if we're not going through a proxy
*/
+ @Override
public String getProxyHostUsed() {
if (!needsTunneling()) {
return null;
} else {
- return ((InetSocketAddress)proxy.address()).getHostName();
+ return super.getProxyHostUsed();
}
}
@@ -638,6 +657,7 @@
* @return the proxy port being used for this client. Meaningless
* if getProxyHostUsed() gives null.
*/
+ @Override
public int getProxyPortUsed() {
return (proxy == null || proxy.type() == Proxy.Type.DIRECT ||
proxy.type() == Proxy.Type.SOCKS)? -1:
--- a/jdk/src/share/classes/sun/nio/ch/Net.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/ch/Net.java Tue Apr 20 01:24:48 2010 -0700
@@ -68,6 +68,9 @@
InetSocketAddress isa = (InetSocketAddress)sa;
if (isa.isUnresolved())
throw new UnresolvedAddressException(); // ## needs arg
+ InetAddress addr = isa.getAddress();
+ if (!(addr instanceof Inet4Address || addr instanceof Inet6Address))
+ throw new IllegalArgumentException("Invalid address type");
return isa;
}
--- a/jdk/src/share/classes/sun/nio/cs/Surrogate.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/Surrogate.java Tue Apr 20 01:24:48 2010 -0700
@@ -78,8 +78,8 @@
* Tells whether or not the given UCS-4 character is in the Basic
* Multilingual Plane, and can be represented using a single char.
*/
- public static boolean isBMP(int uc) {
- return (int) (char) uc == uc;
+ public static boolean isBMPCodePoint(int uc) {
+ return uc >> 16 == 0;
}
/**
@@ -290,7 +290,7 @@
* error() will return a descriptive result object
*/
public int generate(int uc, int len, CharBuffer dst) {
- if (Surrogate.isBMP(uc)) {
+ if (Surrogate.isBMPCodePoint(uc)) {
if (Surrogate.is(uc)) {
error = CoderResult.malformedForLength(len);
return -1;
@@ -334,7 +334,7 @@
* error() will return a descriptive result object
*/
public int generate(int uc, int len, char[] da, int dp, int dl) {
- if (Surrogate.isBMP(uc)) {
+ if (Surrogate.isBMPCodePoint(uc)) {
if (Surrogate.is(uc)) {
error = CoderResult.malformedForLength(len);
return -1;
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,5508 +0,0 @@
-
-/*
- * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
-public class Big5
- extends Charset
-{
- public Big5() {
- super("Big5", ExtendedCharsets.aliasesFor("Big5"));
- }
-
- public boolean contains(Charset cs) {
- return ((cs.name().equals("US-ASCII"))
- || (cs instanceof Big5));
- }
-
- public CharsetDecoder newDecoder() {
- return new Decoder(this);
- }
-
- public CharsetEncoder newEncoder() {
- return new Encoder(this);
- }
-
-
- /**
- * These accessors are temporarily supplied while sun.io
- * converters co-exist with the sun.nio.cs.{ext} charset coders
- * These facilitate sharing of conversion tables between the
- * two co-existing implementations. When sun.io converters
- * are made extinct these will be unncessary and should be removed
- */
-
- public short[] getDecoderIndex1() {
- return Decoder.index1;
- }
-
- public String[] getDecoderIndex2() {
- return Decoder.index2;
-
- }
-
- public short[] getEncoderIndex1() {
- return Encoder.index1;
-
- }
- public String[] getEncoderIndex2() {
- return Encoder.index2;
-
- }
-
- protected static class Decoder extends DoubleByteDecoder {
-
- private final static String innerIndex0=
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3000"+
- "\uFF0C\u3001\u3002\uFF0E\u2022\uFF1B\uFF1A\uFF1F"+
- "\uFF01\uFE30\u2026\u2025\uFE50\uFF64\uFE52\u00B7"+
- "\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014"+
- "\uFE33\uFF3F\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36"+
- "\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A"+
- "\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E"+
- "\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42"+
- "\u300E\u300F\uFE43\uFE44\uFE59\uFE5A\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D"+
- "\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B"+
- "\u00A7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606"+
- "\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3"+
- "\u2105\u203E\uFFFD\uFF3F\uFFFD\uFE49\uFE4A\uFE4D"+
- "\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D"+
- "\u00D7\u00F7\u00B1\u221A\uFF1C\uFF1E\uFF1D\u2266"+
- "\u2267\u2260\u221E\u2252\u2261\uFE62\uFE63\uFE64"+
- "\uFE65\uFE66\u223C\u2229\u222A\u22A5\u2220\u221F"+
- "\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640"+
- "\u2642\u2641\u2609\u2191\u2193\u2190\u2192\u2196"+
- "\u2197\u2199\u2198\u2225\u2223\u2571\u2572\uFF0F"+
- "\uFF3C\uFF04\u00A5\u3012\u00A2\u00A3\uFF05\uFF20"+
- "\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D"+
- "\u339E\u33CE\u33A1\u338E\u338F\u33C4\u00B0\u5159"+
- "\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE"+
- "\u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588"+
- "\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C"+
- "\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595"+
- "\u250C\u2510\u2514\u2518\u256D\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u256E"+
- "\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3"+
- "\u25E5\u25E4\u2571\u2572\u2573\uFF10\uFF11\uFF12"+
- "\uFF13\uFF14\uFF15\uFF16\uFF17\uFF18\uFF19\u2160"+
- "\u2161\u2162\u2163\u2164\u2165\u2166\u2167\u2168"+
- "\u2169\u3021\u3022\u3023\u3024\u3025\u3026\u3027"+
- "\u3028\u3029\u5341\u5344\u5345\uFF21\uFF22\uFF23"+
- "\uFF24\uFF25\uFF26\uFF27\uFF28\uFF29\uFF2A\uFF2B"+
- "\uFF2C\uFF2D\uFF2E\uFF2F\uFF30\uFF31\uFF32\uFF33"+
- "\uFF34\uFF35\uFF36\uFF37\uFF38\uFF39\uFF3A\uFF41"+
- "\uFF42\uFF43\uFF44\uFF45\uFF46\uFF47\uFF48\uFF49"+
- "\uFF4A\uFF4B\uFF4C\uFF4D\uFF4E\uFF4F\uFF50\uFF51"+
- "\uFF52\uFF53\uFF54\uFF55\uFF56\uFF57\uFF58\uFF59"+
- "\uFF5A\u0391\u0392\u0393\u0394\u0395\u0396\u0397"+
- "\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F"+
- "\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8"+
- "\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7"+
- "\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF"+
- "\u03C0\u03C1\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8"+
- "\u03C9\u3105\u3106\u3107\u3108\u3109\u310A\u310B"+
- "\u310C\u310D\u310E\u310F\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3110\u3111"+
- "\u3112\u3113\u3114\u3115\u3116\u3117\u3118\u3119"+
- "\u311A\u311B\u311C\u311D\u311E\u311F\u3120\u3121"+
- "\u3122\u3123\u3124\u3125\u3126\u3127\u3128\u3129"+
- "\u02D9\u02C9\u02CA\u02C7\u02CB\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u4E00\u4E59\u4E01\u4E03"+
- "\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B"+
- "\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8"+
- "\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45"+
- "\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA"+
- "\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973"+
- "\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71"+
- "\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE"+
- "\u5F0B\u5F13\u624D\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4E11\u4E10\u4E0D"+
- "\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95"+
- "\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7"+
- "\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D"+
- "\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB"+
- "\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E"+
- "\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A"+
- "\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B"+
- "\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E"+
- "\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708"+
- "\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F"+
- "\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B"+
- "\u72AC\u738B\u4E19\u4E16\u4E15\u4E14\u4E18\u4E3B"+
- "\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6"+
- "\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189"+
- "\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F"+
- "\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361"+
- "\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC"+
- "\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6"+
- "\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB"+
- "\u56DA\u5916\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u592E\u5931\u5974\u5976"+
- "\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03"+
- "\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253"+
- "\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A"+
- "\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41"+
- "\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518"+
- "\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B"+
- "\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A"+
- "\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69"+
- "\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A"+
- "\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB"+
- "\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146"+
- "\u5148\u5168\u5171\u518D\u51B0\u5217\u5211\u5212"+
- "\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371"+
- "\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404"+
- "\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0"+
- "\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F"+
- "\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983"+
- "\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88"+
- "\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76"+
- "\u5E74\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u5F0F\u5F1B\u5FD9\u5FD6\u620E"+
- "\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9"+
- "\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734"+
- "\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57"+
- "\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D"+
- "\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8"+
- "\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033"+
- "\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC"+
- "\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840"+
- "\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F"+
- "\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50"+
- "\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46"+
- "\u4F63\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D"+
- "\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7"+
- "\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA"+
- "\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E"+
- "\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442"+
- "\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435"+
- "\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C"+
- "\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u5747\u574E\u573E\u5750\u574F\u573B"+
- "\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999"+
- "\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C"+
- "\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41"+
- "\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C"+
- "\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62"+
- "\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB"+
- "\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280"+
- "\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273"+
- "\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286"+
- "\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F"+
- "\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"+
- "\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81"+
- "\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70"+
- "\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E"+
- "\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076"+
- "\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2"+
- "\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3"+
- "\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093"+
- "\u809D\u8098\u809B\u809A\u80B2\u826F\u8292\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46"+
- "\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B"+
- "\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2"+
- "\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E"+
- "\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B"+
- "\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F"+
- "\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88"+
- "\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154"+
- "\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD"+
- "\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241"+
- "\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377"+
- "\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475\u5496"+
- "\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486"+
- "\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468"+
- "\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769"+
- "\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948"+
- "\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1"+
- "\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3"+
- "\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98"+
- "\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3"+
- "\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A"+
- "\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29"+
- "\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5"+
- "\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015"+
- "\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F"+
- "\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2"+
- "\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8"+
- "\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5"+
- "\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE"+
- "\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606"+
- "\u6602\u660E\u6600\u660F\u6615\u660A\u6607\u670D"+
- "\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777"+
- "\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E"+
- "\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23"+
- "\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3"+
- "\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2"+
- "\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE"+
- "\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA"+
- "\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7095"+
- "\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248"+
- "\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9"+
- "\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A"+
- "\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940"+
- "\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54"+
- "\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1"+
- "\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D"+
- "\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1"+
- "\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7"+
- "\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1"+
- "\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580"+
- "\u961C\u9640\u963F\u963B\u9644\u9642\u96B9\u96E8"+
- "\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF"+
- "\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8"+
- "\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA"+
- "\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E"+
- "\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9"+
- "\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC"+
- "\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7"+
- "\u54C2\u54BD\u54AA\u54C1\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u54C4\u54C8"+
- "\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF"+
- "\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793"+
- "\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF"+
- "\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01"+
- "\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01"+
- "\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D"+
- "\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D"+
- "\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89"+
- "\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070"+
- "\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064"+
- "\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE"+
- "\u62FD\u6307\u62F1\u62F7\u62EF\u62EC\u62FE\u62F4"+
- "\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625"+
- "\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624"+
- "\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6"+
- "\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA"+
- "\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2"+
- "\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7"+
- "\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C"+
- "\u6D31\u6D1E\u6D17\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6D3B\u6D3D\u6D3E"+
- "\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E"+
- "\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF"+
- "\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274"+
- "\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD"+
- "\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B"+
- "\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687"+
- "\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8"+
- "\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814"+
- "\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA"+
- "\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D"+
- "\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38"+
- "\u7F8E\u7FBF\u8004\u8010\u800D\u8011\u8036\u80D6"+
- "\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE"+
- "\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305"+
- "\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2"+
- "\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3"+
- "\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D"+
- "\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0"+
- "\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2"+
- "\u8FEA\u8FE5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u8FED\u8FEB\u8FE4\u8FE8"+
- "\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582"+
- "\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED"+
- "\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58"+
- "\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8"+
- "\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011"+
- "\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019"+
- "\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009"+
- "\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB"+
- "\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F"+
- "\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5"+
- "\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509"+
- "\u54EE\u54EA\u54E6\u5527\u5507\u54FD\u550F\u5703"+
- "\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957"+
- "\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13"+
- "\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B"+
- "\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9"+
- "\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB"+
- "\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D"+
- "\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90"+
- "\u6059\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u6063\u6065\u6050\u6055\u606D"+
- "\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C"+
- "\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E"+
- "\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350"+
- "\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549"+
- "\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652"+
- "\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821"+
- "\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829"+
- "\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840"+
- "\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A"+
- "\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0"+
- "\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59"+
- "\u6D93\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C"+
- "\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4"+
- "\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD"+
- "\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA"+
- "\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5"+
- "\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8"+
- "\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720"+
- "\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u7825\u782D\u7820\u781F\u7832\u7955"+
- "\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A"+
- "\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84"+
- "\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B"+
- "\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C"+
- "\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1"+
- "\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1"+
- "\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3"+
- "\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200"+
- "\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352"+
- "\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F"+
- "\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343";
-
- private final static String innerIndex1=
- "\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3"+
- "\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18"+
- "\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16"+
- "\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77"+
- "\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7"+
- "\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095"+
- "\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD"+
- "\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2"+
- "\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A"+
- "\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065"+
- "\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F"+
- "\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2"+
- "\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340"+
- "\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E"+
- "\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F"+
- "\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541"+
- "\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806"+
- "\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920"+
- "\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40\u5A3C"+
- "\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4"+
- "\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C"+
- "\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11"+
- "\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38"+
- "\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE"+
- "\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99"+
- "\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089"+
- "\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6"+
- "\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0"+
- "\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398"+
- "\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8"+
- "\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380"+
- "\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559"+
- "\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B"+
- "\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664"+
- "\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF"+
- "\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897"+
- "\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D"+
- "\u68A8\u689F\u68A1\u6882\u6B32\u6BBA\u6BEB\u6BEC"+
- "\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC"+
- "\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1"+
- "\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2"+
- "\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE"+
- "\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9"+
- "\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C"+
- "\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403"+
- "\u7406\u73FE\u740D\u74E0\u74F6\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u74F7"+
- "\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4"+
- "\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB"+
- "\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843"+
- "\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20"+
- "\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92"+
- "\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C"+
- "\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31"+
- "\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A"+
- "\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124"+
- "\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398"+
- "\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393"+
- "\u8389\u83A0\u8377\u837B\u837C\u8386\u83A7\u8655"+
- "\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB"+
- "\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892"+
- "\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23"+
- "\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A"+
- "\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66"+
- "\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017"+
- "\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F"+
- "\u9022\u9016\u901B\u9014\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u90E8\u90ED"+
- "\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED"+
- "\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674"+
- "\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF"+
- "\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB"+
- "\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098"+
- "\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE"+
- "\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C"+
- "\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587"+
- "\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A"+
- "\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D"+
- "\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D"+
- "\u5820\u58F9\u58FA\u5960\u5A77\u5A9A\u5A7F\u5A92"+
- "\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0"+
- "\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD"+
- "\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2"+
- "\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1"+
- "\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0"+
- "\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100"+
- "\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9"+
- "\u63C9\u63C6\u63CD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u63D2\u63E3\u63D0"+
- "\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB"+
- "\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591"+
- "\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691"+
- "\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA"+
- "\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE"+
- "\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D"+
- "\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A"+
- "\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C"+
- "\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20"+
- "\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E"+
- "\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43"+
- "\u6E1D\u6E3E\u6ECB\u6E89\u6E19\u6E4E\u6E63\u6E44"+
- "\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121"+
- "\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325"+
- "\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435"+
- "\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526"+
- "\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE"+
- "\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F"+
- "\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05"+
- "\u7A00\u7A98\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u7A97\u7A96\u7AE5\u7AE3"+
- "\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B"+
- "\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55"+
- "\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73"+
- "\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154"+
- "\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153"+
- "\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0"+
- "\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A"+
- "\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E"+
- "\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9"+
- "\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1"+
- "\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E"+
- "\u8A3C\u8A41\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A"+
- "\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD"+
- "\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8"+
- "\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1"+
- "\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E"+
- "\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109"+
- "\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209"+
- "\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B"+
- "\u9591\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9593\u9592\u958E\u968A\u968E"+
- "\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1"+
- "\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805"+
- "\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED"+
- "\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5"+
- "\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF"+
- "\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2"+
- "\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC"+
- "\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5"+
- "\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858"+
- "\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862"+
- "\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD"+
- "\u5ABC\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79"+
- "\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F"+
- "\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E"+
- "\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106"+
- "\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D"+
- "\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416"+
- "\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687"+
- "\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u695A\u6977\u6960\u6954\u6975\u6930"+
- "\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986"+
- "\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3"+
- "\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D"+
- "\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1"+
- "\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E"+
- "\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166"+
- "\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252"+
- "\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F"+
- "\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578"+
- "\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4"+
- "\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"+
- "\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE"+
- "\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891"+
- "\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C"+
- "\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77"+
- "\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93"+
- "\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A"+
- "\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084"+
- "\u8171\u8170\u8178\u8165\u816E\u8173\u816B\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u8179\u817A\u8166\u8205\u8247\u8482\u8477"+
- "\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B"+
- "\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E"+
- "\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE"+
- "\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4"+
- "\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2"+
- "\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70"+
- "\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62"+
- "\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A"+
- "\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2"+
- "\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA"+
- "\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A\u8F9F"+
- "\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055"+
- "\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041"+
- "\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257"+
- "\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251"+
- "\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598"+
- "\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7"+
- "\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811"+
- "\u9813\u980A\u9812\u980C\u98FC\u98F4\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82"+
- "\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED"+
- "\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162"+
- "\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B"+
- "\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7"+
- "\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875"+
- "\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD"+
- "\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9"+
- "\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1"+
- "\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62"+
- "\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3"+
- "\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147\u613F\u614B"+
- "\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A"+
- "\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451"+
- "\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6"+
- "\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE"+
- "\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0"+
- "\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C"+
- "\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E"+
- "\u6F20\u6F2C\u6F0F\u6F02\u6F22\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6EFF"+
- "\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B"+
- "\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7"+
- "\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292"+
- "\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D"+
- "\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1"+
- "\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7"+
- "\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31"+
- "\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75"+
- "\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9"+
- "\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0"+
- "\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5"+
- "\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC\u7F70\u7FE0\u7FE1"+
- "\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188"+
- "\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E"+
- "\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2"+
- "\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1"+
- "\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718"+
- "\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8"+
- "\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3"+
- "\u8A8D\u8AA1\u8A93\u8AA4\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8AAA\u8AA5"+
- "\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C"+
- "\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14"+
- "\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063"+
- "\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E"+
- "\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298"+
- "\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1"+
- "\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B"+
- "\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818"+
- "\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF"+
- "\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC"+
- "\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102"+
- "\u5108\u5109\u5105\u51DC\u5287\u5288\u5289\u528D"+
- "\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F"+
- "\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F"+
- "\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9"+
- "\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08"+
- "\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94"+
- "\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3"+
- "\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E"+
- "\u615D\u6155\u6182\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u617C\u6170\u616B"+
- "\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4"+
- "\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2"+
- "\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492"+
- "\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3"+
- "\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23"+
- "\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13"+
- "\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E"+
- "\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66"+
- "\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A"+
- "\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F"+
- "\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357"+
- "\u7469\u748B\u7483\u747E\u7480\u757F\u7620\u7629"+
- "\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4"+
- "\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA"+
- "\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40"+
- "\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4"+
- "\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0"+
- "\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3"+
- "\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75"+
- "\u7F77\u7FAF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u7FE9\u8026\u819B\u819C"+
- "\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE"+
- "\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC"+
- "\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766"+
- "\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D"+
- "\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2"+
- "\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2"+
- "\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C"+
- "\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED"+
- "\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3"+
- "\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21"+
- "\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A"+
- "\u8F1C\u8F1E\u8F25\u9069\u906E\u9068\u906D\u9077"+
- "\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183"+
- "\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3"+
- "\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704"+
- "\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821"+
- "\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD"+
- "\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7"+
- "\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06"+
- "\u9D09\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9D03\u9EA9\u9EBE\u9ECE\u58A8"+
- "\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA"+
- "\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669"+
- "\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C"+
- "\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D"+
- "\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9"+
- "\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5"+
- "\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2"+
- "\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9"+
- "\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59"+
- "\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47"+
- "\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1"+
- "\u6FA1\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9"+
- "\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2"+
- "\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4"+
- "\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C"+
- "\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E"+
- "\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D"+
- "\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9"+
- "\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D"+
- "\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028"+
- "\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A"+
- "\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A"+
- "\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A"+
- "\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA"+
- "\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01"+
- "\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D"+
- "\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35"+
- "\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074"+
- "\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336"+
- "\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A";
-
- private final static String innerIndex2=
- "\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7"+
- "\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713"+
- "\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B"+
- "\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B"+
- "\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB"+
- "\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12"+
- "\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121"+
- "\u5132\u52F5\u568E\u5680\u5690\u5685\u5687\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A"+
- "\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8"+
- "\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB"+
- "\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6"+
- "\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6"+
- "\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E"+
- "\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8"+
- "\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80"+
- "\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF"+
- "\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235"+
- "\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646"+
- "\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC\u77A7"+
- "\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7"+
- "\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C"+
- "\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD"+
- "\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D"+
- "\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F"+
- "\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F"+
- "\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD"+
- "\u81C9\u81BE\u81E8\u8209\u8271\u85AA\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587"+
- "\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6"+
- "\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944"+
- "\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A"+
- "\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA"+
- "\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48"+
- "\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D"+
- "\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C"+
- "\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318"+
- "\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB"+
- "\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E"+
- "\u97A0\u97D3\u9846\u98B6\u9935\u9A01\u99FF\u9BAE"+
- "\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE"+
- "\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE"+
- "\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2"+
- "\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726"+
- "\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF"+
- "\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA"+
- "\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375"+
- "\u74A7\u74BF\u7515\u7656\u7658\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7652"+
- "\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62"+
- "\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23"+
- "\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52"+
- "\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF"+
- "\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA"+
- "\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2"+
- "\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59"+
- "\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D"+
- "\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A"+
- "\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A"+
- "\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9"+
- "\u96DB\u96DE\u9724\u97A3\u97A6\u97AD\u97F9\u984D"+
- "\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D"+
- "\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E"+
- "\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D"+
- "\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF"+
- "\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5"+
- "\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3"+
- "\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206"+
- "\u720D\u7258\u72A2\u7378\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u737A\u74BD"+
- "\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919"+
- "\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37"+
- "\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73"+
- "\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5"+
- "\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE"+
- "\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49"+
- "\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C"+
- "\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E"+
- "\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF"+
- "\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8"+
- "\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727"+
- "\u9761\u97DC\u97FB\u985E\u9858\u985B\u98BC\u9945"+
- "\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB"+
- "\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93"+
- "\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4"+
- "\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518"+
- "\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032"+
- "\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C"+
- "\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0"+
- "\u8FAE\u7E7D\u7E7C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7E82\u7F4C\u8000"+
- "\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B"+
- "\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70"+
- "\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89"+
- "\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD"+
- "\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30"+
- "\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F"+
- "\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2"+
- "\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595"+
- "\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7"+
- "\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC"+
- "\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A"+
- "\u896C\u89BD\u8B74\u8B77\u8B7D\u8D13\u8E8A\u8E8D"+
- "\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A"+
- "\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF"+
- "\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF"+
- "\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8"+
- "\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B"+
- "\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF"+
- "\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A"+
- "\u766E\u766C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u79B3\u7C60\u7C5F\u807E"+
- "\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17"+
- "\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D"+
- "\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2"+
- "\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34"+
- "\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B"+
- "\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65"+
- "\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A"+
- "\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C"+
- "\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57"+
- "\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E"+
- "\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862"+
- "\u8B93\u8B92\u8B96\u8277\u8D1B\u91C0\u946A\u9742"+
- "\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F"+
- "\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3"+
- "\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1"+
- "\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064"+
- "\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C"+
- "\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7"+
- "\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E"+
- "\u7C72\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u30FE\u309D\u309E\u3005\u3041"+
- "\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049"+
- "\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051"+
- "\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059"+
- "\u305A\u305B\u305C\u305D\u305E\u305F\u3060\u3061"+
- "\u3062\u3063\u3064\u3065\u3066\u3067\u3068\u3069"+
- "\u306A\u306B\u306C\u306D\u306E\u306F\u3070\u3071"+
- "\u3072\u3073\u3074\u3075\u3076\u3077\u3078\u3079"+
- "\u307A\u307B\u307C\u307D\u307E\u307F\u3080\u3081"+
- "\u3082\u3083\u3084\u3085\u3086\u3087\u3088\u3089"+
- "\u308A\u308B\u308C\u308D\u308E\u308F\u3090\u3091"+
- "\u3092\u3093\u30A1\u30A2\u30A3\u30A4\u30A5\u30A6"+
- "\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE"+
- "\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6"+
- "\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE"+
- "\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6"+
- "\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE"+
- "\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6"+
- "\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE"+
- "\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC"+
- "\u30ED\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4"+
- "\u30F5\u30F6\u0414\u0415\u0401\u0416\u0417\u0418"+
- "\u0419\u041A\u041B\u041C\u0423\u0424\u0425\u0426"+
- "\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E"+
- "\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0451"+
- "\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D"+
- "\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445"+
- "\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D"+
- "\u044E\u044F\u2460\u2461\u2462\u2463\u2464\u2465"+
- "\u2466\u2467\u2468\u2469\u2474\u2475\u2476\u2477"+
- "\u2478\u2479\u247A\u247B\u247C\u247D\uFFFD\uFFFD"+
- "\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47"+
- "\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E"+
- "\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C"+
- "\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3"+
- "\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9"+
- "\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723"+
- "\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73"+
- "\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A"+
- "\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14"+
- "\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22"+
- "\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210"+
- "\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF"+
- "\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B"+
- "\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A"+
- "\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74"+
- "\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266"+
- "\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E"+
- "\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18"+
- "\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B\u6C4C"+
- "\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75"+
- "\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E"+
- "\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620"+
- "\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E"+
- "\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F"+
- "\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE"+
- "\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A"+
- "\u5454\u5445\u5419\u541C\u5425\u5418\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7"+
- "\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906"+
- "\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990"+
- "\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D"+
- "\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93"+
- "\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88"+
- "\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0"+
- "\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA"+
- "\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C"+
- "\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270"+
- "\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0"+
- "\u65F4\u65F3\u65F2\u65F5\u6745\u6747\u6759\u6755"+
- "\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19"+
- "\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71"+
- "\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66"+
- "\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF"+
- "\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397"+
- "\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681"+
- "\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290"+
- "\u828F\u8285\u828E\u8291\u8293\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u828A"+
- "\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5"+
- "\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33"+
- "\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74"+
- "\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79"+
- "\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82"+
- "\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232"+
- "\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392"+
- "\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B"+
- "\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F"+
- "\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9"+
- "\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780"+
- "\u5775\u577B\u5773\u5774\u5762\u5768\u577D\u590C"+
- "\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1"+
- "\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8"+
- "\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47"+
- "\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F"+
- "\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6"+
- "\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23"+
- "\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D"+
- "\u6026\u6019\u6032\u600B\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6034\u600A"+
- "\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010"+
- "\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D"+
- "\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE"+
- "\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8"+
- "\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603"+
- "\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A"+
- "\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786"+
- "\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799"+
- "\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80"+
- "\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9"+
- "\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA"+
- "\u6CC3\u6CC6\u6CED\u6CF2\u6CD2\u6CDD\u6CB4\u6C8A"+
- "\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0"+
- "\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093"+
- "\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A"+
- "\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA"+
- "\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0"+
- "\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C"+
- "\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC"+
- "\u77F9\u77FB\u77FA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u77F7\u7942\u793F"+
- "\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F"+
- "\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0"+
- "\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC"+
- "\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4"+
- "\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56"+
- "\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2"+
- "\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A"+
- "\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1"+
- "\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6"+
- "\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2"+
- "\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1"+
- "\u54AD\u54A5\u54CF\u54C3\u830D\u54B7\u54AE\u54D6"+
- "\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE"+
- "\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C"+
- "\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5"+
- "\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE"+
- "\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4"+
- "\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE"+
- "\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7"+
- "\u5CCB\u5CDB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u5CDE\u5CDA\u5CC9\u5CC7"+
- "\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE"+
- "\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24"+
- "\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E"+
- "\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045"+
- "\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F"+
- "\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF"+
- "\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F"+
- "\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315"+
- "\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621"+
- "\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A"+
- "\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2"+
- "\u67C8\u67BA\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7"+
- "\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7"+
- "\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0"+
- "\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB"+
- "\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82"+
- "\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28"+
- "\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA"+
- "\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D"+
- "\u6D42\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u6D01\u6D18\u6D37\u6D03\u6D0F"+
- "\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10"+
- "\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5"+
- "\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E"+
- "\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3"+
- "\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5"+
- "\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8"+
- "\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA"+
- "\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7"+
- "\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805"+
- "\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C"+
- "\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE"+
- "\u7A80\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79"+
- "\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91"+
- "\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8"+
- "\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3"+
- "\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6"+
- "\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307"+
- "\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC"+
- "\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u82E4\u82E0\u82FA\u82F3\u82ED\u8677"+
- "\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869"+
- "\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0"+
- "\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB"+
- "\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A"+
- "\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B"+
- "\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017"+
- "\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A"+
- "\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261"+
- "\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E"+
- "\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4"+
- "\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1";
-
- private final static String innerIndex3=
- "\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B"+
- "\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6"+
- "\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9"+
- "\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15"+
- "\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD"+
- "\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1"+
- "\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA"+
- "\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u6041\u60A2\u6088\u6080\u6092\u6081\u609D"+
- "\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219"+
- "\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336"+
- "\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341"+
- "\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A"+
- "\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6"+
- "\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712"+
- "\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B"+
- "\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F"+
- "\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828"+
- "\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D"+
- "\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4\u6BE8"+
- "\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76"+
- "\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91"+
- "\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97"+
- "\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B"+
- "\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75"+
- "\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2"+
- "\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6"+
- "\u70C7\u70DA\u70CE\u70E1\u7242\u7278\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3"+
- "\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7"+
- "\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA"+
- "\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521"+
- "\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF"+
- "\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713"+
- "\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727"+
- "\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B"+
- "\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F"+
- "\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE"+
- "\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85"+
- "\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10\u7B04\u7B13"+
- "\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84"+
- "\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D"+
- "\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F"+
- "\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96"+
- "\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA"+
- "\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F"+
- "\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356"+
- "\u833F\u8341\u8326\u831C\u8322\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8342"+
- "\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324"+
- "\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353"+
- "\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2"+
- "\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686"+
- "\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695"+
- "\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D"+
- "\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883"+
- "\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4"+
- "\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3"+
- "\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6"+
- "\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8"+
- "\u90DB\u90D7\u90DC\u90E4\u9150\u914E\u914F\u91D5"+
- "\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F"+
- "\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B"+
- "\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062"+
- "\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046"+
- "\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D"+
- "\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576"+
- "\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536"+
- "\u5535\u5530\u5552\u5545\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u550C\u5532"+
- "\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B"+
- "\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4"+
- "\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF"+
- "\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E"+
- "\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0"+
- "\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E"+
- "\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53"+
- "\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48"+
- "\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47"+
- "\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0"+
- "\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28"+
- "\u5D0D\u5D26\u5D25\u5D0F\u5D30\u5D12\u5D23\u5D1F"+
- "\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3"+
- "\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086"+
- "\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9"+
- "\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3"+
- "\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD"+
- "\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387"+
- "\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C"+
- "\u63A4\u633B\u639F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6378\u6385\u6381"+
- "\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B"+
- "\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C"+
- "\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC"+
- "\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C"+
- "\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896"+
- "\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C"+
- "\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F"+
- "\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3"+
- "\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00"+
- "\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD"+
- "\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5"+
- "\u6DC2\u6DCF\u6DC9\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7"+
- "\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4"+
- "\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106"+
- "\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E"+
- "\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318"+
- "\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8"+
- "\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC"+
- "\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE"+
- "\u75D2\u75CF\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u75CB\u75CC\u75D1\u75D0"+
- "\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732"+
- "\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852"+
- "\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964"+
- "\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA"+
- "\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47"+
- "\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A"+
- "\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A"+
- "\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38"+
- "\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E"+
- "\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D"+
- "\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF"+
- "\u7FC9\u801F\u801E\u801B\u8047\u8043\u8048\u8118"+
- "\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121"+
- "\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A"+
- "\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A"+
- "\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375"+
- "\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA"+
- "\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F"+
- "\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF"+
- "\u86B7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u86C2\u86C1\u86C5\u86BA\u86B0"+
- "\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC"+
- "\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2"+
- "\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899"+
- "\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982"+
- "\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39"+
- "\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79"+
- "\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD"+
- "\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C"+
- "\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3"+
- "\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153"+
- "\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9"+
- "\u91EA\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588"+
- "\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804"+
- "\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3"+
- "\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082"+
- "\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591"+
- "\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588"+
- "\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C"+
- "\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u5819\u581E\u5827\u5823\u5828\u57F5"+
- "\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E"+
- "\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94"+
- "\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5"+
- "\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83"+
- "\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93"+
- "\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE"+
- "\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F"+
- "\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D"+
- "\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32"+
- "\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5"+
- "\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"+
- "\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC"+
- "\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104"+
- "\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8"+
- "\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5"+
- "\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4"+
- "\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0"+
- "\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568"+
- "\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u667C\u666C\u667B\u6680\u6671\u6679\u666A"+
- "\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC"+
- "\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6"+
- "\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970"+
- "\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD"+
- "\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD"+
- "\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915"+
- "\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97"+
- "\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC"+
- "\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45"+
- "\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33"+
- "\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E\u6E68"+
- "\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39"+
- "\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77"+
- "\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120"+
- "\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122"+
- "\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288"+
- "\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322"+
- "\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335"+
- "\u730C\u742E\u742C\u7430\u742B\u7416\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429"+
- "\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA"+
- "\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692"+
- "\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E"+
- "\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C"+
- "\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E"+
- "\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03"+
- "\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44"+
- "\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E"+
- "\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67"+
- "\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69"+
- "\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65\u7F66\u7FA2"+
- "\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4"+
- "\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A"+
- "\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D"+
- "\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8"+
- "\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8"+
- "\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF"+
- "\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F"+
- "\u83DE\u8411\u8406\u83C2\u83F3\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u83D5"+
- "\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE"+
- "\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8"+
- "\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB"+
- "\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856"+
- "\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6"+
- "\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998"+
- "\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59"+
- "\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51"+
- "\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE"+
- "\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3"+
- "\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8"+
- "\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA\u8EF9\u8EE6\u8EEE"+
- "\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC"+
- "\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104"+
- "\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107"+
- "\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201"+
- "\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200"+
- "\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C"+
- "\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C"+
- "\u9590\u9687\u967E\u9688\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9689\u9683"+
- "\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770"+
- "\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84"+
- "\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4"+
- "\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9"+
- "\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3"+
- "\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4"+
- "\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2"+
- "\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853"+
- "\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E"+
- "\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC"+
- "\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0"+
- "\u5ABF\u5AC8\u5ABB\u5AC6\u5AB7\u5AC0\u5ACA\u5AB4"+
- "\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F"+
- "\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E"+
- "\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D"+
- "\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF"+
- "\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132"+
- "\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168"+
- "\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412"+
- "\u6409\u6420\u6424\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6433\u6443\u641F"+
- "\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426"+
- "\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440"+
- "\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E"+
- "\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B"+
- "\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938"+
- "\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942"+
- "\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933"+
- "\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F"+
- "\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B"+
- "\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B"+
- "\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B"+
- "\uFA0D\u6BFB\u6BFC\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6"+
- "\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1"+
- "\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7"+
- "\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC"+
- "\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF"+
- "\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154"+
- "\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178"+
- "\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F"+
- "\u7150\u7153\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u7144\u714D\u715A\u724F"+
- "\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B"+
- "\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452"+
- "\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446"+
- "\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579"+
- "\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC"+
- "\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD"+
- "\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756"+
- "\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887"+
- "\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1"+
- "\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982"+
- "\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15"+
- "\u7A22\u7A13\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB"+
- "\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73"+
- "\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4"+
- "\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A"+
- "\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D"+
- "\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5"+
- "\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C"+
- "\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167"+
- "\u816F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u8144\u8161\u821D\u8249\u8244"+
- "\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479"+
- "\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430"+
- "\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507"+
- "\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432"+
- "\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F"+
- "\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E"+
- "\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B"+
- "\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C"+
- "\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701"+
- "\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE"+
- "\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5"+
- "\u89E4\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86"+
- "\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83"+
- "\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64"+
- "\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91"+
- "\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92"+
- "\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3"+
- "\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01"+
- "\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u9044\u9049\u903D\u9110\u910D\u910F"+
- "\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248"+
- "\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283"+
- "\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267"+
- "\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250"+
- "\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C"+
- "\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA"+
- "\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F"+
- "\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0"+
- "\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80"+
- "\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA"+
- "\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0";
-
- private final static String innerIndex4=
- "\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627"+
- "\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613"+
- "\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C"+
- "\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A"+
- "\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894"+
- "\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA"+
- "\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC"+
- "\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A"+
- "\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D"+
- "\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7"+
- "\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43"+
- "\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173"+
- "\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A"+
- "\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227"+
- "\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472"+
- "\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E"+
- "\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C"+
- "\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0"+
- "\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9\u69A0"+
- "\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E"+
- "\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD"+
- "\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993"+
- "\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5"+
- "\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0"+
- "\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25"+
- "\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A"+
- "\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C"+
- "\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6"+
- "\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08"+
- "\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F"+
- "\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295"+
- "\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471"+
- "\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D"+
- "\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614"+
- "\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F"+
- "\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E"+
- "\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998"+
- "\u798A\u798B\u7996\u7995\u7994\u7993\u7997\u7988"+
- "\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26"+
- "\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91"+
- "\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98"+
- "\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA"+
- "\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5"+
- "\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9"+
- "\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9"+
- "\u7F73\u7FE2\u7FE3\u7FE5\u7FDE\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8024"+
- "\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C"+
- "\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE"+
- "\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD"+
- "\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2"+
- "\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6"+
- "\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB"+
- "\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740"+
- "\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741"+
- "\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712"+
- "\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724"+
- "\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA"+
- "\u88FE\u88EE\u88FC\u88F6\u88FB\u88F0\u88EC\u88EB"+
- "\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB"+
- "\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69"+
- "\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D"+
- "\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00"+
- "\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120"+
- "\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A"+
- "\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A"+
- "\u92A0\u9294\u92AA\u928D\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u92A6\u929A"+
- "\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282"+
- "\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C"+
- "\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D"+
- "\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783"+
- "\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD"+
- "\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C"+
- "\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1"+
- "\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1"+
- "\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106"+
- "\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B"+
- "\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641"+
- "\u564A\u5649\u5646\u5658\u565A\u5640\u5633\u563D"+
- "\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D"+
- "\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF"+
- "\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02"+
- "\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97"+
- "\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1"+
- "\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB"+
- "\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1"+
- "\u61B0\u61A2\u6189\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u619B\u6193\u61AF"+
- "\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3"+
- "\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C"+
- "\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1"+
- "\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5"+
- "\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06"+
- "\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF"+
- "\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE"+
- "\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D"+
- "\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6"+
- "\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2"+
- "\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E"+
- "\u6F87\u6FC6\u6F92\u6F8D\u6F89\u6F8C\u6F62\u6F4F"+
- "\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72"+
- "\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61"+
- "\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F"+
- "\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B"+
- "\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E"+
- "\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A"+
- "\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361"+
- "\u735A\u7359\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u7362\u7487\u7489\u748A"+
- "\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508"+
- "\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623"+
- "\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D"+
- "\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1"+
- "\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1"+
- "\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4"+
- "\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9"+
- "\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB"+
- "\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6"+
- "\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD"+
- "\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067"+
- "\u81A3\u819F\u819E\u8195\u81A2\u8199\u8197\u8216"+
- "\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B"+
- "\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A"+
- "\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4"+
- "\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512"+
- "\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502"+
- "\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0"+
- "\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F"+
- "\u8662\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u8756\u8763\u8764\u8777\u87E1"+
- "\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751"+
- "\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F"+
- "\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775"+
- "\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B"+
- "\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909"+
- "\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6"+
- "\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE"+
- "\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E"+
- "\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD"+
- "\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25"+
- "\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26"+
- "\u8E27\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A"+
- "\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17"+
- "\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129"+
- "\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181"+
- "\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9"+
- "\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD"+
- "\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6"+
- "\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u92B5\u92E1\u92C6\u92B4\u957C\u95AC"+
- "\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708"+
- "\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E"+
- "\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2"+
- "\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC"+
- "\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8"+
- "\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2"+
- "\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76"+
- "\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD"+
- "\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05"+
- "\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117"+
- "\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"+
- "\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C"+
- "\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC"+
- "\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10"+
- "\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1"+
- "\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2"+
- "\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9"+
- "\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8"+
- "\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF"+
- "\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533"+
- "\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB"+
- "\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66"+
- "\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76"+
- "\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A"+
- "\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C"+
- "\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54"+
- "\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03"+
- "\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8"+
- "\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5"+
- "\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8\u6FA2"+
- "\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2"+
- "\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA"+
- "\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB"+
- "\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B"+
- "\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1"+
- "\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C"+
- "\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1"+
- "\u779C\u779B\u77A2\u77A3\u7795\u7799\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB"+
- "\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48"+
- "\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3"+
- "\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4"+
- "\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4"+
- "\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F"+
- "\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B"+
- "\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B"+
- "\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1"+
- "\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4"+
- "\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556"+
- "\u8545\u856B\u854D\u8553\u8561\u8558\u8540\u8546"+
- "\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E"+
- "\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560"+
- "\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665"+
- "\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781"+
- "\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791"+
- "\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926"+
- "\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923"+
- "\u892F\u892C\u891F\u89F1\u8AE0\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u8AE2"+
- "\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0"+
- "\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91"+
- "\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C"+
- "\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45"+
- "\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36"+
- "\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079"+
- "\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190"+
- "\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306"+
- "\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301"+
- "\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325"+
- "\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329"+
- "\u9339\u9335\u932A\u9314\u930C\u930B\u92FE\u9309"+
- "\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA"+
- "\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712"+
- "\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F"+
- "\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC"+
- "\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9"+
- "\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33"+
- "\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93"+
- "\u9B92\u9B90\u9B7A\u9B95\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9B7D\u9B88"+
- "\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18"+
- "\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE"+
- "\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125"+
- "\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D"+
- "\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6"+
- "\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C"+
- "\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7"+
- "\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7"+
- "\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3"+
- "\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2"+
- "\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1"+
- "\u6A9E\u6A87\u6A93\u6A8E\u6A95\u6A83\u6AA8\u6AA4"+
- "\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B"+
- "\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC"+
- "\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8"+
- "\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373"+
- "\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD"+
- "\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584"+
- "\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB"+
- "\u77B2\u77B7\u77B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u77B4\u77B1\u77A8"+
- "\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905"+
- "\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56"+
- "\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F"+
- "\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3"+
- "\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0"+
- "\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33"+
- "\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C"+
- "\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E"+
- "\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA"+
- "\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583"+
- "\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B"+
- "\u85A4\u859A\u859E\u8577\u857C\u8589\u85A1\u857A"+
- "\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D"+
- "\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598"+
- "\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0"+
- "\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2"+
- "\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF"+
- "\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E"+
- "\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2"+
- "\u89F3\u8B1E\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u8B18\u8B16\u8B11\u8B05"+
- "\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08"+
- "\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71"+
- "\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53"+
- "\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138"+
- "\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0"+
- "\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358"+
- "\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F"+
- "\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371"+
- "\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E"+
- "\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE"+
- "\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A"+
- "\u97A1\u979C\u979E\u979D\u97D5\u97D4\u97F1\u9841"+
- "\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C"+
- "\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998"+
- "\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8"+
- "\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE"+
- "\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B"+
- "\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF"+
- "\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38"+
- "\u9D30\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9D45\u9D42\u9D43\u9D3E\u9D37"+
- "\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0"+
- "\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54"+
- "\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A"+
- "\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D"+
- "\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0"+
- "\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501"+
- "\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5"+
- "\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7"+
- "\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D"+
- "\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026"+
- "\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD"+
- "\u7376\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB"+
- "\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653"+
- "\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF"+
- "\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD"+
- "\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D"+
- "\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50"+
- "\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57"+
- "\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u81D0\u825F\u825E\u85B4\u85C6\u85C0"+
- "\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF"+
- "\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624"+
- "\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB"+
- "\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC"+
- "\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801"+
- "\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946"+
- "\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30"+
- "\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37"+
- "\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42"+
- "\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00"+
- "\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67";
-
- private final static String innerIndex5=
- "\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47"+
- "\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5"+
- "\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B"+
- "\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395"+
- "\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4"+
- "\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3"+
- "\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722"+
- "\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA"+
- "\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F"+
- "\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07"+
- "\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35"+
- "\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1"+
- "\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C"+
- "\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C"+
- "\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C"+
- "\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29"+
- "\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4"+
- "\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD"+
- "\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70\u5FBF"+
- "\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584"+
- "\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9"+
- "\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE"+
- "\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B"+
- "\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A"+
- "\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4"+
- "\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660"+
- "\u77C9\u77CA\u77C4\u77F1\u791D\u791B\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33"+
- "\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75"+
- "\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68"+
- "\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078"+
- "\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED"+
- "\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8"+
- "\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF"+
- "\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809"+
- "\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802"+
- "\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D"+
- "\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A"+
- "\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55\u8B51\u8B42"+
- "\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07"+
- "\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73"+
- "\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50"+
- "\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7"+
- "\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9"+
- "\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4"+
- "\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1"+
- "\u9729\u972B\u972C\u9728\u9726\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u97B3"+
- "\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D"+
- "\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943"+
- "\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B"+
- "\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2"+
- "\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0"+
- "\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC"+
- "\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81"+
- "\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B"+
- "\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85"+
- "\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68"+
- "\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D"+
- "\u9F56\u9F57\u9F58\u5337\u56B2\u56B5\u56B3\u58E3"+
- "\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9"+
- "\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4"+
- "\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF"+
- "\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038"+
- "\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213"+
- "\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE"+
- "\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923"+
- "\u7927\u7928\u7924\u7929\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u79B2\u7A6E"+
- "\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45"+
- "\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079"+
- "\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601"+
- "\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C"+
- "\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963"+
- "\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63"+
- "\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59"+
- "\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141"+
- "\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420"+
- "\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D"+
- "\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA"+
- "\u9409\u93F8\u940A\u93FF\u93FC\u940C\u93F6\u9411"+
- "\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB"+
- "\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2"+
- "\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34"+
- "\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D"+
- "\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08"+
- "\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06"+
- "\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92"+
- "\u9D98\u9D90\u9D9B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9DA0\u9D94\u9D9C"+
- "\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3"+
- "\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A"+
- "\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60"+
- "\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297"+
- "\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1"+
- "\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043"+
- "\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A"+
- "\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F"+
- "\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86"+
- "\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626"+
- "\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620"+
- "\u8629\u861E\u8625\u8829\u881D\u881B\u8820\u8824"+
- "\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA"+
- "\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF"+
- "\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145"+
- "\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430"+
- "\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4"+
- "\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6"+
- "\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42"+
- "\u9A41\u9A3A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u9A3F\u9ACD\u9B15\u9B17"+
- "\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C"+
- "\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC"+
- "\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB"+
- "\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD"+
- "\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE"+
- "\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64"+
- "\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C"+
- "\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B"+
- "\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E"+
- "\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D"+
- "\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59"+
- "\u7C5B\u7C5A\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE"+
- "\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C"+
- "\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB"+
- "\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95"+
- "\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62"+
- "\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445"+
- "\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB"+
- "\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48"+
- "\u9A4A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9A49\u9A52\u9A50\u9AD0\u9B19"+
- "\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44"+
- "\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D"+
- "\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC"+
- "\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5"+
- "\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B"+
- "\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D"+
- "\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525"+
- "\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A"+
- "\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66"+
- "\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B"+
- "\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973"+
- "\u89FE\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98"+
- "\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E"+
- "\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20"+
- "\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59"+
- "\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8"+
- "\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2"+
- "\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2"+
- "\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD"+
- "\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061"+
- "\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7"+
- "\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837"+
- "\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D"+
- "\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746"+
- "\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63"+
- "\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07"+
- "\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD"+
- "\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4"+
- "\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226"+
- "\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"+
- "\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648"+
- "\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5"+
- "\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749"+
- "\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10"+
- "\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78"+
- "\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2"+
- "\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74"+
- "\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D"+
- "\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874"+
- "\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15"+
- "\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482"+
- "\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B"+
- "\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D"+
- "\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD";
-
- private final static short index1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 34, 35, 36, 37, 38, 39, 0, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 0, 0, 0, 0, 0, 0
- };
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2,
- innerIndex3,
- innerIndex4,
- innerIndex5
- };
-
- public Decoder(Charset cs) {
- super(cs,
- index1,
- index2,
- 0x40,
- 0xFE);
- }
- }
-
- protected static class Encoder extends DoubleByteEncoder {
- private final static String innerIndex0=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA246\uA247\u0000\uA244\u0000\uA1B1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA258\uA1D3\u0000\u0000\u0000\u0000\u0000\uA150"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1D1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1D2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA3BE"+
- "\u0000\uA3BC\uA3BD\uA3BF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA3BB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA344\uA345\uA346\uA347\uA348\uA349\uA34A"+
- "\uA34B\uA34C\uA34D\uA34E\uA34F\uA350\uA351\uA352"+
- "\uA353\uA354\u0000\uA355\uA356\uA357\uA358\uA359"+
- "\uA35A\uA35B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA35C\uA35D\uA35E\uA35F\uA360\uA361\uA362"+
- "\uA363\uA364\uA365\uA366\uA367\uA368\uA369\uA36A"+
- "\uA36B\uA36C\u0000\uA36D\uA36E\uA36F\uA370\uA371"+
- "\uA372\uA373\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC7B3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC7B1\uC7B2\uC7B4\uC7B5"+
- "\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC7BB\uC7BC\uC7BD\uC7BE\uC7BF"+
- "\uC7C0\uC7C1\uC7C2\uC7C3\uC7C4\uC7C5\uC7C6\uC7C7"+
- "\uC7C8\uC7C9\uC7CA\uC7CB\uC7CC\uC7CD\uC7CF\uC7D0"+
- "\uC7D1\uC7D2\uC7D3\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8"+
- "\uC7D9\uC7DA\uC7DB\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0"+
- "\uC7E1\uC7E2\uC7E3\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8"+
- "\u0000\uC7CE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA156\uA158\u0000\u0000\u0000"+
- "\uA1A5\uA1A6\u0000\u0000\uA1A7\uA1A8\u0000\u0000"+
- "\u0000\u0000\uA145\u0000\u0000\uA14C\uA14B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA1AC\u0000\u0000\uA1AB\u0000\u0000"+
- "\u0000\u0000\u0000\uA1B0\u0000\u0000\uA1C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA24A\u0000\uA1C1\u0000\u0000"+
- "\u0000\uA24B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA2B9\uA2BA\uA2BB\uA2BC\uA2BD\uA2BE\uA2BF\uA2C0"+
- "\uA2C1\uA2C2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA1F6\uA1F4\uA1F7\uA1F5\u0000\u0000\uA1F8\uA1F9"+
- "\uA1FB\uA1FA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA1D4\u0000\u0000\u0000\uA1DB\uA1E8"+
- "\uA1E7\u0000\u0000\uA1FD\u0000\uA1FC\u0000\u0000"+
- "\u0000\uA1E4\uA1E5\uA1EC\u0000\u0000\uA1ED\u0000"+
- "\u0000\u0000\u0000\u0000\uA1EF\uA1EE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA1E3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA1DC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA1DA\uA1DD\u0000\u0000\u0000\u0000\uA1D8\uA1D9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA1E6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA1E9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC7E9\uC7EA\uC7EB\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0"+
- "\uC7F1\uC7F2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC7F3\uC7F4\uC7F5\uC7F6"+
- "\uC7F7\uC7F8\uC7F9\uC7FA\uC7FB\uC7FC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA277\u0000\uA278\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA27A\u0000\u0000\u0000"+
- "\uA27B\u0000\u0000\u0000\uA27C\u0000\u0000\u0000"+
- "\uA27D\u0000\u0000\u0000\uA275\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA274\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA273\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA272\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA271\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA2A4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA2A5\u0000"+
- "\u0000\uA2A7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA2A6\u0000\u0000\uA27E\uA2A1\uA2A3"+
- "\uA2A2\uA2AC\uA2AD\uA2AE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA262\uA263\uA264\uA265\uA266\uA267\uA268"+
- "\uA269\uA270\uA26F\uA26E\uA26D\uA26C\uA26B\uA26A"+
- "\u0000\u0000\u0000\u0000\uA276\uA279\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA1BD\uA1BC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA1B6\uA1B5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA1BF\uA1BE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA1BB\uA1BA"+
- "\u0000\u0000\u0000\uA1B3\u0000\u0000\uA1B7\uA1B4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA2A8\uA2A9\uA2AB\uA2AA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA1B9\uA1B8\u0000"+
- "\u0000\uA1F3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA1F0\uA1F2\uA1F1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA140\uA142\uA143\uA1B2\u0000\uC6A4\u0000\u0000"+
- "\uA171\uA172\uA16D\uA16E\uA175\uA176\uA179\uA17A"+
- "\uA169\uA16A\uA245\u0000\uA165\uA166\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA1A9\uA1AA\u0000"+
- "\u0000\uA2C3\uA2C4\uA2C5\uA2C6\uA2C7\uA2C8\uA2C9"+
- "\uA2CA\uA2CB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC6A5\uC6A6\uC6A7\uC6A8\uC6A9\uC6AA\uC6AB"+
- "\uC6AC\uC6AD\uC6AE\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3"+
- "\uC6B4\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB"+
- "\uC6BC\uC6BD\uC6BE\uC6BF\uC6C0\uC6C1\uC6C2\uC6C3"+
- "\uC6C4\uC6C5\uC6C6\uC6C7\uC6C8\uC6C9\uC6CA\uC6CB"+
- "\uC6CC\uC6CD\uC6CE\uC6CF\uC6D0\uC6D1\uC6D2\uC6D3"+
- "\uC6D4\uC6D5\uC6D6\uC6D7\uC6D8\uC6D9\uC6DA\uC6DB"+
- "\uC6DC\uC6DD\uC6DE\uC6DF\uC6E0\uC6E1\uC6E2\uC6E3"+
- "\uC6E4\uC6E5\uC6E6\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB"+
- "\uC6EC\uC6ED\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3"+
- "\uC6F4\uC6F5\uC6F6\uC6F7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6A2\uC6A3\u0000"+
- "\u0000\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD\uC6FE"+
- "\uC740\uC741\uC742\uC743\uC744\uC745\uC746\uC747"+
- "\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E\uC74F"+
- "\uC750\uC751\uC752\uC753\uC754\uC755\uC756\uC757"+
- "\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E\uC75F"+
- "\uC760\uC761\uC762\uC763\uC764\uC765\uC766\uC767"+
- "\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E\uC76F"+
- "\uC770\uC771\uC772\uC773\uC774\uC775\uC776\uC777"+
- "\uC778\uC779\uC77A\uC77B\uC77C\uC77D\uC77E\uC7A1"+
- "\uC7A2\uC7A3\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9"+
- "\uC7AA\uC7AB\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6A1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA374\uA375\uA376"+
- "\uA377\uA378\uA379\uA37A\uA37B\uA37C\uA37D\uA37E"+
- "\uA3A1\uA3A2\uA3A3\uA3A4\uA3A5\uA3A6\uA3A7\uA3A8"+
- "\uA3A9\uA3AA\uA3AB\uA3AC\uA3AD\uA3AE\uA3AF\uA3B0"+
- "\uA3B1\uA3B2\uA3B3\uA3B4\uA3B5\uA3B6\uA3B7\uA3B8"+
- "\uA3B9\uA3BA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA1C0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA255\uA256"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA250\uA251\uA252\u0000"+
- "\u0000\uA254\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA257\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA253\u0000"+
- "\u0000\uA1EB\uA1EA\u0000\u0000\uA24F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA440\uA442\u0000\uA443\u0000\u0000\u0000\uC945"+
- "\uA456\uA454\uA457\uA455\uC946\uA4A3\uC94F\uC94D"+
- "\uA4A2\uA4A1\u0000\u0000\uA542\uA541\uA540\u0000"+
- "\uA543\uA4FE\u0000\u0000\u0000\u0000\uA5E0\uA5E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA8C3\u0000"+
- "\u0000\u0000\u0000\uA458\u0000\uA4A4\uC950\u0000"+
- "\uA4A5\uC963\uA6EA\uCBB1\u0000\u0000\u0000\u0000"+
- "\uA459\uA4A6\u0000\uA544\uC964\u0000\u0000\u0000"+
- "\u0000\u0000\uC940\uA444\u0000\uA45B\u0000\uC947"+
- "\uA45C\u0000\u0000\uA4A7\u0000\uA545\uA547\uA546"+
- "\u0000\u0000\uA5E2\uA5E3\u0000\u0000\uA8C4\u0000"+
- "\uADBC\uA441\u0000\u0000\uC941\uA445\uA45E\uA45D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA5E4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA8C5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uB0AE\uD44B"+
- "\u0000\u0000\uB6C3\uDCB1\uDCB2\u0000\uA446\u0000"+
- "\uA4A9\u0000\u0000\uA8C6\uA447\uC948\uA45F\u0000"+
- "\u0000\uA4AA\uA4AC\uC951\uA4AD\uA4AB\u0000\u0000"+
- "\u0000\uA5E5\u0000\uA8C7\u0000\u0000\uA8C8\uAB45"+
- "\u0000\uA460\uA4AE\u0000\uA5E6\uA5E8\uA5E7\u0000"+
- "\uA6EB\u0000\u0000\uA8C9\uA8CA\uAB46\uAB47\u0000"+
- "\u0000\u0000\u0000\uADBD\u0000\u0000\uDCB3\u0000"+
- "\u0000\uF6D6\uA448\u0000\u0000\u0000\u0000\u0000"+
- "\uA4B0\uA4AF\uC952\uA4B1\uA4B7\u0000\uA4B2\uA4B3"+
- "\uC954\uC953\uA4B5\uA4B6\u0000\uA4B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA54A\uA54B\uA54C\uA54D"+
- "\uA549\uA550\uC96A\u0000\uC966\uC969\uA551\uA561"+
- "\u0000\uC968\u0000\uA54E\uA54F\uA548\u0000\u0000"+
- "\uC965\uC967\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA5F5\uC9B0\uA5F2\uA5F6\uC9BA\uC9AE\uA5F3\uC9B2"+
- "\u0000\u0000\u0000\uA5F4\u0000\uA5F7\u0000\uA5E9";
-
- private final static String innerIndex1=
- "\uC9B1\uA5F8\uC9B5\u0000\uC9B9\uC9B6\u0000\u0000"+
- "\uC9B3\uA5EA\uA5EC\uA5F9\u0000\uA5EE\uC9AB\uA5F1"+
- "\uA5EF\uA5F0\uC9BB\uC9B8\uC9AF\uA5ED\u0000\u0000"+
- "\uC9AC\uA5EB\u0000\u0000\u0000\uC9B4\u0000\u0000"+
- "\u0000\u0000\uC9B7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC9AD\uCA66\u0000\uA742"+
- "\uA6F4\u0000\u0000\uCA67\uA6F1\u0000\uA744\u0000"+
- "\uA6F9\u0000\uA6F8\uCA5B\uA6FC\uA6F7\uCA60\uCA68"+
- "\u0000\uCA64\u0000\uA6FA\u0000\u0000\uA6FD\uA6EE"+
- "\uA747\uCA5D\u0000\u0000\uCBBD\uA6EC\uA743\uA6ED"+
- "\uA6F5\uA6F6\uCA62\uCA5E\uA6FB\uA6F3\uCA5A\uA6EF"+
- "\uCA65\uA745\uA748\uA6F2\uA740\uA746\uA6F0\uCA63"+
- "\uA741\uCA69\uCA5C\uA6FE\uCA5F\u0000\u0000\uCA61"+
- "\u0000\uA8D8\uCBBF\uCBCB\uA8D0\u0000\uCBCC\uA8CB"+
- "\uA8D5\u0000\u0000\uA8CE\uCBB9\uA8D6\uCBB8\uCBBC"+
- "\uCBC3\uCBC1\uA8DE\uA8D9\uCBB3\uCBB5\uA8DB\uA8CF"+
- "\uCBB6\uCBC2\uCBC9\uA8D4\uCBBB\uCBB4\uA8D3\uCBB7"+
- "\uA8D7\uCBBA\u0000\uA8D2\u0000\uA8CD\u0000\uA8DC"+
- "\uCBC4\uA8DD\uCBC8\u0000\uCBC6\uCBCA\uA8DA\uCBBE"+
- "\uCBB2\u0000\uCBC0\uA8D1\uCBC5\uA8CC\uCBC7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uAB56\uAB4A"+
- "\u0000\u0000\uCDE0\uCDE8\u0000\uAB49\uAB51\uAB5D"+
- "\u0000\uCDEE\uCDEC\uCDE7\u0000\u0000\u0000\uAB4B"+
- "\uCDED\uCDE3\uAB59\uAB50\uAB58\uCDDE\u0000\uCDEA"+
- "\u0000\uCDE1\uAB54\uCDE2\u0000\uCDDD\uAB5B\uAB4E"+
- "\uAB57\uAB4D\u0000\uCDDF\uCDE4\u0000\uCDEB\uAB55"+
- "\uAB52\uCDE6\uAB5A\uCDE9\uCDE5\uAB4F\uAB5C\uAB53"+
- "\uAB4C\uAB48\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uCDEF\u0000\uADD7\uADC1"+
- "\u0000\uADD1\u0000\uADD6\uD0D0\uD0CF\uD0D4\uD0D5"+
- "\uADC4\u0000\uADCD\u0000\u0000\u0000\uADDA\u0000"+
- "\uADCE\u0000\u0000\u0000\u0000\uD0C9\uADC7\uD0CA"+
- "\u0000\uADDC\u0000\uADD3\uADBE\uADBF\uD0DD\uB0BF"+
- "\u0000\uADCC\uADCB\uD0CB\uADCF\uD45B\uADC6\uD0D6"+
- "\uADD5\uADD4\uADCA\uD0CE\uD0D7\u0000\uD0C8\uADC9"+
- "\uD0D8\uADD2\uD0CC\uADC0\u0000\uADC3\uADC2\uD0D9"+
- "\uADD0\uADC5\uADD9\uADDB\uD0D3\uADD8\u0000\uD0DB"+
- "\uD0CD\uD0DC\u0000\uD0D1\u0000\uD0DA\u0000\uD0D2"+
- "\u0000\u0000\u0000\u0000\uADC8\u0000\u0000\u0000"+
- "\uD463\uD457\u0000\uB0B3\u0000\uD45C\uD462\uB0B2"+
- "\uD455\uB0B6\uD459\uD452\uB0B4\uD456\uB0B9\uB0BE"+
- "\u0000\uD467\u0000\uD451\u0000\uB0BA\u0000\uD466"+
- "\u0000\u0000\uB0B5\uD458\uB0B1\uD453\uD44F\uD45D"+
- "\uD450\uD44E\uD45A\uD460\uD461\uB0B7\u0000\u0000"+
- "\uD85B\uD45E\uD44D\uD45F\u0000\uB0C1\uD464\uB0C0"+
- "\uD44C\u0000\uD454\uD465\uB0BC\uB0BB\uB0B8\uB0BD"+
- "\u0000\u0000\uB0AF\u0000\u0000\uB0B0\u0000\u0000"+
- "\uB3C8\u0000\uD85E\uD857\u0000\uB3C5\u0000\uD85F"+
- "\u0000\u0000\u0000\uD855\uD858\uB3C4\uD859\u0000"+
- "\u0000\uB3C7\uD85D\u0000\uD853\uD852\uB3C9\u0000"+
- "\uB3CA\uB3C6\uB3CB\uD851\uD85C\uD85A\uD854\u0000"+
- "\u0000\u0000\uB3C3\uD856\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uB6CA\uB6C4\uDCB7\uB6CD"+
- "\uDCBD\uDCC0\uB6C6\uB6C7\uDCBA\uB6C5\uDCC3\uB6CB"+
- "\uDCC4\u0000\uDCBF\uB6CC\u0000\uDCB4\uB6C9\uDCB5"+
- "\u0000\uDCBE\uDCBC\u0000\uDCB8\uB6C8\uDCB6\uB6CE"+
- "\uDCBB\uDCC2\uDCB9\uDCC1\u0000\u0000\uB9B6\uB9B3"+
- "\u0000\uB9B4\u0000\uE0F9\uE0F1\uB9B2\uB9AF\uE0F2"+
- "\u0000\u0000\uB9B1\uE0F5\u0000\uE0F7\u0000\u0000"+
- "\uE0FE\u0000\u0000\uE0FD\uE0F8\uB9AE\uE0F0\uB9AC"+
- "\uE0F3\uB9B7\uE0F6\u0000\uE0FA\uB9B0\uB9AD\uE0FC"+
- "\uE0FB\uB9B5\u0000\uE0F4\u0000\uBBF8\uE4EC\u0000"+
- "\uE4E9\uBBF9\u0000\uBBF7\u0000\uE4F0\uE4ED\uE4E6"+
- "\uBBF6\u0000\uBBFA\uE4E7\uBBF5\uBBFD\uE4EA\uE4EB"+
- "\uBBFB\uBBFC\uE4F1\uE4EE\uE4EF\u0000\u0000\u0000"+
- "\uBEAA\uE8F8\uBEA7\uE8F5\uBEA9\uBEAB\u0000\uE8F6"+
- "\uBEA8\u0000\uE8F7\u0000\uE8F4\u0000\u0000\uC076"+
- "\uECBD\uC077\uECBB\u0000\uECBC\uECBA\uECB9\u0000"+
- "\u0000\uECBE\uC075\u0000\u0000\uEFB8\uEFB9\u0000"+
- "\uE4E8\uEFB7\uC078\uC35F\uF1EB\uF1EC\u0000\uC4D7"+
- "\uC4D8\uF5C1\uF5C0\uC56C\uC56B\uF7D0\u0000\uA449"+
- "\uA461\uA4B9\u0000\uA4B8\uA553\uA552\uA5FC\uA5FB"+
- "\uA5FD\uA5FA\u0000\uA74A\uA749\uA74B\u0000\u0000"+
- "\u0000\u0000\uA8E0\u0000\uA8DF\uA8E1\u0000\uAB5E"+
- "\u0000\uA259\uD0DE\uA25A\uB0C2\uA25C\uA25B\uD860"+
- "\u0000\uA25D\uB9B8\uA25E\u0000\uA44A\u0000\uA4BA"+
- "\uA5FE\uA8E2\u0000\uA44B\uA4BD\uA4BB\uA4BC\u0000"+
- "\u0000\uA640\u0000\u0000\u0000\uA74C\uA8E4\uA8E3"+
- "\uA8E5\u0000\u0000\u0000\uADDD\u0000\u0000\u0000"+
- "\uBEAC\u0000\u0000\u0000\u0000\u0000\u0000\uC94E"+
- "\u0000\uA554\uA555\u0000\u0000\uA641\u0000\uCA6A"+
- "\u0000\uAB60\uAB5F\uD0E0\uD0DF\uB0C3\u0000\uA4BE"+
- "\uC955\u0000\u0000\u0000\u0000\u0000\uCBCD\u0000"+
- "\uAB61\u0000\uADE0\u0000\uADDE\uADDF\u0000\u0000"+
- "\u0000\u0000\uBEAD\u0000\uA556\u0000\u0000\u0000"+
- "\uA642\uC9BC\u0000\u0000\u0000\u0000\uA74D\uA74E"+
- "\u0000\uCA6B\u0000\u0000\uCBCE\uA8E6\uCBCF\u0000"+
- "\u0000\u0000\u0000\u0000\uD0E2\uD0E3\uADE3\u0000"+
- "\uD0E4\u0000\uD0E1\uADE4\uADE2\uADE1\uD0E5\u0000"+
- "\uD468\u0000\u0000\u0000\uD861\u0000\u0000\uDCC5"+
- "\uE140\u0000\u0000\u0000\uBBFE\uBEAE\uE8F9\u0000"+
- "\uA44C\uA45A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uB0C4\uB3CD\u0000\uB9B9\u0000\uC942\uA4BF\u0000"+
- "\uA559\uA557\uA558\u0000\u0000\uA8E7\u0000\u0000"+
- "\uA44D\uA44E\u0000\uA462\u0000\u0000\uA4C0\uA4C1"+
- "\uA4C2\uC9BE\uA55A\u0000\uC96B\u0000\uA646\u0000"+
- "\uC9BF\uA644\uA645\uC9BD\u0000\u0000\uA647\uA643"+
- "\u0000\u0000\u0000\u0000\uCA6C\uAAEC\uCA6D\u0000"+
- "\u0000\uCA6E\u0000\u0000\uA750\uA74F\u0000\u0000"+
- "\uA753\uA751\uA752\u0000\u0000\u0000\uA8ED\u0000"+
- "\uA8EC\uCBD4\uCBD1\uCBD2\u0000\uCBD0\uA8EE\uA8EA"+
- "\uA8E9\u0000\uA8EB\uA8E8\u0000\u0000\u0000\u0000"+
- "\u0000\uA8EF\u0000\uAB63\uCDF0\u0000\uCBD3\uAB68"+
- "\u0000\uCDF1\uAB64\uAB67\uAB66\uAB65\uAB62\u0000"+
- "\u0000\u0000\uD0E8\u0000\uADE7\uD0EB\uADE5\u0000"+
- "\u0000\u0000\uD0E7\uADE8\uADE6\uADE9\uD0E9\uD0EA"+
- "\u0000\uD0E6\uD0EC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uB3D1\uB0C5\uD469\uD46B\uD46A\uD46C\uB0C6"+
- "\u0000\u0000\uB3CE\u0000\uB3CF\uB3D0\u0000\uB6D0"+
- "\uDCC7\u0000\uDCC6\uDCC8\uDCC9\uB6D1\u0000\uB6CF"+
- "\uE141\uE142\uB9BB\uB9BA\uE35A\u0000\u0000\uBC40"+
- "\uBC41\uBC42\uBC44\uE4F2\uE4F3\uBC43\u0000\u0000"+
- "\u0000\uBEAF\u0000\uBEB0\u0000\u0000\uF1ED\uF5C3"+
- "\uF5C2\uF7D1\u0000\uA44F\u0000\u0000\u0000\uA55C"+
- "\uA55B\u0000\u0000\uA648\u0000\u0000\uC9C0\u0000"+
- "\u0000\uA755\uA756\uA754\uA757\uCA6F\uCA70\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA8F1\uCBD5\u0000\uA8F0\u0000"+
- "\uCDF2\uAB6C\uCDF3\uAB6B\u0000\u0000\u0000\uAB69"+
- "\u0000\uAB6A\u0000\u0000\u0000\uD0ED\u0000\u0000"+
- "\u0000\u0000\uB0C7\uD46E\u0000\uB0CA\uD46D\uB1E5"+
- "\uB0C9\uB0C8\u0000\uB3D4\u0000\uB3D3\uB3D2\uB6D2"+
- "\u0000\u0000\uB6D5\uB6D6\uB6D4\u0000\uB6D3\u0000"+
- "\u0000\uE143\u0000\uE144\u0000\u0000\u0000\uE4F5"+
- "\uBC45\uE4F4\u0000\uBEB1\uECBF\uC079\u0000\uF1EE"+
- "\uC455\u0000\uA463\uA4C3\uC956\u0000\uA4C4\uA4C5"+
- "\u0000\u0000\u0000\u0000\u0000\uA55D\uA55E\u0000"+
- "\uA649\uCA71\uCBD6\uCBD7\u0000\uAB6D\uD0EE\uB0CC"+
- "\uB0CB\uD863\uD862\u0000\u0000\uA450\uA4C6\uA55F"+
- "\u0000\uB0CD\uC943\u0000\uC96C\uA560\u0000\uC9C2"+
- "\uA64B\uA64A\uC9C1\uA758\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uADEA\u0000\u0000\uD46F\u0000\uB6D7"+
- "\uE145\uB9BC\u0000\u0000\uE8FA\u0000\u0000\uF3FD"+
- "\u0000\uA4C7\u0000\u0000\uCBD8\uCDF4\uB0D0\uB0CE"+
- "\uB0CF\uA451\u0000\uA464\uA2CD\uA4CA\u0000\uA4C9"+
- "\uA4C8\uA563\uA562\u0000\uC96D\uC9C3\u0000\u0000"+
- "\u0000\uA8F5\uA8F2\uA8F4\uA8F3\u0000\u0000\uAB6E"+
- "\u0000\u0000\uB3D5\u0000\uA452\u0000\uA4CB\u0000"+
- "\uA565\uA564\u0000\uCA72\u0000\u0000\uA8F6\u0000"+
- "\u0000\u0000\u0000\u0000\uC957\u0000\uA567\uA566"+
- "\uA64C\uA64D\uCA73\uA759\u0000\uA75A\u0000\uA8F7"+
- "\uA8F8\uA8F9\u0000\uAB6F\uCDF5\u0000\u0000\uADEB"+
- "\u0000\u0000\uC944\u0000\uA4CC\u0000\u0000\u0000"+
- "\u0000\u0000\uC9C4\u0000\u0000\u0000\uCA74\uCA75"+
- "\u0000\u0000\uCBD9\u0000\uCBDA\u0000\uCDF7\uCDF6"+
- "\uCDF9\uCDF8\uAB70\u0000\uD470\uADED\uD0EF\uADEC"+
- "\u0000\u0000\u0000\u0000\uD864\uB3D6\u0000\uD865"+
- "\u0000\u0000\u0000\u0000\uE146\uB9BD\u0000\u0000"+
- "\u0000\u0000\uBC46\u0000\uF1EF\u0000\u0000\u0000"+
- "\u0000\uC958\u0000\uA568\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uB0D1\u0000\u0000\u0000\u0000"+
- "\uA453\uA465\uA4CE\uA4CD\u0000\uA4CF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA8FB\u0000\uA8FA\uA8FC"+
- "\u0000\u0000\u0000\uAB71\u0000\u0000\u0000\uADEE"+
- "\u0000\uE8FB\uC24F\uA466\uA56A\uA579\uA574\u0000"+
- "\uA56F\uA56E\uA575\uA573\uA56C\uA57A\uA56D\uA569"+
- "\uA578\uA577\uA576\uA56B\u0000\uA572\u0000\u0000"+
- "\uA571\u0000\u0000\uA57B\uA570\u0000\u0000\u0000"+
- "\u0000\uA653\u0000\uA659\uA655\u0000\uA65B\uC9C5"+
- "\uA658\uA64E\uA651\uA654\uA650\uA657\uA65A\uA64F"+
- "\uA652\uA656\uA65C\u0000\u0000\u0000\u0000\u0000"+
- "\uCA7E\uCA7B\u0000\uA767\uCA7C\uA75B\uA75D\uA775"+
- "\uA770\u0000\u0000\u0000\uCAA5\uCA7D\uA75F\uA761"+
- "\uCAA4\uA768\uCA78\uA774\uA776\uA75C\uA76D\u0000"+
- "\uCA76\uA773\u0000\uA764\u0000\uA76E\uA76F\uCA77"+
- "\uA76C\uA76A\u0000\uA76B\uA771\uCAA1\uA75E\u0000"+
- "\uA772\uCAA3\uA766\uA763\u0000\uCA7A\uA762\uCAA6"+
- "\uA765\u0000\uA769\u0000\u0000\u0000\uA760\uCAA2"+
- "\u0000\u0000\u0000\u0000\uCA79\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uCBEB\uCBEA\uA94F\uCBED\uCBEF\uCBE4\uCBE7\uCBEE"+
- "\uA950\u0000\u0000\uCBE1\uCBE5\u0000\u0000\uCBE9"+
- "\uCE49\uA94B\uCE4D\uA8FD\uCBE6\uA8FE\uA94C\uA945"+
- "\uA941\u0000\uCBE2\uA944\uA949\uA952\uCBE3\uCBDC"+
- "\uA943\uCBDD\uCBDF\u0000\uA946\u0000\uA948\uCBDB"+
- "\uCBE0\u0000\u0000\uA951\uA94D\uCBE8\uA953\u0000"+
- "\uA94A\uCBDE\uA947\u0000\u0000\uA942\uA940\u0000"+
- "\uCBEC\u0000\uA94E\u0000\u0000\u0000\u0000\u0000"+
- "\uCE48\uCDFB\uCE4B\u0000\u0000\uCDFD\uAB78\uABA8"+
- "\uAB74\uABA7\uAB7D\uABA4\uAB72\uCDFC\uCE43\uABA3"+
- "\uCE4F\uABA5\u0000\uAB79\u0000\u0000\uCE45\uCE42"+
- "\uAB77\u0000\uCDFA\uABA6\uCE4A\uAB7C\uCE4C\uABA9"+
- "\uAB73\uAB7E\uAB7B\uCE40\uABA1\uCE46\uCE47\uAB7A"+
- "\uABA2\uAB76\u0000\u0000\u0000\u0000\uAB75\uCDFE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uCE44\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uCE4E\u0000"+
- "\uD144\uADFB\uD0F1\u0000\uD0F6\uADF4\uAE40\uD0F4"+
- "\uADEF\uADF9\uADFE\uD0FB\u0000\uADFA\uADFD\u0000"+
- "\u0000\uD0FE\uADF5\uD0F5\u0000\u0000\u0000\uD142"+
- "\uD143\u0000\uADF7\uD141\uADF3\uAE43\u0000\uD0F8"+
- "\u0000\uADF1\u0000\uD146\uD0F9\uD0FD\uADF6\uAE42"+
- "\uD0FA\uADFC\uD140\uD147\uD4A1\u0000\uD145\uAE44"+
- "\uADF0\uD0FC\uD0F3\u0000\uADF8\u0000\u0000\uD0F2"+
- "\u0000\u0000\uD0F7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uD0F0\uAE41"+
- "\u0000\u0000\uD477\u0000\uB0E4\uD4A7\uB0E2\uB0DF"+
- "\uD47C\uB0DB\uD4A2\uB0E6\uD476\uD47B\uD47A\uADF2"+
- "\uB0E1\uD4A5\u0000\uD4A8\uD473\u0000\uB3E8\u0000"+
- "\uD4A9\uB0E7\u0000\uB0D9\uB0D6\uD47E\uB0D3\u0000"+
- "\uD4A6\u0000\uB0DA\uD4AA\u0000\uD474\uD4A4\uB0DD"+
- "\uD475\uD478\uD47D\u0000\u0000\uB0DE\uB0DC\uB0E8"+
- "\u0000\u0000\u0000\u0000\uB0E3\u0000\uB0D7\uB1D2"+
- "\u0000\uB0D8\uD479\uB0E5\uB0E0\uD4A3\uB0D5\u0000"+
- "\u0000\u0000\uB0D4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD471\uD472\uD86A"+
- "\u0000\u0000\u0000\uB3D7\uB3DA\uD875\uB3EE\uD878"+
- "\uB3D8\uD871\uB3DE\uB3E4\uB5BD\u0000\u0000\uB3E2"+
- "\uD86E\uB3EF\uB3DB\uB3E3\uD876\uDCD7\uD87B\uD86F"+
- "\u0000\uD866\uD873\uD86D\uB3E1\uD879\u0000\u0000"+
- "\uB3DD\uB3F1\uB3EA\u0000\uB3DF\uB3DC\u0000\uB3E7"+
- "\u0000\uD87A\uD86C\uD872\uD874\uD868\uD877\uB3D9"+
- "\uD867\u0000\uB3E0\uB3F0\uB3EC\uD869\uB3E6\u0000"+
- "\u0000\uB3ED\uB3E9\uB3E5\u0000\uD870\u0000\u0000"+
- "\u0000\u0000\u0000\uB3EB\u0000\u0000\u0000\uDCD5"+
- "\uDCD1\u0000\uDCE0\uDCCA\uDCD3\uB6E5\uB6E6\uB6DE"+
- "\uDCDC\uB6E8\uDCCF\uDCCE\uDCCC\uDCDE\uB6DC\uDCD8"+
- "\uDCCD\uB6DF\uDCD6\uB6DA\uDCD2\uDCD9\uDCDB\u0000"+
- "\u0000\uDCDF\uB6E3\uDCCB\uB6DD\uDCD0\u0000\uB6D8"+
- "\u0000\uB6E4\uDCDA\uB6E0\uB6E1\uB6E7\uB6DB\uA25F"+
- "\uB6D9\uDCD4\u0000\u0000\u0000\u0000\u0000\uB6E2"+
- "\u0000\u0000\uDCDD\u0000\u0000\u0000\uB9CD\uB9C8"+
- "\u0000\uE155\uE151\u0000\uE14B\uB9C2\uB9BE\uE154"+
- "\uB9BF\uE14E\uE150\u0000\uE153\u0000\uB9C4\u0000"+
- "\uB9CB\uB9C5\u0000\u0000\uE149\uB9C6\uB9C7\uE14C"+
- "\uB9CC\u0000\uE14A\uE14F\uB9C3\uE148\uB9C9\uB9C1"+
- "\u0000\u0000\u0000\uB9C0\uE14D\uE152\u0000\uB9CA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uE147"+
- "\u0000\uBC4D\uE547\u0000\uE544\u0000\uBC47\uBC53"+
- "\uBC54\u0000\uBC4A\uE542\uBC4C\uE4F9\uBC52\u0000"+
- "\uE546\uBC49\uE548\uBC48\u0000\uE543\uE545\uBC4B"+
- "\uE541\uE4FA\uE4F7\u0000\u0000\uD86B\uE4FD\u0000"+
- "\uE4F6\uE4FC\uE4FB\u0000\uE4F8\u0000\uBC4F\u0000"+
- "\u0000\u0000\u0000\uBC4E\u0000\u0000\u0000\uBC50"+
- "\uE4FE\uBEB2\uE540\u0000\u0000\u0000\uE945\u0000"+
- "\uE8FD\u0000\uBEBE\uE942\uBEB6\uBEBA\uE941\u0000"+
- "\uBEB9\uBEB5\uBEB8\uBEB3\uBEBD\uE943\uE8FE\uBEBC"+
- "\uE8FC\uBEBB\uE944\uE940\uBC51\u0000\uBEBF\uE946"+
- "\uBEB7\uBEB4\u0000\u0000\u0000\u0000\uECC6\uECC8"+
- "\uC07B\uECC9\uECC7\uECC5\uECC4\uC07D\uECC3\uC07E"+
- "\u0000\u0000\u0000\u0000\uECC1\uECC2\uC07A\uC0A1"+
- "\uC07C\u0000\u0000\uECC0\u0000\uC250\u0000\uEFBC"+
- "\uEFBA\uEFBF\uEFBD\u0000\uEFBB\uEFBE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC360\uF1F2\uF1F3"+
- "\uC456\u0000\uF1F4\uF1F0\uF1F5\uF1F1\uC251\u0000"+
- "\u0000\u0000\uF3FE\uF441\uC459\uF440\uC458\uC457"+
- "\u0000\u0000\u0000\u0000\uC45A\uF5C5\uF5C6\u0000"+
- "\uC4DA\uC4D9\uC4DB\uF5C4\u0000\uF6D8\uF6D7\u0000"+
- "\uC56D\uC56F\uC56E\uF6D9\uC5C8\uF8A6\u0000\u0000"+
- "\u0000\uC5F1\u0000\uF8A5\uF8EE\u0000\u0000\uC949"+
- "\u0000\u0000\uA57D\uA57C\u0000\uA65F\uA65E\uC9C7"+
- "\uA65D\uC9C6\u0000\u0000\uA779\uCAA9\u0000\uCAA8"+
- "\u0000\u0000\uA777\uA77A\u0000\u0000\uCAA7\u0000"+
- "\uA778\u0000\u0000\u0000\u0000\u0000\u0000\uCBF0"+
- "\u0000\uCBF1\uA954\u0000\u0000\u0000\u0000\uABAA"+
- "\u0000\uD148\uD149\uAE45\uAE46\u0000\u0000\uD4AC"+
- "\uB0E9\uB0EB\uD4AB\uB0EA\uD87C\uB3F2\u0000\u0000"+
- "\u0000\u0000\uB6E9\uB6EA\uDCE1\u0000\uB9CF\u0000"+
- "\uB9CE\u0000\uE549\uE948\uE947\u0000\uF96B\uA467"+
- "\uC959\u0000\uC96E\uC96F\u0000\u0000\u0000\u0000"+
- "\uA662\uA666\uC9C9\u0000\uA664\uA663\uC9C8\uA665"+
- "\uA661\u0000\u0000\uA660\uC9CA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA7A6\u0000\u0000\uA7A3\u0000"+
- "\uA77D\uCAAA\u0000\u0000\u0000\uCAAB\u0000\uA7A1"+
- "\u0000\uCAAD\uA77B\uCAAE\uCAAC\uA77E\uA7A2\uA7A5"+
- "\uA7A4\uA77C\uCAAF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA959\uCBFE\u0000\uA95B\u0000\uA95A\u0000"+
- "\uCC40\uA958\uA957\uCBF5\u0000\uCBF4\u0000\uCBF2"+
- "\uCBF7\uCBF6\uCBF3\uCBFC\uCBFD\uCBFA\uCBF8\uA956"+
- "\u0000\u0000\u0000\uCBFB\uA95C\uCC41\u0000\u0000"+
- "\uCBF9\u0000\uABAB\uA955\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uABAC\uCE54\u0000\u0000\uCE5A"+
- "\u0000\u0000\u0000\uABB2\uCE58\uCE5E\u0000\uCE55"+
- "\uCE59\uCE5B\uCE5D\uCE57\u0000\uCE56\uCE51\uCE52"+
- "\uABAD\u0000\uABAF\uABAE\uCE53\uCE5C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uABB1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uCE50\uD153\u0000"+
- "\uD152\uD157\uD14E\u0000\uD151\uD150\u0000\uD154"+
- "\u0000\uD158\uAE47\uAE4A\u0000\u0000\uD14F\uD155"+
- "\u0000\u0000\u0000\uAE49\uD14A\u0000\uABB0\uD4BA"+
- "\uD156\u0000\uD14D\u0000\uAE48\uD14C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uD4B1\u0000\u0000\uB0EC"+
- "\uB0F0\uD4C1\uD4AF\uD4BD\uB0F1\uD4BF\u0000\uD4C5"+
- "\u0000\uD4C9\u0000\u0000\uD4C0\uD4B4\uD4BC\u0000"+
- "\uD4CA\uD4C8\uD4BE\uD4B9\uD4B2\uD8A6\uD4B0\uB0F5"+
- "\uD4B7\uB0F6\uB0F2\uD4AD\uD4C3\uD4B5\u0000\u0000"+
- "\uD4B3\uD4C6\uB0F3\u0000\uD4CC\uB0ED\uB0EF\uD4BB"+
- "\uD4B6\uAE4B\uB0EE\uD4B8\uD4C7\uD4CB\uD4C2\u0000"+
- "\uD4C4\u0000\u0000\u0000\uD4AE\u0000\u0000\u0000"+
- "\u0000\uD8A1\u0000\uD8AA\uD8A9\uB3FA\uD8A2\u0000"+
- "\uB3FB\uB3F9\u0000\uD8A4\uB3F6\uD8A8\u0000\uD8A3"+
- "\uD8A5\uD87D\uB3F4\u0000\uD8B2\uD8B1\uD8AE\uB3F3"+
- "\uB3F7\uB3F8\uD14B\uD8AB\uB3F5\uB0F4\uD8AD\uD87E"+
- "\uD8B0\uD8AF\u0000\uD8B3\u0000\uDCEF\u0000\uD8AC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD8A7\uDCE7\uB6F4\uB6F7\uB6F2\uDCE6\uDCEA\uDCE5"+
- "\u0000\uB6EC\uB6F6\uDCE2\uB6F0\uDCE9\u0000\uB6EE"+
- "\uB6ED\uDCEC\uB6EF\uDCEE\u0000\uDCEB\uB6EB\u0000"+
- "\u0000\u0000\uB6F5\uDCF0\uDCE4\uDCED\u0000\u0000"+
- "\uDCE3\u0000\u0000\uB6F1\u0000\uB6F3\u0000\uDCE8"+
- "\u0000\uDCF1\u0000\u0000\uE15D\uB9D0\uE163\u0000"+
- "\u0000\uB9D5\uE15F\uE166\uE157\uB9D7\uB9D1\uE15C"+
- "\uBC55\uE15B\uE164\uB9D2\u0000\uB9D6\uE15A\uE160"+
- "\uE165\uE156\uB9D4\uE15E\u0000\u0000\uE162\uE168"+
- "\uE158\uE161\u0000\uB9D3\uE167\u0000\u0000\u0000"+
- "\uE159\u0000\u0000\u0000\uBC59\uE54B\uBC57\uBC56"+
- "\uE54D\uE552\u0000\uE54E\u0000\uE551\uBC5C\u0000"+
- "\uBEA5\uBC5B\u0000\uE54A\uE550\u0000\uBC5A\uE54F"+
- "\u0000\uE54C\u0000\uBC58\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uE94D\u0000\uE94F\uE94A\uBEC1\uE94C"+
- "\u0000\uBEC0\uE94E\u0000\u0000\uBEC3\uE950\uBEC2"+
- "\uE949\uE94B\u0000\u0000\u0000\u0000\uC0A5\uECCC"+
- "\u0000\uC0A4\uECCD\uC0A3\uECCB\uC0A2\uECCA\u0000"+
- "\uC253\uC252\uF1F6\uF1F8\u0000\uF1F7\uC361\uC362"+
- "\u0000\u0000\uC363\uF442\uC45B\u0000\u0000\uF7D3"+
- "\uF7D2\uC5F2\u0000\uA468\uA4D0\u0000\u0000\uA7A7"+
- "\u0000\u0000\u0000\u0000\uCE5F\u0000\u0000\u0000"+
- "\u0000\uB3FC\uB3FD\u0000\uDCF2\uB9D8\uE169\uE553"+
- "\u0000\u0000\u0000\uC95A\u0000\u0000\uCAB0\u0000"+
- "\u0000\u0000\u0000\u0000\uCC42\uCE60\uD159\uAE4C"+
- "\u0000\u0000\uF1F9\u0000\uC4DC\uA469\uA57E\uC970"+
- "\u0000\uA667\uA668\u0000\uA95D\u0000\u0000\u0000"+
- "\uB0F7\u0000\uB9DA\u0000\uB9DB\uB9D9\u0000\uA46A"+
- "\u0000\uA4D1\uA4D3\uA4D2\uC95B\uA4D4\uA5A1\uC971"+
- "\u0000\uA5A2\u0000\u0000\u0000\u0000\u0000\uA669"+
- "\uA66A\u0000\u0000\u0000\uC9CB\u0000\uA7A8\u0000"+
- "\uCAB1\u0000\u0000\u0000\uA961\uCC43\u0000\uA95F"+
- "\uA960\uA95E\uD15A\u0000\u0000\u0000\uABB6\uABB5"+
- "\uABB7\uABB4\u0000\uCE61\uA962\uABB3\u0000\uAE4D"+
- "\uAE4E\u0000\uAE4F\u0000\uD4CD\u0000\u0000\u0000"+
- "\uB3FE\uD8B4\uB0F8\u0000\u0000\u0000\u0000\uB6F8"+
- "\u0000\uB9DD\uB9DC\uE16A\u0000\uBC5D\uBEC4\u0000"+
- "\uEFC0\uF6DA\uF7D4\uA46B\uA5A3\u0000\uA5A4\uC9D1"+
- "\uA66C\uA66F\u0000\uC9CF\uC9CD\uA66E\uC9D0\uC9D2"+
- "\uC9CC\uA671\uA670\uA66D\uA66B\uC9CE\u0000\u0000"+
- "\u0000\u0000\uA7B3\u0000\u0000\uA7B0\uCAB6\uCAB9"+
- "\uCAB8\u0000\uA7AA\uA7B2\u0000\u0000\uA7AF\uCAB5"+
- "\uCAB3\uA7AE\u0000\u0000\u0000\uA7A9\uA7AC\u0000"+
- "\uCAB4\uCABB\uCAB7\uA7AD\uA7B1\uA7B4\uCAB2\uCABA"+
- "\uA7AB\u0000\u0000\u0000\u0000\u0000\uA967\uA96F"+
- "\u0000\uCC4F\uCC48\uA970\uCC53\uCC44\uCC4B\u0000"+
- "\u0000\uA966\uCC45\uA964\uCC4C\uCC50\uA963\u0000"+
- "\uCC51\uCC4A\u0000\uCC4D\u0000\uA972\uA969\uCC54"+
- "\uCC52\u0000\uA96E\uA96C\uCC49\uA96B\uCC47\uCC46"+
- "\uA96A\uA968\uA971\uA96D\uA965\u0000\uCC4E\u0000"+
- "\uABB9\u0000\uABC0\uCE6F\uABB8\uCE67\uCE63\u0000"+
- "\uCE73\uCE62\u0000\uABBB\uCE6C\uABBE\uABC1\u0000"+
- "\uABBC\uCE70\uABBF\u0000\uAE56\uCE76\uCE64\u0000"+
- "\u0000\uCE66\uCE6D\uCE71\uCE75\uCE72\uCE6B\uCE6E"+
- "\u0000\u0000\uCE68\uABC3\uCE6A\uCE69\uCE74\uABBA"+
- "\uCE65\uABC2\u0000\uABBD\u0000\u0000\u0000\u0000"+
- "\u0000\uAE5C\uD162\u0000\uAE5B\u0000\u0000\uD160"+
- "\u0000\uAE50\u0000\uAE55\u0000\uD15F\uD15C\uD161"+
- "\uAE51\uD15B\u0000\uAE54\uAE52\u0000\uD163\uAE53"+
- "\uAE57\u0000\u0000\uAE58\u0000\uAE5A\u0000\u0000"+
- "\u0000\uAE59\u0000\u0000\u0000\uD15D\uD15E\u0000"+
- "\u0000\u0000\u0000\uD164\u0000\uD4D4\uB0F9\uD8C2"+
- "\uD4D3\uD4E6\u0000\u0000\uB140\u0000\uD4E4\u0000"+
- "\uB0FE\uB0FA\uD4ED\uD4DD\uD4E0\u0000\uB143\uD4EA"+
- "\uD4E2\uB0FB\uB144\u0000\uD4E7\uD4E5\u0000\u0000"+
- "\uD4D6\uD4EB\uD4DF\uD4DA\u0000\uD4D0\uD4EC\uD4DC"+
- "\uD4CF\u0000\uB142\uD4E1\uD4EE\uD4DE\uD4D2\uD4D7"+
- "\uD4CE\u0000\uB141\u0000\uD4DB\uD4D8\uB0FC\uD4D1"+
- "\u0000\uD4E9\uB0FD\u0000\uD4D9\uD4D5\u0000\u0000"+
- "\uD4E8\u0000\u0000\u0000\u0000\u0000\u0000\uB440"+
- "\uD8BB\u0000\uD8B8\uD8C9\uD8BD\uD8CA\u0000\uB442"+
- "\u0000\u0000\u0000\uD8C6\uD8C3\u0000\u0000\u0000"+
- "\u0000\u0000\uD8C4\uD8C7\uD8CB\u0000\uD4E3\uD8CD"+
- "\uDD47\u0000\uB443\uD8CE\uD8B6\uD8C0\u0000\uD8C5"+
- "\u0000\u0000\uB441\uB444\uD8CC\uD8CF\uD8BA\uD8B7"+
- "\u0000\u0000\uD8B9\u0000\u0000\uD8BE\uD8BC\uB445"+
- "\u0000\uD8C8\u0000\u0000\uD8BF\u0000\uD8C1\uD8B5"+
- "\uDCFA\uDCF8\uB742\uB740\uDD43\uDCF9\uDD44\uDD40"+
- "\uDCF7\uDD46\uDCF6\uDCFD\uB6FE\uB6FD\uB6FC\uDCFB"+
- "\uDD41\uB6F9\uB741\u0000\uDCF4\u0000\uDCFE\uDCF3"+
- "\uDCFC\uB6FA\uDD42\uDCF5\uB6FB\uDD45\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uE16E\uB9E2\uB9E1"+
- "\uB9E3\uE17A\uE170\uE176\uE16B\uE179\uE178\uE17C"+
- "\uE175\uB9DE\uE174\uB9E4\u0000\uE16D\uB9DF\u0000"+
- "\uE17B\uB9E0\uE16F\uE172\uE177\uE171\uE16C\u0000"+
- "\u0000\u0000\u0000\uE173\uE555\uBC61\uE558\uE557"+
- "\uE55A\uE55C\u0000\uBC5F\u0000\uE556\u0000\uE554"+
- "\u0000\uE55D\uE55B\uE559\u0000\uE55F\u0000\uE55E"+
- "\uBC63\uBC5E\u0000\uBC60\uBC62\u0000\u0000\uE560"+
- "\uE957\u0000\u0000\uE956\uE955\u0000\uE958\uE951"+
- "\u0000\uE952\uE95A\uE953\u0000\uBEC5\uE95C\u0000"+
- "\uE95B\uE954\u0000\uECD1\uC0A8\uECCF\uECD4\uECD3"+
- "\uE959\u0000\uC0A7\u0000\uECD2\uECCE\uECD6\uECD5"+
- "\uC0A6\u0000\uECD0\u0000\uBEC6\u0000\u0000\u0000"+
- "\uC254\u0000\u0000\u0000\uEFC1\uF1FA\uF1FB\uF1FC"+
- "\uC45C\u0000\u0000\uC45D\u0000\uF443\u0000\uF5C8"+
- "\uF5C7\u0000\u0000\uF6DB\uF6DC\uF7D5\uF8A7\u0000"+
- "\uA46C\uA46D\u0000\uA46E\uA4D5\uA5A5\uC9D3\uA672"+
- "\uA673\u0000\uA7B7\uA7B8\uA7B6\uA7B5\u0000\uA973"+
- "\u0000\u0000\uCC55\uA975\uA974\uCC56\u0000\u0000"+
- "\u0000\uABC4\u0000\uAE5D\uD165\u0000\uD4F0\u0000"+
- "\uB145\uB447\uD4EF\uB446\u0000\uB9E5\u0000\uE17D"+
- "\uBEC7\u0000\uC0A9\uECD7\u0000\uC45E\u0000\uC570"+
- "\u0000\uC972\u0000\uA5A6\uC973\uA676\u0000\uA674"+
- "\uA675\uA677\u0000\uA7BA\uA7B9\u0000\uCABC\uA7BB"+
- "\u0000\u0000\uCABD\uCC57\u0000\uCC58\u0000\uA976"+
- "\uA978\uA97A\uA977\uA97B\uA979\u0000\u0000\u0000"+
- "\u0000\u0000\uABC8\uABC5\uABC7\uABC9\uABC6\uD166"+
- "\uCE77\u0000\u0000\u0000\uD168\uD167\uAE63\u0000"+
- "\uAE5F\u0000\u0000\uAE60\uAE62\uAE64\uAE61\u0000"+
- "\uAE66\uAE65\u0000\u0000\u0000\u0000\u0000\uB14A"+
- "\uD4F2\uD4F1\uB149\u0000\uB148\uB147\uB14B\uB146"+
- "\u0000\u0000\uD8D5\uD8D2\uB449\uD8D1\uD8D6\u0000"+
- "\uB44B\uD8D4\uB448\uB44A\uD8D3\u0000\uDD48\u0000"+
- "\uDD49\uDD4A\u0000\u0000\u0000\u0000\uB9E6\uB9EE"+
- "\uE17E\uB9E8\uB9EC\uE1A1\uB9ED\uB9E9\uB9EA\uB9E7"+
- "\uB9EB\uBC66\uD8D0\uBC67\uBC65\u0000\uBC64\uE95D"+
- "\uBEC8\uECD8\uECD9\u0000\u0000\uC364\uC45F\u0000"+
- "\uA46F\u0000\uA678\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uABCA\u0000\uD169\uAE67\u0000\u0000\uB14E"+
- "\uB14D\uB14C\uB44C\uB44D\uD8D7\uB9EF\uBEC9\uA470"+
- "\uC95C\uA4D6\uC974\u0000\u0000\uC9D4\uA679\u0000"+
- "\u0000\u0000\uA97C\u0000\u0000\u0000\u0000\uDD4B"+
- "\u0000\u0000\uA471\u0000\uA4D7\uC9D5\u0000\u0000"+
- "\uCABE\u0000\uCABF\u0000\uA7BC\u0000\u0000\u0000"+
- "\uD8D8\uB44E\u0000\uDD4C\u0000\u0000\u0000\uC0AA"+
- "\uA472\uA4A8\uA4D8\uC975\uA5A7\u0000\uA7C0\uA7BF"+
- "\uA7BD\uA7BE\u0000\u0000\uCC59\uA97E\uA9A1\uCC5A"+
- "\uA97D\u0000\u0000\uABCE\uCE78\uABCD\uABCB\uABCC"+
- "\uAE6A\uAE68\u0000\u0000\uD16B\uAE69\uD16A\u0000"+
- "\uAE5E\uD4F3\u0000\u0000\uB150\uB151\u0000\u0000"+
- "\uB14F\u0000\uB9F0\uE1A2\uBC68\uBC69\u0000\uE561"+
- "\uC0AB\uEFC2\uEFC3\u0000\uC4DD\uF8A8\uC94B\uA4D9"+
- "\u0000\uA473\u0000\uC977\uC976\u0000\u0000\u0000"+
- "\u0000\uA67A\uC9D7\uC9D8\uC9D6\u0000\uC9D9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uCAC7\u0000"+
- "\uCAC2\uCAC4\uCAC6\uCAC3\uA7C4\uCAC0\u0000\uCAC1"+
- "\uA7C1\uA7C2\uCAC5\uCAC8\uA7C3\uCAC9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uCC68\u0000\uCC62"+
- "\uCC5D\uA9A3\uCC65\uCC63\uCC5C\uCC69\uCC6C\uCC67"+
- "\uCC60\uA9A5\uCC66\uA9A6\uCC61\uCC64\uCC5B\uCC5F"+
- "\uCC6B\uA9A7\u0000\uA9A8\u0000\uCC5E\uCC6A\uA9A2"+
- "\uA9A4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uCEAB\uCEA4"+
- "\uCEAA\uCEA3\uCEA5\uCE7D\uCE7B\u0000\uCEAC\uCEA9"+
- "\uCE79\u0000\uABD0\uCEA7\uCEA8\u0000\uCEA6\uCE7C"+
- "\uCE7A\uABCF\uCEA2\uCE7E\u0000\u0000\uCEA1\uCEAD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uAE6F\u0000\uAE6E\u0000\uD16C\uAE6B\uD16E\u0000"+
- "\uAE70\uD16F\u0000\u0000\uAE73\u0000\uAE71\uD170"+
- "\uCEAE\uD172\u0000\uAE6D\u0000\uAE6C\u0000\uD16D"+
- "\uD171\uAE72\u0000\u0000\u0000\u0000\uB153\uB152"+
- "\u0000\u0000\u0000\uD4F5\uD4F9\uD4FB\uB154\uD4FE"+
- "\u0000\uB158\uD541\u0000\uB15A\u0000\uB156\uB15E"+
- "\u0000\uB15B\uD4F7\uB155\u0000\uD4F6\uD4F4\uD543"+
- "\uD4F8\u0000\uB157\uD542\uB15C\uD4FD\uD4FC\uB15D"+
- "\uD4FA\uB159\u0000\u0000\u0000\u0000\uD544\u0000"+
- "\uD540\uD8E7\uD8EE\uD8E3\uB451\uD8DF\uD8EF\uD8D9"+
- "\uD8EC\uD8EA\uD8E4\u0000\uD8ED\uD8E6\u0000\uD8DE"+
- "\uD8F0\uD8DC\uD8E9\uD8DA\u0000\uD8F1\u0000\uB452"+
- "\u0000\uD8EB\uDD4F\uD8DD\uB44F\u0000\uD8E1\u0000"+
- "\uB450\uD8E0\uD8E5\u0000\u0000\uD8E2\u0000\u0000"+
- "\u0000\uD8E8\u0000\u0000\u0000\u0000\uDD53\u0000"+
- "\u0000\u0000\uDD56\uDD4E\u0000\uDD50\u0000\uDD55"+
- "\uDD54\uB743\u0000\uD8DB\uDD52\u0000\u0000\uB744"+
- "\u0000\uDD4D\uDD51\u0000\u0000\u0000\u0000\uE1A9"+
- "\u0000\uE1B0\uE1A7\u0000\uE1AE\uE1A5\uE1AD\uE1B1"+
- "\uE1A4\uE1A8\uE1A3\u0000\uB9F1\u0000\uE1A6\uB9F2"+
- "\uE1AC\uE1AB\uE1AA\u0000\u0000\uE1AF\u0000\u0000"+
- "\u0000\u0000\uE565\uE567\uBC6B\uE568\u0000\uE563"+
- "\u0000\uE562\uE56C\u0000\uE56A\uBC6A\uE56D\uE564"+
- "\uE569\uE56B\uE566\u0000\u0000\u0000\u0000\uE961"+
- "\uE966\uE960\uE965\u0000\uE95E\uE968\uE964\uE969"+
- "\uE963\uE95F\uE967\u0000\uE96A\uE962\u0000\uECDA"+
- "\uC0AF\u0000\uC0AD\u0000\uC0AC\uC0AE\u0000\u0000"+
- "\uEFC4\u0000\uF172\uF1FD\u0000\u0000\uF444\uF445"+
- "\u0000\uC460\u0000\uF5C9\u0000\uC4DE\u0000\uF5CA"+
- "\u0000\uF6DE\uC572\u0000\uC571\uF6DD\uC5C9\u0000"+
- "\uF7D6\u0000\u0000\u0000\u0000\uA474\uA67B\uC9DA"+
- "\uCACA\uA8B5\uB15F\u0000\u0000\uA475\uA5AA\uA5A9"+
- "\uA5A8\u0000\u0000\uA7C5\u0000\u0000\uAE74\u0000"+
- "\uDD57\uA476\uA477\uA478\uA4DA\u0000\u0000\uABD1"+
- "\u0000\uCEAF\u0000\u0000\u0000\uB453\uA479\uC95D"+
- "\u0000\u0000\uA5AB\uA5AC\uC978\u0000\uA67C\u0000"+
- "\u0000\u0000\uCACB\u0000\uA7C6\u0000\uCACC\u0000"+
- "\u0000\uA9AE\u0000\u0000\uCC6E\uA9AC\uA9AB\uCC6D"+
- "\uA9A9\uCC6F\uA9AA\uA9AD\u0000\uABD2\u0000\uABD4"+
- "\uCEB3\uCEB0\uCEB1\uCEB2\uCEB4\uABD3\u0000\u0000"+
- "\uD174\uD173\u0000\uAE76\u0000\uAE75\u0000\u0000"+
- "\u0000\u0000\u0000\uB162\uD546\u0000\uB161\uB163"+
- "\uB160\u0000\u0000\u0000\u0000\uB455\uD545\u0000"+
- "\uB456\uD8F3\u0000\uB457\uD8F2\uB454\u0000\u0000"+
- "\u0000\u0000\uDD5A\uDD5C\uB745\uDD5B\uDD59\uDD58"+
- "\u0000\u0000\u0000\uE1B4\uB9F7\uB9F5\u0000\uB9F6"+
- "\uE1B2\uE1B3\u0000\uB9F3\uE571\uE56F\u0000\uBC6D"+
- "\uE570\uBC6E\uBC6C\uB9F4\u0000\u0000\uE96D\uE96B"+
- "\uE96C\uE56E\uECDC\uC0B0\uECDB\uEFC5\uEFC6\uE96E"+
- "\uF1FE\u0000\uA47A\uA5AD\uA67E\uC9DB\uA67D\u0000"+
- "\uA9AF\uB746\u0000\uA4DB\uA5AE\uABD5\uB458\u0000"+
- "\uC979\u0000\uC97A\u0000\uC9DC\u0000\u0000\uA7C8"+
- "\uCAD0\uCACE\uA7C9\uCACD\uCACF\uCAD1\u0000\uA7C7"+
- "\u0000\u0000\u0000\u0000\u0000\uA9B3\uA9B4\uA9B1"+
- "\u0000\u0000\uA9B0\uCEB8\uA9B2\u0000\u0000\u0000"+
- "\uABD6\u0000\uCEB7\uCEB9\uCEB6\uCEBA\uABD7\uAE79"+
- "\uD175\u0000\uD177\uAE77\uD178\uAE78\uD176\u0000"+
- "\uCEB5\uD547\uD54A\uD54B\uD548\uB167\uB166\uB164"+
- "\uB165\uD549\u0000\u0000\u0000\u0000\uB168\u0000"+
- "\u0000\uB45A\uB45B\u0000\uB45C\uDD5D\uDD5F\uDD61"+
- "\uB748\uB747\uB459\uDD60\uDD5E\u0000\uE1B8\u0000"+
- "\u0000\uE1B6\uE1BC\uB9F8\uE1BD\uE1BA\uB9F9\uE1B7"+
- "\uE1B5\uE1BB\uBC70\uE573\uE1B9\uBC72\uE574\uBC71"+
- "\uBC74\uE575\uBC6F\uBC73\u0000\uE973\uE971\uE970"+
- "\uE972\uE96F\u0000\u0000\uC366\u0000\uF446\uF447"+
- "\u0000\uF5CB\uF6DF\uC655\u0000\u0000\uA9B5\uA7CA"+
- "\u0000\u0000\uABD8\u0000\u0000\u0000\uA47B\uA4DC";
-
- private final static String innerIndex2=
- "\u0000\uA5AF\uC9DD\u0000\uA7CB\uCAD2\u0000\uCEBB"+
- "\uABD9\u0000\uB9FA\uA47C\u0000\u0000\u0000\uA6A1"+
- "\u0000\u0000\uB749\uA47D\uA4DD\uA4DE\u0000\uA5B1"+
- "\uA5B0\u0000\uC9DE\uA6A2\u0000\uCAD3\u0000\uA7CC"+
- "\u0000\u0000\uCC71\uCC72\uCC73\u0000\uA9B6\uA9B7"+
- "\uCC70\uA9B8\u0000\u0000\u0000\uABDA\uCEBC\u0000"+
- "\uD17A\uAE7A\u0000\uD179\u0000\uB169\uD54C\uB16A"+
- "\uD54D\u0000\u0000\u0000\uB45D\u0000\u0000\u0000"+
- "\uDD62\u0000\u0000\uE1BF\uE1BE\u0000\uB9FB\u0000"+
- "\uBC75\uE576\uBECA\uE974\uC0B1\u0000\uC573\uF7D8"+
- "\u0000\u0000\u0000\u0000\uCC74\u0000\uCEBD\uB16B"+
- "\uD8F4\uB74A\u0000\u0000\u0000\uC255\u0000\u0000"+
- "\u0000\u0000\uA7CE\u0000\uA7CD\uABDB\u0000\uD17B"+
- "\u0000\uB16D\uB343\uB16E\uB16C\uB45E\u0000\uE1C0"+
- "\uB9FC\uBC76\u0000\uC94C\uC9DF\u0000\uCAD5\uA7CF"+
- "\uCAD4\uA7D0\u0000\u0000\uA9BC\uCC77\uCC76\uA9BB"+
- "\uA9B9\uA9BA\uCC75\u0000\u0000\uABDD\uCEBE\uABE0"+
- "\uABDC\uABE2\uABDE\uABDF\uABE1\u0000\u0000\u0000"+
- "\uAE7D\uAE7C\uAE7B\u0000\u0000\u0000\uD54F\uB16F"+
- "\uB172\uB170\u0000\uD54E\uB175\u0000\uB171\uD550"+
- "\uB174\uB173\u0000\u0000\u0000\uD8F6\uD8F5\u0000"+
- "\uB461\uB45F\uB460\uD8F7\uB74B\uDD64\uB74C\uDD63"+
- "\u0000\u0000\uE577\u0000\u0000\uBC78\uE1C1\uBC77"+
- "\u0000\uB9FD\u0000\uECDE\uE975\uC0B2\uECDD\uF240"+
- "\uF448\uF449\u0000\uA4DF\u0000\uA5B2\u0000\u0000"+
- "\u0000\uC97B\u0000\u0000\uA7D2\uA7D4\u0000\uC9E2"+
- "\uCAD8\uCAD7\uCAD6\u0000\uC9E1\uC9E0\uA6A4\uA7D3"+
- "\uA7D1\uA6A3\u0000\u0000\u0000\uA9BD\uCC78\u0000"+
- "\uA9BE\uCADD\u0000\uCADF\uCADE\uCC79\u0000\u0000"+
- "\uCADA\u0000\uA7D8\uA7D6\u0000\uCAD9\uCADB\uCAE1"+
- "\u0000\uA7D5\u0000\uCADC\uCAE5\uA9C0\u0000\uCAE2"+
- "\uA7D7\u0000\uCAE0\uCAE3\u0000\uA9BF\u0000\uA9C1"+
- "\uCAE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uCCAF\uCCA2\uCC7E\uCCAE\uCCA9\uABE7\uA9C2"+
- "\uCCAA\uCCAD\uABE3\uCCAC\uA9C3\uA9C8\uA9C6\uCCA3"+
- "\u0000\uCC7C\uCCA5\uA9CD\uCCB0\uABE4\uCCA6\u0000"+
- "\uABE5\uA9C9\uCCA8\u0000\uCECD\uABE6\uCC7B\uA9CA"+
- "\uABE8\uA9CB\uA9C7\uA9CC\uCCA7\uCC7A\uCCAB\uA9C4"+
- "\u0000\u0000\uCC7D\uCCA4\uCCA1\uA9C5\u0000\uCEBF"+
- "\u0000\uCEC0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uCECA\uD1A1\uCECB\uABEE\uCECE\uCEC4\uABED\uCEC6"+
- "\u0000\uCEC7\u0000\u0000\uCEC9\uABE9\u0000\u0000"+
- "\uAEA3\u0000\u0000\uCEC5\uCEC1\uAEA4\u0000\u0000"+
- "\uCECF\uAE7E\uD17D\uCEC8\u0000\uD17C\uCEC3\uCECC"+
- "\u0000\u0000\uABEC\uAEA1\uABF2\uAEA2\uCED0\uD17E"+
- "\uABEB\uAEA6\uABF1\uABF0\uABEF\uAEA5\uCED1\uAEA7"+
- "\uABEA\u0000\uCEC2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uB176"+
- "\uD1A4\uD1A6\u0000\uD1A8\uAEA8\uAEAE\uD553\uD1AC"+
- "\uD1A3\uB178\uD551\u0000\uAEAD\uAEAB\uD1AE\u0000"+
- "\uD552\u0000\uD1A5\u0000\uAEAC\uD1A9\uAEAF\uD1AB"+
- "\u0000\u0000\uAEAA\uD1AA\uD1AD\uD1A7\u0000\uAEA9"+
- "\uB179\u0000\uD1A2\uB177\u0000\u0000\u0000\u0000"+
- "\uB17A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD555\uD55E\uB464\u0000\uB17C\uB1A3\uB465\uD560"+
- "\uB1AA\uD8F9\uD556\uB1A2\uB1A5\uB17E\uD554\uD562"+
- "\uD565\uD949\u0000\uD563\uD8FD\uB1A1\uB1A8\uB1AC"+
- "\uD55D\uD8F8\uD561\uB17B\uD8FA\uD564\uD8FC\uD559"+
- "\u0000\uB462\u0000\uD557\uD558\uB1A7\u0000\u0000"+
- "\uB1A6\uD55B\uB1AB\uD55F\uB1A4\uD55C\u0000\uB1A9"+
- "\uB466\uB463\uD8FB\u0000\uD55A\u0000\uB17D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uB46B\uB46F\uD940\uB751\uB46D\uD944\uB471\uDD65"+
- "\uD946\uB753\uB469\uB46C\uD947\u0000\uD948\uD94E"+
- "\uB473\uB754\u0000\uD94A\uD94F\uD943\uB75E\u0000"+
- "\uB755\uB472\uD941\uD950\u0000\uB75D\uB470\uB74E"+
- "\uD94D\u0000\uB474\uD945\uD8FE\uB46A\uD942\u0000"+
- "\uD94B\u0000\uB74D\uB752\uB467\uD94C\u0000\uB750"+
- "\u0000\u0000\u0000\uB468\u0000\u0000\u0000\uB75C"+
- "\uE1C3\uDD70\u0000\uDD68\uE1C2\u0000\uDD6C\uDD6E"+
- "\u0000\u0000\uDD6B\u0000\uB75B\u0000\uDD6A\uB75F"+
- "\u0000\u0000\u0000\uE1D2\u0000\u0000\uB75A\uBA40"+
- "\uDD71\uE1C4\u0000\u0000\uB758\uDD69\uDD6D\uB9FE"+
- "\uB74F\uDD66\uDD67\uBA41\uB757\uB759\uB756\uDD6F"+
- "\u0000\u0000\uE1C8\uE1C9\uE1CE\uBC7D\uE1D5\u0000"+
- "\uBA47\u0000\uBA46\uE1D0\u0000\uBC7C\uE1C5\uBA45"+
- "\u0000\uE1D4\uBA43\uBA44\u0000\uE1D1\uE5AA\uBC7A"+
- "\uB46E\u0000\uE1D3\uBCA3\uE1CB\u0000\uBC7B\u0000"+
- "\uBCA2\uE1C6\uE1CA\uE1C7\uE1CD\uBA48\uBC79\uBA42"+
- "\u0000\uE57A\uE1CF\u0000\uBCA1\u0000\uBCA4\u0000"+
- "\uE1CC\u0000\uBC7E\uE579\u0000\u0000\u0000\u0000"+
- "\u0000\uE57E\uBECE\uE578\uE9A3\uE5A9\uBCA8\u0000"+
- "\uBCA6\uBECC\uE5A6\uE5A2\uBCAC\u0000\uE978\u0000"+
- "\u0000\u0000\uBCAA\uE5A1\u0000\uE976\u0000\uE5A5"+
- "\u0000\uE5A8\uE57D\u0000\uBCAB\u0000\u0000\uBCA5"+
- "\uE977\uBECD\uE5A7\uBCA7\uBCA9\uE5A4\uBCAD\uE5A3"+
- "\uE57C\uE57B\uBECB\uE5AB\uE97A\uECE0\uBED0\u0000"+
- "\uE9A2\u0000\uE97E\u0000\uECE1\u0000\uBED1\uE9A1"+
- "\u0000\uE97C\uC0B4\uECDF\u0000\uE979\uE97B\uC0B5"+
- "\uBED3\uC0B3\uBED2\uC0B7\uE97D\uBECF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uEFCF\u0000"+
- "\uEFC7\u0000\u0000\u0000\u0000\u0000\uECE7\uEFC8"+
- "\uECE3\u0000\u0000\uC256\uECE5\uECE4\uC0B6\uECE2"+
- "\uECE6\uEFD0\uEFCC\uEFCE\u0000\uEFC9\uEFCA\u0000"+
- "\uEFCD\uEFCB\uC367\u0000\u0000\uC36A\uC369\uC368"+
- "\uC461\uF44A\uC462\uF241\uC4DF\uF5CC\uC4E0\uC574"+
- "\uC5CA\uF7D9\u0000\uF7DA\uF7DB\u0000\u0000\uF9BA"+
- "\uA4E0\uC97C\uA5B3\u0000\uA6A6\uA6A7\uA6A5\u0000"+
- "\uA6A8\uA7DA\uA7D9\u0000\uCCB1\uA9CF\uA9CE\u0000"+
- "\u0000\uD1AF\uB1AD\uB1AE\u0000\u0000\u0000\uB475"+
- "\uDD72\uB760\uB761\uDD74\uDD76\uDD75\u0000\uE1D7"+
- "\u0000\uE1D6\uBA49\uE1D8\u0000\uE5AC\uBCAE\u0000"+
- "\uBED4\u0000\uC0B8\uC257\uC0B9\u0000\uA4E1\u0000"+
- "\u0000\u0000\uCAE6\u0000\u0000\uCCB2\uA9D1\uA9D0"+
- "\uA9D2\uABF3\uCED2\uCED3\u0000\u0000\uD1B0\uAEB0"+
- "\uB1AF\uB476\uD951\uA4E2\u0000\uA47E\uA4E3\u0000"+
- "\uC97D\uA5B7\uA5B6\uA5B4\uA5B5\u0000\u0000\u0000"+
- "\uA6AB\uC9E9\uC9EB\uA6AA\uC9E3\u0000\uC9E4\u0000"+
- "\uC9EA\uC9E6\uC9E8\uA6A9\uC9E5\uC9EC\uC9E7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA7E1\uA7EA\uA7E8"+
- "\uCAF0\uCAED\uCAF5\uA7E6\uCAF6\u0000\uA7DF\uCAF3"+
- "\u0000\uA7E5\uCAEF\uCAEE\uA7E3\uCAF4\uA7E4\uA9D3"+
- "\uA7DE\uCAF1\u0000\uCAE7\uA7DB\u0000\uA7EE\uCAEC"+
- "\uCAF2\uA7E0\uA7E2\u0000\uCAE8\u0000\uCAE9\uCAEA"+
- "\u0000\uA7ED\uA7E7\uA7EC\uCAEB\uA7EB\uA7DD\uA7DC"+
- "\uA7E9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA9E1\uCCBE\uCCB7\uA9DC\uA9EF\uCCB3\uCCBA\uCCBC"+
- "\uCCBF\uA9EA\u0000\uCCBB\uCCB4\uA9E8\uCCB8\u0000"+
- "\uCCC0\uA9D9\u0000\uCCBD\uA9E3\uA9E2\uCCB6\uA9D7"+
- "\u0000\u0000\uA9D8\u0000\uA9D6\u0000\uA9EE\uA9E6"+
- "\uA9E0\uA9D4\uCCB9\uA9DF\uA9D5\uA9E7\uA9F0\uCED4"+
- "\uA9E4\uCCB5\uA9DA\uA9DD\uA9DE\u0000\uA9EC\uA9ED"+
- "\uA9EB\uA9E5\uA9E9\uA9DB\uABF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uCEDA\uAC41\uABF8\uABFA\uAC40"+
- "\uCEE6\uABFD\uD1B1\uAEB1\uAC43\uCED7\uCEDF\uABFE"+
- "\uCEDE\uCEDB\uCEE3\uCEE5\uABF7\uABFB\uAC42\uAEB3"+
- "\uCEE0\uABF9\uAC45\uCED9\u0000\u0000\u0000\uABFC"+
- "\uAEB2\uABF6\u0000\uCED6\uCEDD\uCED5\uCED8\uCEDC"+
- "\uD1B2\uAC44\u0000\uCEE1\uCEE2\uCEE4\uABF5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uAEC1\uD1BE\uAEBF\uAEC0\uD1B4\uD1C4\u0000\uAEB6"+
- "\u0000\u0000\uD566\uD1C6\uD1C0\u0000\uD1B7\u0000"+
- "\uD1C9\uD1BA\uAEBC\uD57D\uD1BD\uAEBE\uAEB5\u0000"+
- "\uD1CB\uD1BF\uAEB8\uD1B8\uD1B5\uD1B6\uAEB9\uD1C5"+
- "\uD1CC\uAEBB\uD1BC\uD1BB\uAEC3\uAEC2\uAEB4\uAEBA"+
- "\uAEBD\uD1C8\u0000\u0000\uD1C2\uAEB7\uD1B3\uD1CA"+
- "\uD1C1\uD1C3\uD1C7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD567\u0000\uB1B7"+
- "\uB1CB\uB1CA\u0000\uB1BF\u0000\uD579\uD575\uD572"+
- "\uD5A6\uB1BA\uB1B2\u0000\u0000\uD577\uB4A8\uB1B6"+
- "\uD5A1\u0000\uB1CC\uB1C9\uD57B\uD56A\u0000\u0000"+
- "\uB1C8\uD5A3\uD569\uB1BD\uB1C1\uD5A2\u0000\uD573"+
- "\uB1C2\uB1BC\uD568\u0000\uB478\uD5A5\uD571\uB1C7"+
- "\uD574\uD5A4\uB1C6\u0000\uD952\u0000\uB1B3\uD56F"+
- "\uB1B8\uB1C3\u0000\uB1BE\uD578\uD56E\uD56C\uD57E"+
- "\uB1B0\uB1C4\uB1B4\uB477\uD57C\uB1B5\u0000\uB1B1"+
- "\uB1C0\uB1BB\uB1B9\uD570\uB1C5\uD56D\uD57A\uD576"+
- "\uD954\uD953\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD56B\uD964\u0000"+
- "\uB47A\u0000\uD96A\uD959\uD967\uDD77\uB47D\uD96B"+
- "\uD96E\uB47C\uD95C\uD96D\uD96C\uB47E\uD955\uB479"+
- "\uB4A3\u0000\uB4A1\uD969\u0000\uD95F\uB4A5\uD970"+
- "\uD968\uD971\uB4AD\uB4AB\uD966\uD965\u0000\uD963"+
- "\uD95D\uB4A4\u0000\uB4A2\uD1B9\uD956\u0000\uDDB7"+
- "\uD957\uB47B\uB4AA\uDD79\u0000\uB4A6\uB4A7\uD958"+
- "\uD96F\uDD78\uD960\uD95B\uB4A9\uD961\uD95E\u0000"+
- "\u0000\uB4AE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uB770\u0000"+
- "\u0000\uDD7C\uDDB1\uDDB6\uDDAA\uB76C\uDDBB\uB769"+
- "\uDD7A\u0000\uDD7B\uB762\uB76B\uDDA4\uB76E\uB76F"+
- "\uDDA5\u0000\uDDB2\uDDB8\uB76A\u0000\uB764\uDDA3"+
- "\uDD7D\uDDBA\uDDA8\uDDA9\uDD7E\uDDB4\uDDAB\uDDB5"+
- "\uDDAD\u0000\uB765\uE1D9\uB768\uB766\uDDB9\uDDB0"+
- "\uDDAC\u0000\u0000\uDDA1\uBA53\uDDAF\uB76D\uDDA7"+
- "\u0000\uDDA6\u0000\u0000\u0000\uB767\uB763\uE1EE"+
- "\uDDB3\uDDAE\u0000\uDDA2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uE1E9\u0000\uE1DA\uE1E5\u0000"+
- "\uE1EC\uBA51\uB4AC\uE1EA\uBA4C\u0000\u0000\u0000"+
- "\uBA4B\uE1F1\u0000\uE1DB\uE1E8\uE1DC\uE1E7\uBA4F"+
- "\uE1EB\uD962\u0000\u0000\u0000\uE1F2\uE1E3\uBA52"+
- "\uE5BA\uBCAF\u0000\uE1F0\uE1EF\uBA54\uE5AD\uBCB0"+
- "\uE5AE\u0000\uE1DF\uE1E0\uE1DD\uE1E2\uE1DE\uE1F3"+
- "\uBA4E\uBCB1\uBA50\uBA55\u0000\uE1E1\u0000\uE1ED"+
- "\u0000\u0000\uE1E6\u0000\u0000\uE5B1\u0000\uBA4A"+
- "\uBCB4\uE9AA\uE5B6\uE5B5\uE5B7\u0000\u0000\uE5B4"+
- "\uBCB5\u0000\uBCBB\uBCB8\u0000\uBCB9\uE5AF\uE5B2"+
- "\uE5BC\uBCC1\uBCBF\u0000\uE5B3\uD95A\uBCB2\uE5B9"+
- "\uE5B0\u0000\uBCC2\uE5B8\uBA4D\uBCB7\uE1E4\u0000"+
- "\u0000\uBCBA\u0000\uBCBE\uBCC0\uBCBD\uBCBC\u0000"+
- "\uBCB6\uE5BB\uBCB3\uBCC3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uBED8\uBED9\uE9A9\uBEE2\uBEDF"+
- "\u0000\uBED6\uBEDD\uE9AB\uBEDB\uBED5\u0000\uBEDC"+
- "\u0000\uE9A8\uC0BB\uBED7\u0000\uBEDE\uC0BA\uE9A7"+
- "\uE9A6\u0000\uBEE0\u0000\uBEE1\u0000\uE9A5\uE9A4"+
- "\uC0BC\uE9AE\uBEDA\uE9AC\u0000\u0000\u0000\u0000"+
- "\uC0BD\u0000\uC0C2\uECEA\uECEC\u0000\uC0BF\u0000"+
- "\uECED\uECE9\u0000\uECEB\uC0C0\uC0C3\u0000\uECE8"+
- "\uC0BE\uC0C1\uC259\uE9AD\uC258\u0000\u0000\uC25E"+
- "\uEFD4\u0000\uC25C\uC25D\uEFD7\uEFD3\uC25A\uEFD1"+
- "\uC36B\uEFD5\u0000\uEFD6\uEFD2\u0000\uC25B\uF242"+
- "\u0000\uF245\u0000\u0000\uF246\uF244\uF247\uC36C"+
- "\uF243\u0000\u0000\uF44E\uC464\uF44D\uF44C\uF44B"+
- "\uC463\uC465\u0000\uF5CD\uC4E2\uC4E1\u0000\u0000"+
- "\uF6E1\uF6E0\uF6E3\uC5CB\uC575\uF7DD\uF6E2\u0000"+
- "\u0000\uF7DC\uC5CD\uC5CC\uC5F3\uF8A9\uF8EF\uA4E4"+
- "\u0000\u0000\uD972\uE9AF\u0000\u0000\uA6AC\uCAF7"+
- "\uA7F1\uA7EF\u0000\uA7F0\u0000\uCCC1\uA9F1\uAC46"+
- "\u0000\uCEE7\u0000\uCEE8\u0000\uAC47\uD1CE\u0000"+
- "\uAEC4\uAEC5\uD1CD\u0000\u0000\u0000\u0000\uB1D3"+
- "\u0000\uB1CF\u0000\uD5A7\uB1D6\uB1D5\uB1CE\uB1D1"+
- "\uB1D4\uB1D0\u0000\u0000\uD976\uB1CD\uB4AF\u0000"+
- "\u0000\u0000\uB4B1\uB4B2\uD975\uD978\uB4B0\uD973"+
- "\uD977\u0000\uD974\u0000\uB771\u0000\u0000\uDDBC"+
- "\u0000\u0000\uBA56\uE1F4\uBEE3\uBCC4\uE5BD\uBCC5"+
- "\uBCC6\uE5BF\uE5BE\uE5C0\uE9B1\u0000\u0000\uE9B0"+
- "\uECEF\uECEE\uC0C4\uC0C5\uF248\u0000\u0000\uA4E5"+
- "\u0000\u0000\u0000\u0000\uD979\u0000\u0000\u0000"+
- "\uB4B4\uB4B3\uDDBD\u0000\uEFD8\uC4E3\uF7DE\uA4E6"+
- "\u0000\uAEC6\u0000\uB1D8\uB1D7\uD97A\uD97B\uB772"+
- "\uE1F5\uBA57\uE9B2\u0000\uA4E7\uA5B8\u0000\uA9F2"+
- "\uCCC2\u0000\uCEE9\uAC48\uB1D9\u0000\uD97C\uB4B5"+
- "\uB773\u0000\uE5C1\uE5C2\u0000\u0000\uECF0\uC25F"+
- "\uF8F0\uA4E8\u0000\uCCC3\uA9F3\uAC49\u0000\uCEEA"+
- "\u0000\uAEC7\uD1D2\uD1D0\uD1D1\uAEC8\uD1CF\u0000"+
- "\u0000\u0000\u0000\uB1DB\uB1DC\uD5A8\uB1DD\uB1DA"+
- "\uD97D\u0000\uD97E\uDDBE\u0000\u0000\uBA59\uBA58"+
- "\u0000\u0000\uECF1\uEFD9\u0000\uF24A\uF249\uF44F"+
- "\u0000\uC95E\uAC4A\u0000\u0000\uA4E9\uA5B9\u0000"+
- "\uA6AE\uA6AD\u0000\u0000\uA6AF\uA6B0\uC9EE\uC9ED"+
- "\uCAF8\uA7F2\uCAFB\uCAFA\uCAF9\uCAFC\u0000\u0000"+
- "\u0000\u0000\uA9F4\uCCC9\uCCC5\uCCCE\u0000\u0000"+
- "\uA9FB\u0000\uA9F9\uCCCA\uCCC6\uCCCD\uA9F8\uAA40"+
- "\uCCC8\uCCC4\uA9FE\uCCCB\uA9F7\uCCCC\uA9FA\uA9FC"+
- "\uCCD0\uCCCF\uCCC7\uA9F6\uA9F5\uA9FD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uCEEF\uCEF5\u0000\uAC50"+
- "\uAC4D\uCEEC\uCEF1\u0000\uAC53\uAC4B\uCEF0\uAC4E"+
- "\uAC51\u0000\u0000\uCEF3\u0000\uAC4C\uCEF8\uAC4F"+
- "\u0000\uAC52\uCEED\uCEF2\uCEF6\uCEEE\uCEEB\u0000"+
- "\u0000\uCEF7\uCEF4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uAED0\uAEC9\uAECC\u0000\uAECF\u0000\uD1D5"+
- "\u0000\uAECA\uD1D3\u0000\uAECE\u0000\u0000\uAECB"+
- "\u0000\uD1D6\uAECD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uD5AC\uB1DF\uD5AB\uD5AD\uB1DE\uB1E3\uD1D4"+
- "\u0000\uD5AA\uD5AE\u0000\uB1E0\uD5A9\uB1E2\u0000"+
- "\uB1E1\u0000\uD9A7\u0000\uD9A2\u0000\uB4B6\uB4BA"+
- "\uB4B7\uD9A5\uD9A8\u0000\uB4B8\u0000\uB4B9\uB4BE"+
- "\uDDC7\uD9A6\uB4BC\uD9A3\uD9A1\u0000\uB4BD\u0000"+
- "\uD9A4\u0000\u0000\u0000\uB779\u0000\uDDBF\uB776"+
- "\uB777\uB775\uDDC4\uDDC3\uDDC0\uB77B\u0000\u0000"+
- "\uDDC2\uB4BB\u0000\u0000\uDDC6\uDDC1\uB778\uB774"+
- "\uB77A\uDDC5\u0000\u0000\u0000\uBA5C\u0000\uE1F8"+
- "\uE1F7\uE1F6\uBA5A\u0000\u0000\u0000\u0000\u0000"+
- "\uBA5B\uE5C5\uE5C8\uBCC8\u0000\u0000\uBCC7\uE5C9"+
- "\uE5C4\uBCCA\uE5C6\u0000\uBCC9\uE5C3\u0000\uE5C7"+
- "\uBEE9\uBEE6\uE9BB\uE9BA\u0000\uE9B9\uE9B4\u0000"+
- "\uE9B5\u0000\u0000\u0000\uBEE7\u0000\uBEE4\uBEE8"+
- "\uE9B3\uBEE5\uE9B6\uE9B7\uE9BC\u0000\u0000\uE9B8"+
- "\u0000\u0000\uECF2\u0000\u0000\u0000\uC0C7\u0000"+
- "\uEFDC\uC0C6\uEFDA\uEFDB\uC260\uC36E\uF24B\u0000"+
- "\uC36D\u0000\u0000\uF451\uF452\u0000\uC466\u0000"+
- "\uF450\uC4E4\u0000\uF7DF\uC5CE\uF8AA\uF8AB\u0000"+
- "\uA4EA\u0000\uA6B1\uA6B2\uA7F3\u0000\uCCD1\uAC54"+
- "\uAED1\uB1E4\u0000\u0000\uB0D2\u0000\uB4BF\uB4C0"+
- "\uB3CC\uD9A9\u0000\uB77C\uE1FA\uE1F9\u0000\u0000"+
- "\uA4EB\uA6B3\uCCD2\uAA42\u0000\uAA41\u0000\uCEF9"+
- "\uCEFA\u0000\uD1D7\uD1D8\uAED2\uAED3\u0000\uAED4"+
- "\uD5AF\u0000\u0000\uB1E6\u0000\uB4C2\u0000\uB4C1"+
- "\uDDC8\uDF7A\uE1FB\uE9BD\u0000\u0000\uC261\uC467"+
- "\uA4EC\u0000\uA5BC\uA5BD\uA5BB\uA5BE\uA5BA\u0000"+
- "\u0000\uA6B6\u0000\uC9F6\uA6B5\uA6B7\u0000\u0000"+
- "\uC9F1\uC9F0\uC9F3\uC9F2\uC9F5\uA6B4\uC9EF\uC9F4"+
- "\u0000\u0000\u0000\u0000\u0000\uCAFD\uA7FD\uCAFE"+
- "\uCB43\uA7FC\u0000\uCB47\uCB42\uCB45\uA7F5\uA7F6"+
- "\uA7F7\uA7F8\u0000\uA840\u0000\uCB41\uA7FA\uA841"+
- "\u0000\uCB40\uCB46\u0000\uA7F9\uCB44\uA7FB\uA7F4"+
- "\uA7FE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uAA57\u0000\uCCD4\uAA43\u0000\uAA4D"+
- "\uAA4E\uAA46\uAA58\uAA48\uCCDC\uAA53\uCCD7\uAA49"+
- "\uCCE6\uCCE7\uCCDF\uCCD8\uAA56\uCCE4\uAA51\uAA4F"+
- "\u0000\uCCE5\u0000\uCCE3\uCCDB\uCCD3\uCCDA\uAA4A"+
- "\u0000\uAA50\u0000\uAA44\uCCDE\uCCDD\uCCD5\u0000"+
- "\uAA52\uCCE1\uCCD6\uAA55\uCCE8\uAA45\u0000\uAA4C"+
- "\uCCD9\uCCE2\uAA54\u0000\uAA47\uAA4B\u0000\uCCE0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uCF5B\uAC5C"+
- "\uAC69\u0000\uCF56\uCF4C\uAC62\uCF4A\uAC5B\uCF45"+
- "\uAC65\uCF52\uCEFE\uCF41\u0000\u0000\u0000\u0000"+
- "\uCF44\uCEFB\uCF51\uCF61\uAC60\uCF46\uCF58\u0000"+
- "\uCEFD\uCF5F\uCF60\uCF63\uCF5A\uCF4B\uCF53\uAC66"+
- "\uAC59\uAC61\uAC6D\uAC56\uAC58\u0000\u0000\u0000"+
- "\uCF43\uAC6A\uAC63\uCF5D\uCF40\uAC6C\uAC67\uCF49"+
- "\u0000\u0000\uAC6B\uCF50\uCF48\uAC64\uCF5C\uCF54"+
- "\u0000\uAC5E\uCF62\uCF47\uAC5A\uCF59\uCF4F\uAC5F"+
- "\uCF55\uAC57\uCEFC\uAC68\uAEE3\uAC5D\uCF4E\uCF4D"+
- "\uCF42\u0000\uCF5E\u0000\uCF57\u0000\u0000\uAC55"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uD1EC\uAEEA\uD1ED\u0000\uD1E1\uAEDF"+
- "\uAEEB\u0000\uD1DA\u0000\uD1E3\uD1EB\u0000\uD1D9"+
- "\uD1F4\uAED5\u0000\u0000\u0000\uD1F3\uD1EE\u0000"+
- "\uD1EF\uAEDD\uAEE8\uD1E5\u0000\uD1E6\uD1F0\uD1E7"+
- "\u0000\uD1E2\uD1DC\uD1DD\uD1EA\uD1E4\u0000\u0000"+
- "\uAED6\uAEDA\uD1F2\uD1DE\uAEE6\uAEE2\u0000\u0000"+
- "\uAEE5\uAEEC\uAEDB\uAEE7\uD1E9\uAEE9\uAED8\u0000"+
- "\uAED7\uD1DB\u0000\uD1DF\uAEE0\uD1F1\uD1E8\uD1E0"+
- "\uAEE4\uAEE1\u0000\uAED9\uAEDC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uD5C4\u0000\uD5B4\uD5B5\uD5B9"+
- "\u0000\uD5C8\uD5C5\u0000\uD5BE\uD5BD\uB1ED\uD5C1"+
- "\uD5D0\uD5B0\u0000\uD5D1\uD5C3\uD5D5\uD5C9\uB1EC"+
- "\uD5C7\uB1E7\uB1FC\uB1F2\u0000\uB1F6\uB1F5\uD5B1"+
- "\u0000\uD5CE\uD5D4\uD5CC\uD5D3\u0000\u0000\uD5C0"+
- "\uD5B2\uD5D2\uD5C2\uB1EA\uB1F7\u0000\uD5CB\uB1F0"+
- "\u0000\u0000\u0000\uD5CA\uD5B3\uB1F8\u0000\uB1FA"+
- "\uD5CD\uB1FB\uB1E9\uD5BA\uD5CF\u0000\u0000\uB1EF"+
- "\uB1F9\uD5BC\uD5C6\uD5B7\uD5BB\uB1F4\uD5B6\uB1E8"+
- "\uB1F1\uB1EE\uD5BF\uAEDE\uD9C0\uB1EB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uB1F3\u0000\uD9C3\uD9D9"+
- "\uD9CE\uB4D6\u0000\uB4D1\uD9BD\uB4D2\uD9CD\u0000"+
- "\uD9C6\uD9D3\uB4CE\uD9AB\uD9D5\uB4C4\uD9B3\uB4C7"+
- "\uB4C6\u0000\uB4D7\u0000\uD9AD\uD9CF\uD9D0\uB4C9"+
- "\uB4C5\uD9BB\u0000\uB4D0\uD9B6\u0000\uD9D1\uB4CC"+
- "\uD9C9\uD9D6\uD9B0\uD9B5\uD9AF\u0000\uB4CB\uD9C2"+
- "\uDDDE\uD9B1\uB4CF\uD9BA\uD9D2\uB4CA\uD9B7\uD9B4"+
- "\uD9C5\uB4CD\uB4C3\uB4D9\uD9C8\uD9C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uD9AC\uB4C8\uD9D4\uD9BC"+
- "\uD9BE\u0000\uD9CB\uD9CA\uD9AA\uB4D3\uB4D5\uD9B2"+
- "\uD9B9\uD9C1\uB4D4\uD9B8\uD9C4\uD9D7\u0000\uD9CC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD9D8\u0000\u0000"+
- "\u0000\u0000\uD9AE\u0000\u0000\u0000\u0000\uDDF2"+
- "\uB7A6\u0000\uDDF0\uDDDB\uDDE0\uDDD9\u0000\uDDEC"+
- "\uDDCB\uDDD2\u0000\uDDEA\uDDF4\uDDDC\u0000\uDDCF"+
- "\uDDE2\uDDE7\uDDD3\u0000\uDDE4\uDDD0\u0000\u0000"+
- "\uDDD7\uDDD8\uB7A8\uDDEB\uDDE9\u0000\uDDCC\uDDEE"+
- "\u0000\uDDEF\uDDF1\uB7AC\uB7A4\u0000\uD5B8\uDDD4"+
- "\uDDE6\uDDD5\uB7A1\uB7B1\uDDED\uB7AF\uB7AB\uDDCA"+
- "\uB7A3\u0000\uDDCD\uB7B0\u0000\uDDDD\uDDC9\u0000"+
- "\uB7A9\uDDE1\uDDD1\uB7AA\uDDDA\uB77E\uB4D8\uDDE3"+
- "\uD9BF\uDDCE\u0000\u0000\uDDE8\uB7A5\uDDE5\uB7A2"+
- "\uDDDF\uB7AD\uDDD6\uDDF3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uB7A7\uDEC6\u0000\u0000\uB7AE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uE24A\uE248\u0000"+
- "\uE25E\uE246\u0000\uE258\uB77D\uBA5F\uE242\uE25D"+
- "\u0000\uE247\uE255\uBA64\uBA5D\u0000\uE25B\u0000"+
- "\uE240\uE25A\u0000\uBA6F\uE251\uE261\uBA6D\uE249"+
- "\uBA5E\uE24B\uE259\uBA67\uE244\uBA6B\uBA61\uE24D"+
- "\uE243\uE1FC\u0000\uE257\uBA68\uE260\uE1FD\uBA65"+
- "\u0000\uE253\u0000\uBA66\uE245\uE250\uE24C\uE24E"+
- "\u0000\uBA60\uE25F\uBA6E\uE24F\u0000\uE262\u0000"+
- "\u0000\uE1FE\uE254\uBA63\uBA6C\uBA6A\uE241\uE256"+
- "\uBA69\u0000\u0000\uBA62\uE252\u0000\u0000\u0000"+
- "\u0000\uE25C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uE5D5\u0000\uE5D1\uE5CD\uE5E1\uE5DE"+
- "\uBCCD\u0000\u0000\uE5E5\uE5D4\uBCD8\uE5DB\u0000"+
- "\u0000\uE5D0\uE5DA\uBCD5\uE5EE\u0000\uE5EB\uE5DD"+
- "\uE5CE\u0000\u0000\uE5E2\uE5E4\uBCD1\uE5D8\uE5D3"+
- "\uE5CA\uBCCE\uBCD6\u0000\uE5E7\uBCD7\uE5CB\uE5ED"+
- "\uE5E0\uE5E6\uBCD4\u0000\u0000\uE5E3\u0000\uE5EA"+
- "\u0000\uBCD9\u0000\uBCD3\uE5DC\uE5CF\uE5EF\uE5CC"+
- "\uE5E8\uBCD0\u0000\uE5D6\u0000\uE5D7\uBCCF\uBCCC"+
- "\uE5D2\uBCD2\u0000\uBCCB\u0000\uE5E9\uE5EC\uE5D9"+
- "\uE9CA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uE9C2\u0000\uE9BE\uBEF6\u0000\u0000"+
- "\uBEEB\uBEF0\uBEEC\uE9CC\uE9D7\uBEEA\uE9C4\uE9CD"+
- "\uE5DF\uE9CE\u0000\u0000\uBEF1\u0000\uE9DD\uBEF5"+
- "\uBEF8\uE9C0\u0000\uBEF4\u0000\uE9DB\uE9DC\uE9D2"+
- "\uE9D1\uE9C9\u0000\u0000\uE9D3\uE9DA\uE9D9\u0000"+
- "\uBEEF\uBEED\uE9CB\uE9C8\u0000\uE9C5\uE9D8\uBEF7"+
- "\uE9D6\uBEF3\uBEF2\u0000\uE9D0\u0000\uE9BF\uE9C1"+
- "\uE9C3\uE9D5\uE9CF\uBEEE\u0000\uE9C6\u0000\uE9D4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uE9C7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC0CF\uED45"+
- "\uC0C8\uECF5\u0000\uED41\uC0CA\uED48\u0000\uECFC"+
- "\u0000\uECF7\u0000\u0000\uED49\uECF3\uECFE\u0000"+
- "\uC0D1\uED44\uED4A\uECFD\uC0C9\uED40\uECF4\uC0D0"+
- "\u0000\u0000\uED47\uECF9\uC0CC\u0000\uECFB\uECF8"+
- "\uC0D2\uECFA\uC0CB\uC0CE\uED43\uECF6\uED46\u0000"+
- "\uED42\u0000\u0000\u0000\uC263\uEFE7\uC268\uC269"+
- "\u0000\u0000\u0000\uC262\uEFE6\u0000\uEFE3\uEFE4"+
- "\uC266\uEFDE\uEFE2\uC265\u0000\uEFDF\u0000\u0000"+
- "\u0000\u0000\uC267\uC264\u0000\uEFDD\uEFE1\uEFE5"+
- "\u0000\u0000\u0000\uF251\uF24E\uF257\u0000\uF256"+
- "\uF254\uF24F\u0000\uC372\u0000\u0000\u0000\u0000"+
- "\u0000\uF250\uC371\uC0CD\uF253\uC370\uF258\uF252"+
- "\uF24D\uEFE0\u0000\u0000\u0000\uC36F\u0000\uF24C"+
- "\uF456\u0000\uF455\uF255\uC468\u0000\uF459\uF45A"+
- "\uF454\uF458\u0000\uF453\u0000\u0000\u0000\u0000"+
- "\uF5D1\uF457\uC4E7\uC4E5\uF5CF\u0000\u0000\u0000"+
- "\uF5D2\u0000\uF5CE\uF5D0\uC4E6\u0000\u0000\u0000"+
- "\uF6E5\uF6E6\uC576\uF6E4\u0000\u0000\u0000\uF7E2"+
- "\uC5CF\uF7E0\uF7E1\uF8AC\u0000\u0000\uC656\uF8F3"+
- "\uF8F1\uF8F2\uF8F4\u0000\u0000\u0000\uF9BB\u0000"+
- "\uA4ED\uA6B8\u0000\uAA59\u0000\uCCE9\u0000\u0000"+
- "\uCF64\u0000\u0000\u0000\uD1F5\uD1F7\u0000\uD1F6"+
- "\u0000\uD1F8\uB1FD\uD5D7\uD1F9\u0000\uD5D6\uD5D8"+
- "\uD5D9\uD9DA\uB4DB\uD9DB\uD9DD\uB4DC\uB4DA\uD9DC"+
- "\u0000\uDDFA\uDDF8\uDDF7\u0000\uDDF6\uDDF5\uB7B2"+
- "\uDDF9\uBA70\uE263\uE265\uBA71\uE264\uBCDB\u0000"+
- "\uBCDA\uE5F0\u0000\u0000\uE9DF\uE9DE\uE9E0\u0000"+
- "\u0000\uBEF9\u0000\uED4B\uC0D3\u0000\uEFE8\uC26A"+
- "\uF259\uC577\uA4EE\uA5BF\uA6B9\uA842\uAA5A\uAA5B"+
- "\u0000\u0000\uAC6E\u0000\u0000\uD1FA\u0000\u0000"+
- "\u0000\u0000\uB7B3\u0000\u0000\u0000\uE6D1\uBEFA"+
- "\uC26B\uA4EF\u0000\uA6BA\u0000\u0000\uCCEB\uAA5C"+
- "\uCCEA\u0000\uCF65\uAC6F\uCF66\u0000\uAC70\u0000"+
- "\uD1FC\uAEEE\uAEED\u0000\uD5DE\uD5DC\uD5DD\uD5DB"+
- "\u0000\uD5DA\u0000\u0000\uD9DE\uD9E1\uB4DE\uD9DF"+
- "\uB4DD\uD9E0\u0000\uDDFB\u0000\u0000\uE266\uE267"+
- "\uE268\u0000\uE5F3\uE5F2\uBCDC\uE5F1\uE5F4\uE9E1"+
- "\u0000\u0000\uE9E2\uE9E3\u0000\uED4C\uC0D4\uC26C"+
- "\uF25A\u0000\uC4E8\uC95F\u0000\uAC71\uCF67\uAEEF"+
- "\u0000\u0000\uB1FE\u0000\uB4DF\uD9E2\u0000\uB7B5"+
- "\uB7B4\u0000\u0000\uE269\uE26A\uBCDD\uBCDE\uE9E5"+
- "\uE9E4\uEFE9\uF7E3\uA4F0\uC960\uA5C0\u0000\uA843"+
- "\uCB48\u0000\uAC72\uB7B6\uA4F1\u0000\uCF68\uAC73"+
- "\uCF69\u0000\uC0D5\uA4F2\u0000\u0000\uCCEC\u0000"+
- "\uCF6A\u0000\uD242\uD241\uD1FE\u0000\uD1FD\uD243"+
- "\uD240\u0000\u0000\uB240\uB241\u0000\u0000\uB4E0"+
- "\uD9E3\u0000\uD9E4\uD9E5\u0000\u0000\u0000\uDE41"+
- "\uDE42\uDE40\u0000\uDDFD\uDDFE\uB7B7\uE26B\uE5F7"+
- "\uE5F6\uE5F5\uE5F8\uE9E7\uE9E6\uBEFB\uE9E8\u0000"+
- "\uC0D6\uED4D\u0000\uEFEA\uF25B\uF6E7\u0000\uA4F3"+
- "\uA5C2\uA5C1\u0000\uAA5D\uC961\uC97E\uA6BB\u0000"+
- "\uC9F7\uCB49\uCB4A\uAA5E\u0000\uCCED\u0000\uAC74"+
- "\uCF6B\uCF6C\u0000\uAEF0\uAEF4\uD244\uAEF3\uAEF1"+
- "\uAEF2\u0000\uD5DF\uB242\uB4E3\u0000\uB4E1\uB4E2"+
- "\uD9E6\u0000\u0000\uBA72\uA4F4\u0000\uC9A1\u0000"+
- "\uA5C3\u0000\u0000\uC9A4\u0000\u0000\uA5C6\uC9A3"+
- "\uA5C5\uA5C4\uA844\uC9A2\u0000\u0000\uC9F8\u0000"+
- "\u0000\u0000\uC9FC\uC9FE\uCA40\uA6C5\uA6C6\uC9FB"+
- "\uA6C1\u0000\uC9F9\u0000\uC9FD\uA6C2\u0000\uA6BD"+
- "\u0000\uA6BE\u0000\uA6C4\uC9FA\uA6BC\uA845\uA6BF"+
- "\uA6C0\uA6C3\u0000\u0000\u0000\uCB5B\uCB59\uCB4C"+
- "\uA851\uCB53\uA84C\uCB4D\u0000\uCB55\u0000\uCB52"+
- "\uA84F\uCB51\uA856\uCB5A\uA858\u0000\uA85A\u0000"+
- "\uCB4B\u0000\uA84D\uCB5C\u0000\uA854\uA857\u0000"+
- "\uCD45\uA847\uA85E\uA855\uCB4E\uA84A\uA859\uCB56"+
- "\uA848\uA849\uCD43\uCB4F\uA850\uA85B\uCB5D\uCB50"+
- "\uA84E\u0000\uA853\uCCEE\uA85C\uCB57\uA852\u0000"+
- "\uA85D\uA846\uCB54\uA84B\uCB58\uCD44\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uAA6A\uAA7A\uCCF5\uAA71\u0000"+
- "\uCD4B\uAA62\u0000\uAA65\uCD42\u0000\uCCF3\uCCF7"+
- "\uAA6D\uAA6F\uCCFA\uAA76\uAA68\uAA66\uAA67\uAA75"+
- "\uCD47\uAA70\uCCF9\uCCFB\uAA6E\uAA73\uCCFC\uCD4A"+
- "\u0000\uAC75\uAA79\u0000\uAA63\uCD49\u0000\uCD4D"+
- "\uCCF8\uCD4F\uCD40\uAA6C\uCCF4\uAA6B\uAA7D\uAA72"+
- "\u0000\uCCF2\uCF75\uAA78\uAA7C\uCD41\uCD46\u0000"+
- "\uAA7E\uAA77\uAA69\uAA5F\u0000\uAA64\u0000\uCCF6"+
- "\uAA60\uCD4E\u0000\uCCF0\uCCEF\uCCFD\uCCF1\uAA7B"+
- "\uAEF5\uAA74\uCCFE\uAA61\u0000\uACA6\u0000\u0000"+
- "\u0000\uCD4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uCF7C\uCFA1\u0000\uCFA4\uCF77\u0000\u0000\uCFA7"+
- "\uCFAA\uCFAC\uCF74\uAC76\uAC7B\uD249\uACAD\uCFA5"+
- "\uCFAD\uCF7B\uCF73\u0000\u0000\u0000\uD264\uAC7E"+
- "\uCFA2\uCF78\uCF7A\uACA5\u0000\uCF7D\uAC7D\uCF70"+
- "\uCFA8\u0000\uCFAB\u0000\u0000\uAC7A\u0000\uACA8"+
- "\uCF6D\uACAA\uAC78\uACAE\uCFA9\uCF6F\uACAB\uD25E"+
- "\uCD48\uAC7C\uAC77\uCF76\uCF6E\uACAC\uACA4\uCFA3"+
- "\uACA9\uACA7\uCF79\uACA1\uCF71\uACA2\uACA3\uCF72"+
- "\uCFA6\uAC79\uCF7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD24C\uAEFD\uAF43\u0000\u0000\u0000\uD255\uD25B"+
- "\uD257\uD24A\uD24D\uD246\uD247\uAF4A\uAEFA\uD256"+
- "\uD25F\uAF45\uAEF6\u0000\uAF40\uD24E\uAF42\uD24F"+
- "\uD259\u0000\u0000\u0000\uAF44\uD268\uD248\uAEFC"+
- "\uAEFB\uAF48\uD245\uD266\uD25A\uD267\uD261\uD253"+
- "\uD262\u0000\uD25C\uD265\uD263\uAF49\uD254\uAEF9"+
- "\uAEF8\uAF41\uAF47\uD260\uAF46\uD251\uB243\u0000"+
- "\uD269\uD250\uD24B\uAEFE\uAF4B\uAEF7\u0000\uD258"+
- "\uD25D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uB265\uD5E1\uD5E5\u0000\uB252\uB250"+
- "\u0000\u0000\uB247\uD5E3\uD5E2\uB25B\u0000\uD5E8"+
- "\uB255\u0000\uD5FA\uD647\uB244\uD5F7\uD5F0\uB267"+
- "\uD5E0\u0000\uD5FC\u0000\uB264\uB258\uB263\uB24E"+
- "\uD5EC\uD5FE\uD5F6\uB24F\uB249\uD645\u0000\uD5FD"+
- "\uD640\uB251\uB259\uD642\uD5EA\uD5FB\uD5EF\uD644"+
- "\uB25E\uB246\uB25C\uD5F4\uD5F2\uD5F3\uB253\uD5EE"+
- "\uD5ED\uB248\uD5E7\uD646\uB24A\uD5F1\uB268\u0000"+
- "\uB262\uD5E6\uB25F\uB25D\uB266\uD5F8\uB261\uD252"+
- "\uD5F9\uB260\uD641\uB245\uD5F5\uB257\uD5E9\uB256"+
- "\u0000\uB254\uB24C\uB24B\uD9E7\uD643\u0000\u0000"+
- "\uD5EB\u0000\u0000\uD9FC\u0000\uB24D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uB541\uB25A\uB4EE\uD9F6\uB4FC\u0000\uD9EA"+
- "\uB4EB\uB4E7\uDA49\uB4ED\uB4F1\uB4EC\uB4F5\uDA4D"+
- "\uDA44\u0000\u0000\uD9F1\uB4FA\uB4F4\uD9FD\uB4E4"+
- "\uDA4A\uDA43\uB4E8\uD9F7\uB4F7\uDA55\uDA56\u0000"+
- "\uB4E5\uDA48\uB4F9\uD9FB\uD9ED\uD9EE\uB4FD\uD9F2"+
- "\uD9F9\uD9F3\u0000\uB4FB\uB544\uD9EF\uD9E8\uD9E9"+
- "\u0000\uD9EB\uB4EA\uD9F8\u0000\uB4F8\uB542\u0000"+
- "\u0000\uD9FA\uDA53\uDA4B\uB4E6\uDA51\uB4F2\u0000"+
- "\uB4F0\u0000\uDA57\uB4EF\uDA41\uD9F4\uD9FE\uB547"+
- "\uDA45\uDA42\uD9F0\uB543\uDA4F\uDA4C\uDA54\uB4E9"+
- "\uDA40\uB546\u0000\uDA47\u0000\u0000\uB4F3\uB4F6"+
- "\u0000\uDA46\uB545\uD9F5\uD5E4\u0000\u0000\uDA50"+
- "\uDA4E\uDA52\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD9EC\uB540\u0000\u0000\u0000\uDE61\uDE60\uDE46"+
- "\uB7BD\u0000\uDE5F\uDE49\uDE4A\u0000\uB7C7\uDE68"+
- "\uB7C2\uDE5E\u0000\uDE43\uB7C8\uB7BE\uDE52\uDE48"+
- "\uDE4B\uDE63\uB7B8\uDE6A\uDE62\uB7C1\uDE57\uB7CC"+
- "\u0000\u0000\uB7CB\uB7C5\u0000\u0000\uDE69\uB7B9"+
- "\uDE55\uDE4C\uDE59\uDE65\uB7CD\u0000\uB7BB\uDE54"+
- "\u0000\uDE4D\uB7C4\u0000\uB7C3\uDE50\uDE5A\uDE64"+
- "\uDE47\uDE51\uB7BC\uDE5B\uB7C9\uB7C0\uDE4E\uB7BF"+
- "\uDE45\uDE53\uDE67\uB4FE\uBAB0\uDE56\uE26C\uDE58"+
- "\uDE66\uB7C6\uDE4F\uB7BA\uB7CA\uBCF0\uDE44\u0000"+
- "\uDE5D\u0000\u0000\u0000\uDE5C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uE2AA\uBAAD\uE27D\uE2A4\uBAA2"+
- "\u0000\uE26E\uBAAF\u0000\uBA77\uE26D\uE2B0\uBAB1"+
- "\uE271\uE2A3\u0000\uE273\uE2B3\uE2AF\uBA75\uBAA1";
-
- private final static String innerIndex3=
- "\uE653\uBAAE\uBA7D\uE26F\u0000\uE2AE\uBAA3\uE2AB"+
- "\uE2B8\uE275\uE27E\u0000\u0000\uE2B6\uE2AC\uBA7C"+
- "\u0000\u0000\uE27C\uBA76\uBA74\uBAA8\u0000\u0000"+
- "\uE27A\uE277\uE278\u0000\uE2B2\u0000\uE2B7\uE2B5"+
- "\uBA7A\uE2B9\uBA7E\uBAA7\u0000\uE270\uE5FA\uE279"+
- "\u0000\uBA78\uBAAC\uBAA9\uBA7B\uE2A5\uE274\uBAAA"+
- "\uE2A7\uBAA4\uBAA6\uBA73\u0000\uE2A9\uE2A1\uE272"+
- "\uBAA5\uE2B1\uE2B4\uE27B\uE2A8\u0000\uBA79\uBCDF"+
- "\uE2A6\uE5F9\u0000\uE2AD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uE276\uE644"+
- "\uE64E\uBCE2\uE64D\uE659\uBCE4\uE64B\u0000\uE64F"+
- "\uBCEF\u0000\uE646\uBCE7\u0000\uE652\uE9F0\uBCF3"+
- "\uBCF2\uE654\uE643\uE65E\uBCED\u0000\uBCE3\uE657"+
- "\u0000\uE65B\uE660\uE655\uE649\uBCE6\uBCE9\uBCF1"+
- "\uBCEC\u0000\uE64C\uE2A2\u0000\u0000\uE648\uE65F"+
- "\uBCE8\u0000\uBCEB\uE661\uBCE0\uE656\uE5FB\uE65C"+
- "\uC0DF\u0000\uE64A\u0000\uBCE1\uE645\uBCE5\uE5FC"+
- "\uBAAB\uE641\u0000\uE65A\uE642\uE640\uBCEA\u0000"+
- "\uE658\u0000\uE5FE\uE651\uE650\uE65D\uE647\uBCEE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uE9F3\u0000"+
- "\uBF49\uBEFE\uEA40\uE9EB\uBF41\uE9F7\uBF48\uBF43"+
- "\uE9F5\uED4F\uE9FB\uEA42\uE9FA\uE9E9\uE9F8\uEA44"+
- "\uEA46\uBEFD\uEA45\uBF44\uBF4A\u0000\uBF47\u0000"+
- "\uE9FE\uBF46\uE9F9\u0000\uE9ED\uE9F2\u0000\uE9FD"+
- "\uBF45\uBF42\uBEFC\uBF40\uE9F1\u0000\uE5FD\uE9EC"+
- "\uE9EF\uEA41\uE9F4\uE9EA\uED4E\uEA43\uE9EE\uE9FC"+
- "\u0000\u0000\u0000\u0000\uED51\uC0E3\u0000\u0000"+
- "\uC0D7\u0000\u0000\uC0DB\uED53\uED59\uED57\uC0D9"+
- "\uC0DA\uC0E1\uED5A\uED52\uC0DC\u0000\uED56\uED55"+
- "\uED5B\uC0E2\u0000\uC0DD\uC0E0\uED54\uC0E4\uC0DE"+
- "\uC0E5\uC0D8\uED58\u0000\uED50\u0000\u0000\uEFF7"+
- "\u0000\u0000\uC271\uEFF4\uEFF6\u0000\uC26F\uEFF2"+
- "\uEFF3\uEFEE\u0000\u0000\uE9F6\uEFEF\uC270\uEFEB"+
- "\u0000\uC26D\uEFF8\uC26E\uEFEC\uEFED\uEFF1\uC273"+
- "\u0000\uC272\u0000\u0000\uEFF0\uC378\uF25F\uF265"+
- "\uC379\uF25C\uC376\uC373\uF267\uC377\u0000\uC374"+
- "\uF25E\uF261\uF262\uF263\uF266\u0000\uEFF5\uF25D"+
- "\uC375\uF264\uF268\uF260\u0000\u0000\u0000\uF45D"+
- "\uC46A\uF460\uC46B\uF468\uF45F\uF45C\u0000\uF45E"+
- "\uF462\uF465\uF464\uF467\uF45B\u0000\uC469\uF463"+
- "\uF466\uF469\uF461\uF5D3\uF5D4\uF5D8\uF5D9\u0000"+
- "\uF5D6\uF5D7\uF5D5\u0000\uC4E9\u0000\u0000\u0000"+
- "\u0000\uC578\uF6EB\u0000\u0000\uF6E8\uF6E9\uF6EA"+
- "\uC579\u0000\uF7E5\uF7E4\u0000\uF8AF\uC5F4\uF8AD"+
- "\uF8B0\uF8AE\uF8F5\uC657\uC665\uF9A3\uF96C\u0000"+
- "\uF9A2\uF9D0\uF9D1\uA4F5\u0000\u0000\u0000\u0000"+
- "\uA6C7\uCA41\u0000\u0000\uCB5E\u0000\uA85F\u0000"+
- "\uA862\u0000\uCB5F\u0000\uA860\uA861\u0000\u0000"+
- "\u0000\u0000\uCD58\uCD5A\uCD55\uCD52\uCD54\u0000"+
- "\u0000\u0000\uAAA4\u0000\u0000\u0000\uAAA2\u0000"+
- "\u0000\uCD56\uAAA3\uCD53\uCD50\uAAA1\uCD57\u0000"+
- "\uCD51\uAAA5\uCD59\u0000\u0000\u0000\u0000\uCFAF"+
- "\u0000\uCFB3\u0000\u0000\uACB7\u0000\u0000\u0000"+
- "\u0000\uCFB6\u0000\uACAF\uACB2\uACB4\uACB6\uACB3"+
- "\uCFB2\uCFB1\u0000\uACB1\uCFB4\uCFB5\u0000\uCFAE"+
- "\uACB5\u0000\uACB0\u0000\u0000\u0000\uCFB0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD277\uD278\uD279"+
- "\uAF50\u0000\uAF4C\uD26E\u0000\uD276\uD27B\uAF51"+
- "\u0000\uD26C\uD272\uD26B\uD275\u0000\u0000\uD271"+
- "\uAF4D\uAF4F\uD27A\u0000\uD26A\uD26D\uD273\u0000"+
- "\uD274\uD27C\uD270\u0000\uAF4E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uB26D"+
- "\uD64E\u0000\u0000\uD650\uD64C\u0000\uD658\uD64A"+
- "\uD657\uB269\uD648\uDA5B\uD652\uB26C\u0000\uD653"+
- "\uD656\u0000\uD65A\u0000\uD64F\u0000\uD654\u0000"+
- "\u0000\uB26A\uB26B\uD659\uD64D\uD649\uD65B\u0000"+
- "\uD651\u0000\u0000\uD655\u0000\u0000\u0000\uD64B"+
- "\u0000\uB548\uB549\uDA65\uB54F\u0000\uDA59\uDA62"+
- "\uDA58\uB54C\uDA60\uDA5E\u0000\uDA5F\uB54A\u0000"+
- "\uDA63\u0000\u0000\u0000\u0000\u0000\uDA5C\uDA5A"+
- "\uB54B\uDA5D\uDA61\u0000\u0000\u0000\uB54D\u0000"+
- "\u0000\u0000\uDA64\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uDE70\uDE77\uDE79\uDEA1\u0000\uB7DA\uDE6B"+
- "\u0000\uB7D2\u0000\uDE7A\uB7D7\uDEA2\uB7CE\u0000"+
- "\uDE7D\u0000\uDE6D\uDE7E\uDE6C\u0000\uB7DC\u0000"+
- "\uDE78\uB7CF\uDEA3\u0000\uB7D4\uDE71\uB7D9\uDE7C"+
- "\uDE6F\uDE76\uDE72\uDE6E\uB7D1\uB7D8\uB7D6\uB7D3"+
- "\uB7DB\uB7D0\uDE75\u0000\uB7D5\u0000\uB54E\u0000"+
- "\uDE7B\u0000\uDE73\u0000\u0000\u0000\u0000\u0000"+
- "\uDE74\u0000\u0000\uE2C1\u0000\uBAB4\u0000\u0000"+
- "\uE2BD\uE2C3\uE2BF\u0000\uBAB6\uE2BE\uE2C2\uE2BA"+
- "\u0000\uE2BC\uBAB5\u0000\u0000\u0000\u0000\uE2C0"+
- "\uE2BB\u0000\uBAB7\u0000\uBAB2\u0000\u0000\uE2C4"+
- "\u0000\uBAB3\uE667\uE664\uE670\uE66A\uE66C\uBCF4"+
- "\uE666\uE66E\u0000\u0000\uE66D\uE66B\u0000\uE671"+
- "\uBCF7\uE668\uE66F\u0000\uBCF5\u0000\u0000\uE663"+
- "\uE665\uBCF6\uE662\uE672\u0000\uE669\u0000\u0000"+
- "\uEA4A\uBF51\u0000\u0000\uEA55\uEA53\uBF4B\uEA49"+
- "\uEA4C\uEA4D\uEA48\uBF55\uBF56\uEA47\uEA56\uEA51"+
- "\uBF4F\uBF4C\uEA50\uEA4E\u0000\u0000\uBF52\uEA52"+
- "\uBF4D\u0000\uBF4E\u0000\uEA4F\uBF50\uEA4B\u0000"+
- "\uEA54\uBF53\uEA57\uEA58\uBF54\u0000\u0000\uC0E7"+
- "\uC0EE\uED5C\uED62\u0000\uED60\uC0EA\uC0E9\uC0E6"+
- "\uED5E\u0000\u0000\u0000\uC0EC\uC0EB\uC0E8\u0000"+
- "\uED61\uED5D\uED5F\u0000\uC0ED\u0000\u0000\u0000"+
- "\uC277\uEFFB\u0000\uC274\uC275\uEFFD\uC276\uEFFA"+
- "\u0000\uEFF9\uF26C\uEFFC\u0000\uF26D\uC37A\uF26B"+
- "\u0000\u0000\uF26A\u0000\uF269\uC37B\u0000\u0000"+
- "\uC46C\u0000\u0000\uF46A\uF46B\u0000\u0000\u0000"+
- "\u0000\uF5DC\uF5DB\uC4EA\u0000\uF5DA\uF6EC\uF6ED"+
- "\u0000\u0000\uF7E6\uF8B1\u0000\u0000\uF8F6\uF9BC"+
- "\uC679\uF9C6\uA4F6\u0000\uAAA6\uAAA7\u0000\u0000"+
- "\uACB8\u0000\u0000\u0000\u0000\uC0EF\uA4F7\u0000"+
- "\uAAA8\uAF52\uB7DD\uA4F8\u0000\uB26E\uBAB8\uC962"+
- "\u0000\uCFB7\uD27D\u0000\uE2C5\u0000\uC0F0\uA4F9"+
- "\uAAA9\uCFB8\uCFB9\uDA66\uB550\u0000\u0000\uDEA4"+
- "\u0000\u0000\uB7DE\uE2C6\u0000\u0000\uBCF8\u0000"+
- "\uC37C\uA4FA\uDA67\uA4FB\u0000\uA6C9\uCA42\uA6C8"+
- "\uA865\uA864\uA863\uCB60\u0000\u0000\u0000\uAAAA"+
- "\u0000\uAAAB\uCD5B\u0000\uCFBA\u0000\uCFBD\uACBA"+
- "\uCFBB\u0000\uACB9\uCFBC\uACBB\u0000\uD2A2\uD2A1"+
- "\uD27E\uAF53\u0000\uD65D\uD65E\uB26F\uD65C\uD65F"+
- "\uB552\uB270\u0000\u0000\uB551\uDA6B\uDA6A\u0000"+
- "\uDA68\uDA69\u0000\uDA6C\uDEA6\uDEA5\uDEA9\u0000"+
- "\uDEA8\uDEA7\uBAB9\uE2C9\u0000\uE2C8\uBABA\uE2C7"+
- "\uE673\u0000\uE674\uBCF9\u0000\uEA59\uEA5A\u0000"+
- "\u0000\uF272\uC37D\uF271\uF270\uF26E\uF26F\uC4EB"+
- "\uF46C\uF6EE\uF8F7\u0000\uA4FC\u0000\uC9A5\uA5C7"+
- "\uC9A6\u0000\u0000\u0000\uCA43\uCA44\u0000\u0000"+
- "\u0000\u0000\uCB66\u0000\u0000\uCB62\u0000\uCB61"+
- "\uAAAC\uCB65\uA867\uCB63\uA866\uCB67\uCB64\u0000"+
- "\u0000\uCD5F\uCFBE\uCD5D\uCD64\u0000\uAAAD\u0000"+
- "\uAAB0\uCD65\uCD61\u0000\uCD62\u0000\uCD5C\uAAAF"+
- "\uCD5E\uAAAE\uCD63\u0000\uCD60\u0000\u0000\uCFC2"+
- "\uACBD\uACBE\u0000\uCFC5\uCFBF\u0000\uCFC4\u0000"+
- "\uCFC0\uACBC\uCFC3\uCFC1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uD2A8\uD2A5\u0000\uD2A7\uAF58"+
- "\uAF57\uAF55\uD2A4\uD2A9\uAF54\uAF56\uD2A6\uD667"+
- "\uD2A3\uD2AA\u0000\u0000\u0000\u0000\u0000\uD662"+
- "\uD666\u0000\uD665\uDA6E\uDA79\u0000\u0000\uD668"+
- "\u0000\uD663\uDA6D\uB274\u0000\u0000\uB273\uD661"+
- "\uD664\uB275\u0000\uB272\uB271\uD660\uD669\u0000"+
- "\u0000\u0000\uDA70\uDA77\u0000\uB554\uDA76\uDA73"+
- "\u0000\uB556\u0000\u0000\u0000\uDA75\u0000\u0000"+
- "\uDA6F\uDA71\uDA74\uDA72\uB555\uDA78\uB553\uB7DF"+
- "\u0000\u0000\uDEAD\uDEAC\uDEAA\u0000\uB7E2\uB7E1"+
- "\uDEAE\u0000\uDEAB\uE2CA\uBABB\uB7E0\u0000\u0000"+
- "\u0000\uDEB0\uDEAF\u0000\uE2CD\uE2CB\uBCFA\u0000"+
- "\uBABC\uE2CC\uE676\u0000\u0000\u0000\u0000\uBCFB"+
- "\uE675\uE67E\uE67D\uE67B\u0000\uE67A\uE677\uE678"+
- "\uE679\uE67C\uE6A1\u0000\u0000\uEA5F\uEA5C\uEA5D"+
- "\uBF57\uEA5B\uEA61\uEA60\uEA5E\u0000\uED64\uED65"+
- "\uC0F1\u0000\uC0F2\uED63\u0000\uC279\uEFFE\uC278"+
- "\uC37E\u0000\uC3A1\uC46D\uF46E\uF46D\uF5DD\uF6EF"+
- "\uC57A\uF7E8\uF7E7\uF7E9\uA5C8\uCFC6\uAF59\uB276"+
- "\uD66A\uA5C9\uC9A7\uA4FD\u0000\u0000\uCA45\u0000"+
- "\u0000\u0000\uCB6C\uCB6A\uCB6B\uCB68\uA868\uCB69"+
- "\u0000\u0000\u0000\u0000\u0000\uCD6D\u0000\uAAB3"+
- "\uCD6B\uCD67\uCD6A\u0000\uCD66\uAAB5\uCD69\u0000"+
- "\uAAB2\uAAB1\u0000\uAAB4\uCD6C\uCD68\u0000\u0000"+
- "\u0000\u0000\uACC2\uACC5\uCFCE\uCFCD\uCFCC\uACBF"+
- "\uCFD5\uCFCB\u0000\uACC1\uD2AF\u0000\uCFD2\uCFD0"+
- "\uACC4\u0000\uCFC8\uCFD3\u0000\uCFCA\uCFD4\uCFD1"+
- "\uCFC9\u0000\uACC0\uCFD6\uCFC7\uACC3\u0000\u0000"+
- "\u0000\u0000\uD2B4\uD2AB\uD2B6\u0000\uD2AE\uD2B9"+
- "\uD2BA\uD2AC\uD2B8\uD2B5\uD2B3\uD2B7\uAF5F\u0000"+
- "\uAF5D\u0000\u0000\uD2B1\u0000\uD2AD\u0000\uD2B0"+
- "\uD2BB\uD2B2\uAF5E\uCFCF\u0000\uAF5A\uAF5C\u0000"+
- "\u0000\u0000\u0000\u0000\uD678\uD66D\uD66B\u0000"+
- "\uD66C\u0000\uD673\u0000\uD674\uD670\uB27B\uD675"+
- "\uD672\uD66F\u0000\uB279\uD66E\uB277\uB27A\uD671"+
- "\uD679\uAF5B\uB278\uD677\uD676\uB27C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uDA7E\u0000"+
- "\u0000\u0000\uDAA1\uB560\u0000\uDAA7\u0000\u0000"+
- "\uDAA9\uDAA2\uB55A\uDAA6\uDAA5\uB55B\uB561\u0000"+
- "\uB562\uDAA8\uB558\uDA7D\uDA7B\uDAA3\uDA7A\uB55F"+
- "\uDA7C\uDAA4\uDAAA\uB559\uB55E\uB55C\uB55D\u0000"+
- "\u0000\u0000\uB557\u0000\u0000\u0000\u0000\uB7E9"+
- "\uDEB7\uB7E8\uDEBB\u0000\uDEB1\u0000\uDEBC\u0000"+
- "\u0000\u0000\uDEB2\uDEB3\u0000\uDEBD\uDEBA\uDEB8"+
- "\uDEB9\uDEB5\uDEB4\u0000\uDEBE\uB7E5\u0000\uDEB6"+
- "\u0000\uB7EA\uB7E4\uB7EB\uB7EC\u0000\uB7E7\uB7E6"+
- "\u0000\u0000\uE2CE\uBABE\uBABD\u0000\u0000\uE2D3"+
- "\u0000\uBCFC\uBABF\u0000\u0000\uBAC1\uE2D4\uB7E3"+
- "\uBAC0\uE2D0\uE2D2\uE2CF\u0000\uE2D1\u0000\u0000"+
- "\u0000\uE6AB\u0000\u0000\uE6AA\uE6A7\uBD40\uEA62"+
- "\uBD41\uE6A6\u0000\uBCFE\u0000\uE6A8\uE6A5\uE6A2"+
- "\uE6A9\uE6A3\uE6A4\uBCFD\u0000\u0000\u0000\u0000"+
- "\uED69\u0000\uEA66\u0000\uEA65\uEA67\u0000\uED66"+
- "\uBF5A\u0000\uEA63\u0000\uBF58\u0000\uBF5C\uBF5B"+
- "\uEA64\uEA68\u0000\uBF59\u0000\uED6D\uC0F5\uC27A"+
- "\uC0F6\uC0F3\uED6A\uED68\u0000\uED6B\u0000\uED6E"+
- "\uC0F4\uED6C\uED67\u0000\u0000\uF042\uF045\uF275"+
- "\uF040\u0000\uF46F\uF046\u0000\uC3A2\uF044\uC27B"+
- "\uF041\uF043\uF047\uF276\u0000\uF274\u0000\u0000"+
- "\u0000\u0000\uC3A3\uF273\u0000\u0000\u0000\uC46E"+
- "\u0000\u0000\u0000\u0000\uC4ED\uF6F1\uC4EC\uF6F3"+
- "\uF6F0\uF6F2\uC5D0\uF8B2\uA5CA\uCD6E\uD2BC\uD2BD"+
- "\uB27D\uDEBF\uBF5D\uC3A4\uC57B\uF8B3\uA5CB\u0000"+
- "\uCD6F\uA260\u0000\u0000\uCFD7\u0000\uCFD8\u0000"+
- "\u0000\u0000\u0000\u0000\uD2BE\uD2BF\uB27E\uB2A1"+
- "\u0000\u0000\u0000\uDAAB\u0000\uDEC2\uDEC1\uDEC0"+
- "\uE2D5\u0000\uE2D6\uE2D7\uBAC2\u0000\u0000\uE6AD"+
- "\uE6AC\u0000\u0000\uEA69\uBF5E\uBF5F\u0000\uED72"+
- "\uED6F\uED70\uED71\uF049\uF048\uC27C\uF277\uF5DE"+
- "\uA5CC\u0000\uACC6\u0000\uB2A2\uDEC3\u0000\uA5CD"+
- "\u0000\uD2C0\uB2A3\u0000\u0000\uB563\uB564\u0000"+
- "\uA5CE\uA5CF\uCA46\uA86A\uA869\uACC7\uCFD9\uDAAC"+
- "\uA5D0\uA5D1\uA5D2\uA5D3\u0000\u0000\u0000\uA86B"+
- "\uA86C\uCB6E\uCB6D\u0000\u0000\uAAB6\uCD72\uCD70"+
- "\uCD71\u0000\u0000\u0000\u0000\u0000\u0000\uCFDA"+
- "\uCFDB\u0000\u0000\uACCB\uACC9\u0000\uACCA\uACC8"+
- "\u0000\u0000\u0000\u0000\uAF60\u0000\u0000\u0000"+
- "\u0000\uAF64\uAF63\uD2C1\uAF62\uAF61\u0000\uD2C2"+
- "\u0000\u0000\uB2A6\uD67B\uD67A\uB2A4\uB2A5\u0000"+
- "\u0000\u0000\uB566\uB565\uDAAE\u0000\u0000\uDAAD"+
- "\uB2A7\u0000\u0000\u0000\u0000\u0000\uB7ED\uDEC5"+
- "\uB7EE\uDEC4\u0000\u0000\u0000\uE2D8\uE6AE\uBD42"+
- "\uEA6A\u0000\u0000\u0000\uED73\u0000\uC3A6\uC3A5"+
- "\u0000\u0000\uC57C\uA5D4\uCD73\u0000\u0000\uB2A8"+
- "\uE2D9\uBAC3\u0000\u0000\uCB6F\uCB70\u0000\u0000"+
- "\uCD74\uAAB8\uAAB9\u0000\u0000\uAAB7\u0000\u0000"+
- "\u0000\u0000\uACCF\uACD0\uACCD\uACCE\u0000\uCFDC"+
- "\u0000\u0000\uCFDD\uACCC\u0000\u0000\u0000\u0000"+
- "\uD2C3\u0000\uAF68\uAF69\u0000\uB2AB\uD2C9\u0000"+
- "\uAF6E\uAF6C\uD2CA\uD2C5\uAF6B\uAF6A\uAF65\uD2C8"+
- "\uD2C7\uD2C4\uAF6D\u0000\uD2C6\uAF66\u0000\uAF67"+
- "\u0000\u0000\uB2AC\uD6A1\uD6A2\uB2AD\uD67C\uD67E"+
- "\uD6A4\uD6A3\uD67D\u0000\uB2A9\uB2AA\u0000\uDAB6"+
- "\uB56B\uB56A\uDAB0\uB568\u0000\uDAB3\uB56C\uDAB4"+
- "\uB56D\uDAB1\uB567\uB569\uDAB5\u0000\uDAB2\uDAAF"+
- "\u0000\u0000\u0000\u0000\u0000\uDED2\u0000\uDEC7"+
- "\uB7F0\uB7F3\uB7F2\uB7F7\uB7F6\uDED3\uDED1\uDECA"+
- "\uDECE\uDECD\uB7F4\uDED0\uDECC\uDED4\uDECB\uB7F5"+
- "\uB7EF\uB7F1\u0000\uDEC9\u0000\u0000\u0000\u0000"+
- "\uE2DB\uBAC7\uE2DF\uBAC6\uE2DC\uBAC5\u0000\uDEC8"+
- "\uDECF\uE2DE\u0000\uBAC8\uE2E0\uE2DD\uE2DA\u0000"+
- "\u0000\uE6B1\uE6B5\uE6B7\uE6B3\uE6B2\uE6B0\uBD45"+
- "\uBD43\uBD48\uBD49\uE6B4\uBD46\uE6AF\uBD47\uBAC4"+
- "\uE6B6\uBD44\u0000\u0000\u0000\uEA6C\u0000\uEA6B"+
- "\uEA73\uEA6D\uEA72\uEA6F\uBF60\uEA71\u0000\u0000"+
- "\uBF61\u0000\uBF62\u0000\uEA70\uEA6E\u0000\u0000"+
- "\u0000\u0000\uC0F8\uED74\u0000\u0000\uC0F7\uED77"+
- "\uED75\uED76\u0000\u0000\uC0F9\u0000\u0000\u0000"+
- "\uF04D\u0000\uC2A1\uF04E\u0000\u0000\uC27D\uF04F"+
- "\uC27E\uF04C\uF050\u0000\uF04A\u0000\u0000\uC3A7"+
- "\uF278\uC3A8\uC46F\u0000\uF04B\uC470\u0000\u0000"+
- "\u0000\uC4EE\uF5DF\u0000\uC57E\uF6F4\uC57D\u0000"+
- "\uF7EA\uC5F5\uC5F6\u0000\u0000\uF9CC\u0000\u0000"+
- "\uACD1\uCFDE\u0000\uB56E\uB56F\uA5D5\uA6CA\uCA47"+
- "\u0000\uCB71\uA86D\u0000\uAABA\u0000\uACD2\uACD3"+
- "\uACD4\uD6A6\uD2CB\uAF6F\u0000\u0000\uB2AE\uD6A5"+
- "\u0000\u0000\uDAB8\uB571\u0000\uDAB7\uB570\u0000"+
- "\u0000\uDED5\uBD4A\uE6BB\uE6B8\uE6B9\uE6BA\u0000"+
- "\u0000\u0000\u0000\u0000\uED78\u0000\uF051\u0000"+
- "\u0000\u0000\uF471\uF470\u0000\uF6F5\uA5D6\uCD75"+
- "\uAF70\u0000\u0000\u0000\uB572\uDED6\u0000\u0000"+
- "\uE2E1\u0000\uBD4B\uEA74\u0000\uF052\uF472\uA5D7"+
- "\u0000\u0000\uAABB\uACD7\uCFDF\uACD8\uACD6\u0000"+
- "\uACD5\uD2CC\uAF71\u0000\u0000\uAF72\uAF73\u0000"+
- "\u0000\u0000\uB2B0\uD6A7\uB2AF\u0000\u0000\u0000"+
- "\u0000\u0000\uDAB9\uB2B1\uB573\uDED7\uB7F8\uB7F9"+
- "\u0000\uBAC9\u0000\uBACA\uBD4C\uBF64\uEA75\uBF63"+
- "\u0000\uED79\uC0FA\u0000\uF053\uF473\uA5D8\uA86E"+
- "\uCD78\uCD77\uAABC\uCD76\uAABD\uCD79\u0000\uCFE5"+
- "\uACDB\uACDA\uCFE7\uCFE6\uACDF\u0000\uACDE\u0000"+
- "\u0000\uACD9\u0000\uCFE1\uCFE2\uCFE3\u0000\uACE0"+
- "\uCFE0\uACDC\uCFE4\uACDD\u0000\u0000\u0000\u0000"+
- "\uD2CF\uD2D3\uD2D1\uD2D0\u0000\uD2D4\u0000\u0000"+
- "\u0000\uD2D5\uD2D6\uD2CE\u0000\uD2CD\u0000\uAF75"+
- "\uAF76\u0000\uD2D7\uD2D2\u0000\uD6B0\u0000\uD2D8"+
- "\uAF77\uAF74\u0000\u0000\u0000\uD6AA\u0000\uD6A9"+
- "\u0000\uD6AB\uD6AC\uD6AE\uD6AD\uD6B2\uB2B5\uB2B2"+
- "\uB2B6\uD6A8\uB2B7\uD6B1\uB2B4\uD6AF\uB2B3\u0000"+
- "\u0000\u0000\u0000\u0000\uDABC\uDABE\uDABA\uDABB"+
- "\u0000\u0000\uDABF\uDAC1\uDAC2\uDABD\uDAC0\uB574"+
- "\u0000\u0000\uDEDB\u0000\uDEE0\uDED8\uDEDC\u0000"+
- "\u0000\uDEE1\uDEDD\uB7FA\uB843\u0000\uB7FD\uDED9"+
- "\uDEDA\uBACE\uB846\uB7FE\u0000\uB844\uB7FC\uDEDF"+
- "\uB845\uDEDE\uB841\uB7FB\uB842\uDEE2\uE2E6\uE2E8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uB840\u0000\u0000\uE2E3\uBACC\uE2E9\uBACD"+
- "\uE2E7\uE2E2\uE2E5\uE2EA\uBACB\uE2E4\u0000\uBD4E"+
- "\uE6BF\uE6BE\u0000\uBD51\uBD4F\uE6BC\uBD4D\uE6BD"+
- "\u0000\uBD50\u0000\u0000\u0000\uEA7D\u0000\uEAA1"+
- "\u0000\uEA7E\uEA76\uEA7A\uEA79\uEA77\uBF66\uBF67"+
- "\uBF65\uEA78\uEA7B\uEA7C\u0000\uBF68\u0000\uC140"+
- "\uEDA3\u0000\uC0FC\uED7B\uC0FE\uC141\u0000\u0000"+
- "\uC0FD\uEDA2\uED7C\uC0FB\uEDA1\uED7A\uED7E\uED7D"+
- "\u0000\u0000\uF055\uC2A4\uC2A5\uC2A2\u0000\uC2A3"+
- "\u0000\u0000\uF054\u0000\uF27B\u0000\u0000\uC3A9"+
- "\u0000\uF279\uF27A\u0000\uF474\uF477\uF475\uF476"+
- "\uF5E0\u0000\u0000\uC4EF\uF7EB\uF8B4\u0000\uC5F7"+
- "\uF8F8\uF8F9\uC666\uA5D9\uACE1\u0000\uDAC3\u0000"+
- "\uDEE3\u0000\uA5DA\uA86F\u0000\uAABE\u0000\uCFE8"+
- "\uCFE9\uAF78\u0000\u0000\uDAC4\uB575\uB847\uC142"+
- "\uEDA4\uF27C\uF478\uA5DB\u0000\u0000\u0000\uCDA1"+
- "\uCD7A\uCD7C\uCD7E\uCD7D\uCD7B\uAABF\u0000\u0000"+
- "\u0000\u0000\uACE2\uCFF2\u0000\uCFED\uCFEA\u0000"+
- "\u0000\uCFF1\u0000\u0000\uACE4\uACE5\uCFF0\uCFEF"+
- "\uCFEE\uCFEB\uCFEC\uCFF3\uACE3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uAF7C\u0000\uAFA4"+
- "\uAFA3\uD2E1\uD2DB\uD2D9\u0000\uAFA1\uD6B9\uAF7A"+
- "\uD2DE\uD2E2\uD2E4\uD2E0\uD2DA\uAFA2\uD2DF\uD2DD"+
- "\uAF79\uD2E5\uAFA5\uD2E3\uAF7D\uD2DC\u0000\uAF7E"+
- "\uAF7B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uB2B9\u0000\uD6BA\u0000\u0000"+
- "\uD6B3\uD6B5\uD6B7\u0000\uD6B8\uD6B6\uB2BA\u0000"+
- "\uD6BB\u0000\uD6B4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uDAC8\uB576\uDAD0\u0000"+
- "\uDAC5\u0000\uDAD1\u0000\uDAC6\uDAC7\u0000\u0000"+
- "\uDACF\uDACE\uDACB\uB2B8\uB577\uDAC9\uDACC\uB578"+
- "\uDACD\uDACA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uDEEE\u0000\uDEF2\uB84E\u0000\uE2F0\uB851"+
- "\uDEF0\u0000\u0000\uDEED\uDEE8\uDEEA\uDEEB\uDEE4"+
- "\u0000\uB84D\u0000\u0000\uB84C\u0000\uB848\uDEE7"+
- "\u0000\uB84F\u0000\uB850\uDEE6\uDEE9\uDEF1\uB84A"+
- "\uB84B\uDEEF\uDEE5\u0000\u0000\u0000\uE2F2\uBAD0"+
- "\uE2F4\uDEEC\uE2F6\uBAD4\uE2F7\uE2F3\u0000\uBAD1"+
- "\uE2EF\uBAD3\uE2EC\uE2F1\uE2F5\uE2EE\u0000\u0000"+
- "\uB849\u0000\uE2EB\uBAD2\uE2ED\u0000\u0000\u0000"+
- "\u0000\u0000\uBD54\uE6C1\uBD58\u0000\uBD56\u0000"+
- "\u0000\uBACF\u0000\uE6C8\uE6C9\uBD53\u0000\u0000"+
- "\uE6C7\uE6CA\uBD55\uBD52\uE6C3\uE6C0\uE6C5\uE6C2"+
- "\uBD59\uE6C4\u0000\u0000\uE6C6\uBD57\u0000\u0000"+
- "\u0000\u0000\uBF6A\uEAA8\u0000\uEAA2\uEAA6\uEAAC"+
- "\uEAAD\uEAA9\uEAAA\uEAA7\u0000\uEAA4\u0000\uBF6C"+
- "\uBF69\uEAA3\uEAA5\u0000\uBF6B\uEAAB\u0000\uC146"+
- "\u0000\u0000\uEDAA\uEDA5\uC145\u0000\u0000\uC143"+
- "\u0000\uEDAC\uC144\uEDA8\uEDA9\uEDA6\uEDAD\uF056"+
- "\u0000\uC147\uEDA7\u0000\uEDAE\uEDAB\u0000\u0000"+
- "\u0000\uF05A\u0000\u0000\uF057\u0000\uC2A6\u0000"+
- "\uF05B\uF05D\uF05C\uF058\uF059\u0000\u0000\uF2A3"+
- "\u0000\uC3AA\u0000\uF27E\uF2A2\uF27D\uF2A4\u0000"+
- "\u0000\uF2A1\u0000\uF47A\uF47D\uF479\uC471\uF47B"+
- "\uF47C\uF47E\uC472\uC474\uC473\uF5E1\u0000\uF5E3"+
- "\u0000\uF5E2\u0000\u0000\u0000\uF6F6\u0000\u0000"+
- "\uF8B5\uF8FA\uA5DC\u0000\u0000\uCB72\uAAC0\uCDA3"+
- "\uAAC1\uAAC2\uCDA2\u0000\uCFF8\uCFF7\uACE6\uACE9"+
- "\uACE8\uACE7\uCFF4\uCFF6\uCFF5\u0000\u0000\uD2E8"+
- "\uAFA7\uD2EC\uD2EB\uD2EA\uD2E6\uAFA6\uAFAA\uAFAD"+
- "\u0000\u0000\uAFAE\uD2E7\uD2E9\uAFAC\uAFAB\uAFA9"+
- "\uAFA8\uD6C2\u0000\uD6C0\uD6BC\uB2BB\u0000\uD6BD"+
- "\uB2BC\uD6BE\uD6BF\uD6C1\u0000\uB2BD\u0000\u0000"+
- "\uDAD5\u0000\uDAD4\uDAD3\uDAD2\u0000\u0000\u0000"+
- "\u0000\uDEF6\uB852\u0000\uDEF3\uDEF5\u0000\uB853"+
- "\u0000\uB854\uDEF4\u0000\u0000\u0000\u0000\u0000"+
- "\uE341\u0000\uE2F9\uE2FA\u0000\uBAD7\uBAD5\uBAD6"+
- "\uE343\u0000\uE342\uE2FE\uE2FD\uE2FC\uE2FB\uE340"+
- "\uE2F8\u0000\uE6CB\uE6D0\uE6CE\u0000\u0000\u0000"+
- "\uE6CD\uE6CC\uE6CF\u0000\uEAAE\u0000\uBF6D\uC148"+
- "\uEDB0\u0000\uC149\uEDAF\uF05F\uF05E\uC2A7\u0000"+
- "\uF2A5\uC3AB\uF4A1\uC5A1\uF6F7\u0000\uF8B7\uF8B6"+
- "\uC9A8\uACEA\uACEB\uD6C3\u0000\uB856\uA5DD\uA872"+
- "\uA871\uA870\u0000\u0000\u0000\uCDA4\u0000\u0000"+
- "\uAAC4\uAAC3\u0000\uACEE\u0000\uCFFA\uCFFD\uCFFB"+
- "\u0000\uACEC\uACED\u0000\u0000\uCFF9\uCFFC\u0000"+
- "\uAFB5\u0000\u0000\u0000\uD2F3\uD2F5\uD2F4\uAFB2"+
- "\uD2EF\u0000\u0000\uAFB0\uAFAF\u0000\uAFB3\uAFB1"+
- "\u0000\uAFB4\uD2F2\uD2ED\uD2EE\uD2F1\uD2F0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uD6C6\uD6C7"+
- "\uD6C5\u0000\uD6C4\uB2BE\u0000\u0000\u0000\u0000"+
- "\uB57D\u0000\uDAD6\uDAD8\uDADA\uB57C\u0000\u0000"+
- "\uB57A\u0000\uDAD7\uB57B\uDAD9\uB579\u0000\u0000"+
- "\uDF41\uDEF7\uDEFA\uDEFE\uB85A\uDEFC\u0000\uDEFB"+
- "\uDEF8\uDEF9\uB858\uDF40\uB857\u0000\uB85C\uB85B"+
- "\uB859\u0000\uDEFD\u0000\u0000\u0000\uE349\u0000"+
- "\uE348\u0000\u0000\uE344\u0000\u0000\uBAD8\uE347"+
- "\uE346\uBAD9\u0000\u0000\u0000\u0000\u0000\uBD5E"+
- "\u0000\uE6D2\u0000\uBD5F\uBD5B\uBD5D\u0000\uBD5A"+
- "\uBD5C\u0000\u0000\u0000\uEAAF\u0000\uBF70\uEAB1"+
- "\uEAB0\u0000\uE345\uBF72\uBF71\uBF6E\uBF6F\u0000"+
- "\u0000\u0000\u0000\u0000\uEDB5\u0000\uEDB3\uC14A"+
- "\uEDB4\u0000\uEDB6\uEDB2\uEDB1\u0000\u0000\uF060"+
- "\uC2AA\uC2A8\uC2A9\u0000\u0000\u0000\u0000\uF2A6"+
- "\uF2A7\uC3AD\u0000\uC3AC\uF4A3\uF4A4\uF4A2\u0000"+
- "\uF6F8\uF6F9\u0000\u0000\uA5DE\uCA48\uA873\u0000"+
- "\uCDA5\uAAC6\uAAC5\uCDA6\u0000\u0000\uD040\uACEF"+
- "\uCFFE\uACF0\u0000\u0000\uAFB6\uD2F8\uD2F6\uD2FC"+
- "\uAFB7\uD2F7\uD2FB\uD2F9\uD2FA\u0000\u0000\uD6C8"+
- "\uD6CA\u0000\uB2BF\u0000\uD6C9\uB2C0\uB5A2\uB5A1"+
- "\uB57E\uDADB\u0000\u0000\u0000\u0000\uDF44\uB85D"+
- "\uB85E\u0000\uDF43\uDF42\u0000\u0000\u0000\u0000"+
- "\uE34A\uBADB\uBADA\uE34B\uE34C\u0000\uBD61\uBD60"+
- "\u0000\uEAB5\uE6D3\uE6D5\uE6D4\uEAB4\uEAB2\uEAB6"+
- "\uEAB3\u0000\uBF73\u0000\u0000\u0000\uEDB7\uC14B"+
- "\uEDB8\uEDB9\u0000\u0000\uC2AB\uC2AC\u0000\uC475"+
- "\u0000\u0000\uC5D1\uA5DF\u0000\u0000\u0000\u0000"+
- "\u0000\uD041\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD2FD\uAFB8\u0000\u0000\u0000\u0000\u0000\uB3BA"+
- "\uB3B9\u0000\u0000\uB5A4\uDADD\uB5A3\uDADC\u0000"+
- "\u0000\u0000\u0000\uDF45\u0000\uBADC\uE34D\uBADD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC476\uF4A5"+
- "\u0000\uA6CB\uAAC7\uCDA7\u0000\uACF2\u0000\uACF1"+
- "\uD042\uD043\u0000\u0000\uD340\uD342\uAFB9\u0000"+
- "\uD344\uD347\uD345\u0000\u0000\u0000\uD346\uD343"+
- "\uD2FE\uAFBA\uD348\uD341\u0000\u0000\u0000\u0000"+
- "\uD6D3\uB2C6\uD6DC\uB2C3\u0000\uD6D5\uB2C7\u0000"+
- "\uB2C1\u0000\uD6D0\uD6DD\uD6D1\uD6CE\uB2C5\u0000"+
- "\uB2C2\u0000\uD6D4\uD6D7\uB2C4\uD6D8\uB2C8\uD6D9"+
- "\uD6CF\uD6D6\uD6DA\uD6D2\uD6CD\uD6CB\u0000\u0000"+
- "\uD6DB\u0000\u0000\uDADF\u0000\u0000\u0000\u0000"+
- "\uDAE4\u0000\u0000\u0000\uDAE0\uDAE6\uB5A7\uD6CC"+
- "\uDAE1\uB5A5\uDADE\uB5AC\uDAE2\uB5AB\uDAE3\uB5AD"+
- "\uB5A8\uB5AE\uB5A9\u0000\uB5AA\u0000\uB5A6\u0000"+
- "\uDAE5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uB861\uDF50\u0000\uDF53\uDF47\uDF4C\uDF46\uB863"+
- "\u0000\uDF4A\u0000\u0000\u0000\uDF48\uB862\u0000"+
- "\uDF4F\uDF4E\uDF4B\uDF4D\uDF49\uBAE1\uDF52\uB85F"+
- "\uDF51\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uE35D\u0000\uBAE8\uE358\u0000\uBAE7"+
- "\uE34E\u0000\uE350\uBAE0\uE355\uE354\uE357\uBAE5"+
- "\uE352\uE351\u0000\u0000\uBAE4\uBADF\uE353\uBAE2"+
- "\uE359\uE35B\u0000\uE356\uE34F\uBAE3\u0000\u0000"+
- "\uBD69\uBADE\u0000\u0000\uE35C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uE6D9\uBD62\u0000\uE6DB"+
- "\u0000\uBD63\u0000\u0000\uBD65\uE6DE\u0000\uE6D6"+
- "\uBAE6\uE6DC\u0000\u0000\u0000\u0000\uE6D8\u0000"+
- "\uB860\uBD68\u0000\u0000\uBD64\u0000\uBD66\uBD67"+
- "\u0000\uBF76\uE6DD\uE6D7\uBD6A\u0000\uE6DA\u0000"+
- "\u0000\u0000\u0000\u0000\uEAC0\uEABB\u0000\u0000"+
- "\uEAC5\uBF74\uEABD\uBF78\uEAC3\uEABA\uEAB7\uEAC6"+
- "\uC151\uBF79\uEAC2\uEAB8\uBF77\uEABC\uBF7B\uEAB9"+
- "\uEABE\uBF7A\uEAC1\uEAC4\u0000\u0000\u0000\u0000"+
- "\uEDCB\uEDCC\uEDBC\uEDC3\uEDC1\u0000\u0000\uC14F"+
- "\uEDC8\uEABF\u0000\uEDBF\u0000\uEDC9\uC14E\uEDBE"+
- "\uEDBD\uEDC7\uEDC4\uEDC6\u0000\uEDBA\uEDCA\uC14C"+
- "\u0000\uEDC5\uEDCE\uEDC2\uC150\uC14D\uEDC0\uEDBB"+
- "\uEDCD\uBF75\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF063\u0000\u0000\uF061\uF067\uC2B0\uF065"+
- "\uF064\uC2B2\uF06A\uC2B1\u0000\uF06B\uF068\uC2AE"+
- "\uF069\uF062\uC2AF\uC2AD\uF2AB\uF066\u0000\u0000"+
- "\uF06C\u0000\u0000\uF2A8\u0000\u0000\u0000\uC3B2"+
- "\uC3B0\uF2AA\u0000\uF2AC\uF2A9\uC3B1\uC3AE\uC3AF"+
- "\uC3B3\u0000\u0000\uC478\u0000\uF4AA\u0000\uF4A9"+
- "\uF4A7\uF4A6\uF4A8\u0000\uC477\uC479\u0000\u0000"+
- "\uC4F0\u0000\u0000\uF5E5\uF5E4\u0000\u0000\uF6FA"+
- "\u0000\uF6FC\uF6FE\uF6FD\uF6FB\u0000\u0000\uC5A3"+
- "\uC5A2\u0000\u0000\uC5D3\uC5D2\uC5D4\uF7ED\uF7EC"+
- "\u0000\uF8FB\uF8B8\uF8FC\uC658\u0000\uC659\uF96D"+
- "\u0000\u0000\uC67E\uA6CC\u0000\uCDA8\u0000\u0000"+
- "\uD045\uD046\uD044\u0000\u0000\uACF3\u0000\uD047"+
- "\uD048\uD049\u0000\u0000\uD349\uD34F\u0000\u0000"+
- "\uD34D\uAFBB\uD34B\u0000\uD34C\uD34E\u0000\u0000"+
- "\u0000\uD34A\uB2C9\u0000\uD6DE\uB2CB\uD6E0\uB2CA"+
- "\uD6DF\u0000\u0000\u0000\u0000\u0000\uDAE8\uB5AF"+
- "\u0000\uDAEA\uDAE7\uD6E1\u0000\uB5B0\u0000\u0000"+
- "\uDAE9\u0000\u0000\u0000\u0000\u0000\u0000\uDF56"+
- "\u0000\uB864\uDF54\uB865\uDF55\uB866\u0000\u0000"+
- "\u0000\uBAE9\uE361\uE35E\uE360\uBAEA\uBAEB\uE35F"+
- "\u0000\u0000\u0000\u0000\u0000\uE6DF\u0000\u0000"+
- "\uE6E0\u0000\uBD6B\uE6E2\uE6E1\u0000\uA261\u0000"+
- "\uEACA\uEACB\uEAC7\u0000\uEAC8\uBF7C\uBF7D\uEAC9"+
- "\u0000\uC157\u0000\u0000\uC153\uC158\uC154\uC156"+
- "\uC152\u0000\uC155\u0000\u0000\u0000\u0000\uC2B3"+
- "\uEDCF\u0000\uF2AE\u0000\uF2AD\u0000\uF4AB\uC47A"+
- "\uC47B\uF741\uF5E6\u0000\uF740\u0000\uF8FD\uF9A4"+
- "\uA6CD\u0000\u0000\uA874\u0000\uCDA9\uAAC8\u0000"+
- "\uACF6\uD04C\uACF4\uD04A\uACF9\uACF5\uACFA\uACF8"+
- "\uD04B\uACF7\uAFBF\uAFBE\uD35A\uAFC7\uD353\uD359"+
- "\uAFC3\uD352\uD358\uD356\uAFC2\uAFC4\uD355\uAFBD"+
- "\uD354\uAFC8\uAFC5\uAFC9\uAFC6\uD351\uD350\uD357"+
- "\uAFC0\uAFBC\uAFC1\u0000\u0000\u0000\u0000\u0000"+
- "\uD6F0\uD6E9\u0000\uB5B5\uD6E8\u0000\uB2CF\uB2D6"+
- "\uB2D3\uB2D9\uB2D8\uB2D4\u0000\uD6E2\uD6E5\u0000"+
- "\uD6E4\uB2D0\uD6E6\uD6EF\uB2D1\uD6E3\uD6EC\uD6ED"+
- "\uB2D2\uD6EA\uB2D7\uB2CD\uB2D5\uD6E7\uB2CC\uD6EB"+
- "\u0000\u0000\uD6EE\u0000\u0000\u0000\uDAFB\uDAF2"+
- "\uB5B2\uDAF9\uDAF6\uDAEE\uDAF7\uB5B4\uDAEF\u0000"+
- "\uDAEB\u0000\u0000\uB86C\uDAF4\u0000\uB5B1\uDAFA"+
- "\u0000\uB5B8\uB5BA\uDAED\u0000\u0000\uB5B9\uDAF0"+
- "\uB5B3\uDAF8\uDAF1\uDAF5\u0000\uDAF3\uB5B6\uDAEC"+
- "\uB5BB\uB2CE\uB5B7\uB5BC\u0000\u0000\u0000\u0000"+
- "\u0000\uB868\uDF5D\uDF5F\uDF61\uDF65\u0000\uDF5B"+
- "\uDF59\uB86A\u0000\uDF60\uDF64\uDF5C\uDF58\u0000"+
- "\uDF57\u0000\u0000\u0000\uDF62\uDF5A\uDF5E\uB86B"+
- "\u0000\uB869\uDF66\uB867\uDF63\u0000\uE372\u0000"+
- "\u0000\u0000\u0000\u0000\uBAEE\uE36A\uBD78\uE374"+
- "\uBAF1\uE378\uBAF7\uE365\u0000\u0000\uE375\uE362"+
- "\u0000\uE377\uE366\u0000\uBAFE\uBAFB\uE376\uE370"+
- "\uBAED\uBAF5\uBAF4\u0000\uBAF3\uBAF9\u0000\uE363"+
- "\uBAFA\uE371\uBAF6\uBAEC\uE373\uBAEF\uBAF0\uBAF8"+
- "\uE368\uE367\uE364\u0000\uE36C\uE369\uE36D\uBAFD"+
- "\u0000\uE379\uBAF2\uE36E\uE36F\u0000\uE36B\u0000"+
- "\u0000\u0000\uBAFC\u0000\u0000\u0000\u0000\uE6E7"+
- "\uBD70\uBD79\uBD75\uE6E4\u0000\uBD72\uBD76\uE6F0"+
- "\uBD6C\uE6E8\u0000\uBD74\u0000\u0000\uE6EB\uE6E6"+
- "\uBD73\uBD77\uE6E5\u0000\uBD71\u0000\uE6EF\uBD6E"+
- "\uE6EE\uE6ED\uBD7A\uE572\uBD6D\u0000\uE6EC\uE6E3"+
- "\u0000\uBD7B\uE6EA\uBD6F\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uE6E9\u0000\u0000\u0000\u0000"+
- "\uBFA2\uBFA7\uBF7E\uEAD8\uEACF\uEADB\uEAD3\uEAD9"+
- "\uBFA8\uBFA1\uEACC\uEAD2\uEADC\uEAD5\uEADA\uEACE"+
- "\u0000\u0000\uEAD6\uBFA3\uEAD4\uBFA6\uBFA5\uEAD0"+
- "\uEAD1\uEACD\uEAD7\uBFA4\uEADE\uEADD\u0000\u0000"+
- "\u0000\uEDDA\uEDD6\uC15F\u0000\uEDD0\uC159\uC169"+
- "\uEDDC\uC161\uC15D\uEDD3\uC164\uC167\uEDDE\uC15C"+
- "\uEDD5\uC165\uEDE0\uEDDD\uEDD1\uC160\uC15A\uC168"+
- "\uEDD8\uC163\uEDD2\uC15E\uEDDF\uC162\uC15B\uEDD9"+
- "\uC166\uEDD7\u0000\u0000\uEDDB\u0000\u0000\u0000"+
- "\uF06E\uF074\uC2B9\uF077\uC2B4\uC2B5\uF06F\uF076"+
- "\uF071\uC2BA\uC2B7\u0000\uF06D\u0000\uC2B6\uF073"+
- "\uF075\uC2B8\uF072\uF070\u0000\u0000\u0000\u0000"+
- "\uF2B8\uC3B7\uC3B8\uC3B4\u0000\uC3B5\u0000\uF2B4"+
- "\uF2B2\u0000\uF2B6\uC3BA\uF2B7\uF2B0\uF2AF\uF2B3"+
- "\uF2B1\uC3B6\uF2B5\uF4AC\uC47E\uC47D\uF4AD\u0000"+
- "\uF4AF\uF4AE\uC4A1\u0000\u0000\u0000\uF5EB\uF5E8"+
- "\uF5E9\u0000\uF5E7\uF5EA\uC4F2\uF5EC\u0000\uC4F1"+
- "\u0000\uF742\u0000\uC5D5\uC5D7\uF7EE\uC5D6\uF8B9"+
- "\uF940\uF942\uF8FE\uF941\uC66C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex4=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA6CE\u0000"+
- "\uACFB\uD26F\uAFCA\u0000\u0000\uB2DA\uDAFC\uDAFD"+
- "\u0000\u0000\u0000\uEADF\uC16A\uEDE1\u0000\u0000"+
- "\uC2BB\u0000\uF2BA\uF2B9\uC4A2\uF5ED\u0000\uF743"+
- "\uC5F8\uCA49\u0000\u0000\uAAC9\uA875\u0000\u0000"+
- "\uD04D\u0000\u0000\uD360\uD35B\uD35F\uD35D\uAFCB"+
- "\uD35E\uD35C\u0000\uD6F1\u0000\uDAFE\uDB40\uDF69"+
- "\uDF6A\uB86E\uB86F\uDF68\uDF6B\uDF67\uB86D\u0000"+
- "\uBB40\u0000\uB870\uE37A\u0000\uBD7C\uE6F1\uBD7D"+
- "\u0000\uBFA9\uEAE2\uEAE0\uEAE1\uEDE4\uEDE3\uEDE2"+
- "\u0000\u0000\u0000\uF2BB\u0000\uC3B9\uF2BC\uF744"+
- "\uC5F9\uF8BA\uA6CF\uAACB\uAACA\uD04F\uACFC\u0000"+
- "\u0000\uD04E\uD362\u0000\uAFCC\uD6F2\uD361\u0000"+
- "\u0000\u0000\uB2DC\uD6F5\uD6F3\uD6F4\uB2DB\u0000"+
- "\uDB42\uDB43\uDB41\u0000\uB873\uDF6D\uDF6C\uDF6E"+
- "\uB872\uB871\u0000\u0000\uE6F2\uE6F4\u0000\uBD7E"+
- "\uE6F3\uEAE3\uBFAA\uF079\u0000\uF078\uC3BB\uF2BD"+
- "\uC3BD\uC3BC\uF4B0\uF5EE\uC4F3\uA6D0\uD050\uACFD"+
- "\uD365\uAFCE\uD364\uD363\u0000\uAFCD\u0000\uD6FB"+
- "\u0000\uD6FD\uD6F6\uD6F7\uB2DD\uD6F8\uB2DE\uD6FC"+
- "\uD6F9\uD6FA\uB2DF\u0000\uB5BE\uB5BF\u0000\uDB44"+
- "\u0000\u0000\u0000\uDF6F\uDF70\u0000\uE37E\uBB43"+
- "\uBB41\uBB42\uE37B\uE37C\u0000\uE37D\uE6F9\u0000"+
- "\uE6FA\uBDA1\uE6F7\uE6F6\uE6F8\uE6F5\uBFAD\uEAE4"+
- "\uBFAB\uBFAC\uEDE6\uC16B\uEDE5\uEFA8\u0000\uF07A"+
- "\uF07B\uC2BC\u0000\uC2BD\uC16C\uF2BE\uF2BF\uF4B1"+
- "\uC4A3\uA6D1\u0000\uA6D2\uACFE\uAACC\uAFCF\uD051"+
- "\u0000\u0000\u0000\uB5C0\uA6D3\uAD41\uD052\uD053"+
- "\uAD40\uAD42\uA6D4\u0000\uD054\uAFD1\uD366\uAFD3"+
- "\uAFD0\uAFD2\u0000\uD741\uB2E0\u0000\uD740\uD6FE"+
- "\u0000\uDF71\u0000\u0000\uE3A1\u0000\uBDA2\u0000"+
- "\uBFAE\uEAE6\uEAE5\u0000\uEDE7\u0000\u0000\u0000"+
- "\uF5EF\u0000\u0000\uA6D5\uCB73\uCDAA\uAD43\uD055"+
- "\u0000\uD368\u0000\u0000\u0000\uAFD4\uD367\uAFD5"+
- "\u0000\u0000\u0000\uD743\u0000\u0000\uB2E2\uD742"+
- "\uD744\u0000\uB2E1\u0000\u0000\u0000\u0000\uDB46"+
- "\uDB47\uDB45\uB5C1\u0000\u0000\u0000\uB874\u0000"+
- "\uB875\u0000\uBB45\u0000\uE3A3\uE3A2\uBB44\u0000"+
- "\u0000\u0000\u0000\u0000\uE6FB\u0000\u0000\uE6FC"+
- "\u0000\u0000\u0000\u0000\uEAE7\u0000\u0000\uC170"+
- "\uC16F\uC16D\uC16E\uC171\u0000\uF07C\uC2BF\uC2BE"+
- "\uF2C0\uF4B2\u0000\u0000\u0000\uC5A5\uC5A4\uA6D6"+
- "\u0000\u0000\uD1FB\u0000\uB877\uB5C2\uB876\uBB46"+
- "\u0000\uA6D7\uC9A9\uA6D8\uA6D9\u0000\u0000\uCDAB"+
- "\uCB76\u0000\uCB77\uA877\u0000\uCB74\uA876\u0000"+
- "\uA879\uCB75\uA87B\uA87A\uCB78\uA878\u0000\u0000"+
- "\u0000\uAAD1\uAACF\uCDAD\u0000\uAACE\u0000\u0000"+
- "\u0000\uAAD3\uAAD5\uAAD2\u0000\uCDB0\uCDAC\uAAD6"+
- "\u0000\uAAD0\uA87C\u0000\uAAD4\uCDAF\u0000\u0000"+
- "\uCDAE\u0000\uAACD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uD05B\uAD47\uAD48\uD05D\u0000\uD057"+
- "\uD05A\uD063\uD061\u0000\uAD49\uD067\uAD4C\uD064"+
- "\uD05C\uD059\u0000\u0000\uDB49\uD062\uAD44\uD065"+
- "\uD056\uD05F\uAD46\uAD4B\uD060\uAD4F\uAD4D\u0000"+
- "\uD058\uAD4A\u0000\uD05E\uAD4E\uAD45\uD066\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uAFDA\u0000\uAFE3"+
- "\uAFD8\uAFD6\uD36A\uAFDE\uAFDB\uD36C\u0000\u0000"+
- "\uAFDD\uD36B\uD369\uD36E\uAFE2\uAFE0\uDB48\u0000"+
- "\uD36F\uD36D\uAFD7\u0000\u0000\uAFD9\uAFDC\u0000"+
- "\uAFDF\u0000\uAFE1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD74E\uB2E4\u0000"+
- "\uD745\uD747\u0000\uD748\u0000\uD750\uD74C\uD74A"+
- "\u0000\uD74D\uD751\uB2E5\uB2E9\uD746\u0000\uD74F"+
- "\u0000\uB2E7\u0000\uB2E6\uD74B\uD749\u0000\uB2E3"+
- "\uB2E8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uB5C8\uDB51\u0000\u0000\uDB4F\uB5CA\u0000"+
- "\u0000\u0000\u0000\uDB4A\uDFA1\u0000\uB5C9\uDB4E"+
- "\u0000\u0000\uDB4B\uB5C5\uB5CB\uDB50\uB5C7\uDB4D"+
- "\uBB47\uB5C6\uDB4C\uB5CC\uB5C4\uB5C3\u0000\u0000"+
- "\u0000\u0000\u0000\uDF77\uDF75\u0000\uDF7B\u0000"+
- "\uDF73\uDFA2\uDF78\u0000\uDF72\uB87B\uB8A3\uDF7D"+
- "\u0000\uDF76\u0000\uB87E\u0000\u0000\uB87C\uDF7E"+
- "\uB879\uB878\uDF79\uB87D\uB5CD\u0000\uDF7C\uDF74"+
- "\uB87A\uB8A1\uB8A2\u0000\u0000\u0000\u0000\uBB4C"+
- "\uBB48\u0000\uBB4D\uE3A6\u0000\u0000\uE3A5\uE3A7"+
- "\uBB4A\uE3A4\uBB4B\uE3AA\uE3A9\uE3A8\u0000\uBB49"+
- "\u0000\u0000\u0000\u0000\u0000\uE741\u0000\uE744"+
- "\uBDA8\uE743\uBDA7\uBDA3\uBDA4\uBDA5\uE740\uE6FE"+
- "\uBDA6\u0000\uE742\uE6FD\u0000\u0000\uEAE9\uEAF3"+
- "\uBFB1\uBFB0\u0000\uEAED\uEAEF\u0000\uEAEA\u0000"+
- "\uEAEE\uEAE8\uEAF1\uBFAF\uEAF0\uEAEC\u0000\uEAF2"+
- "\u0000\uEAEB\uC174\uEDE8\uEDEE\uC178\uC17A\uC177"+
- "\uC176\u0000\uC175\uC173\uEDE9\uEDEC\uC172\uEDED"+
- "\u0000\uC179\uEDEB\u0000\uEDEA\uC2C0\u0000\uC2C1"+
- "\uF0A1\uF07D\uF07E\u0000\u0000\uF2C2\u0000\uF2C1"+
- "\uC3BE\uF4B4\uC4A4\uF4B3\u0000\uF5F0\uF745\uC5A6"+
- "\uF943\uF944\uC5D8\uA6DA\u0000\uAAD7\uDB52\uBB4E"+
- "\uC17B\uEDEF\uA6DB\u0000\uAFE5\uAFE4\uDB53\u0000"+
- "\u0000\u0000\uEAF4\uA6DC\uAD50\u0000\u0000\uDB54"+
- "\uDB55\uDB56\uBB4F\uBFB2\uA6DD\u0000\uAAD8\uD068"+
- "\uAFE6\uD370\uB2EA\u0000\uDB57\uB8A4\u0000\uBB50"+
- "\uBFB3\uC17C\uC2C2\uF4B5\uA6DE\uAAD9\u0000\u0000"+
- "\uAFE7\uD752\uB5CE\u0000\uBB51\uE3AB\uE745\u0000"+
- "\u0000\u0000\u0000\uA6DF\uB5CF\uDFA3\uBB52\uA6E0"+
- "\uCDB1\uD069\uAD51\u0000\u0000\uD372\u0000\u0000"+
- "\uAFEA\u0000\uAFE8\uAFE9\uAFEB\u0000\u0000\uD371"+
- "\u0000\u0000\uD757\uD754\uD756\uB2EB\uB2ED\uB2EC"+
- "\uD753\uB2EE\uD755\u0000\uDB58\uDB59\u0000\uDB5A"+
- "\uDFA6\u0000\uDFA7\u0000\uDFA5\uDFA8\u0000\uB8A5"+
- "\u0000\uDFA4\u0000\uBB53\u0000\u0000\uE74A\uE746"+
- "\uE749\uE74B\uE748\uE747\u0000\uEAF5\uEAF6\uEAF7"+
- "\uBFB4\uBFB5\uEDF1\uEDF0\uEDF2\u0000\uF0A3\uF0A2"+
- "\u0000\uF2C4\u0000\uF2C5\uF2C3\u0000\uC4A5\u0000"+
- "\uF4B6\uF4B7\u0000\uF746\uF7EF\uF8BB\uA6E1\uA87D"+
- "\u0000\uC17D\uA6E2\u0000\uD758\uDB5B\u0000\uC641"+
- "\uCA4A\u0000\u0000\u0000\uCA4B\uCA4D\uA6E3\uCA4E"+
- "\uCA4C\u0000\u0000\uCBA2\uCBA3\uCB7B\u0000\u0000"+
- "\u0000\u0000\uCBA1\uA8A1\u0000\uA8A2\uCB7C\uCB7A"+
- "\uCB79\uCB7D\uA87E\uCB7E\uD06A\u0000\u0000\u0000"+
- "\uCDB6\uAADC\uCDB5\uCDB7\u0000\uAADB\uCDBC\uAADF"+
- "\uCDB2\uCDC0\uCDC6\uAAE6\uCDC3\uAAE3\u0000\uCDB9"+
- "\uCDBF\uCDC1\u0000\uCDB4\uAAE2\uAADD\uCDBA\uAAE4"+
- "\uAAE7\uAAE1\u0000\uAADA\uCDBE\uCDB8\uCDC5\uAAE9"+
- "\uAAE5\uAAE0\uCDBD\uAFEC\uCDBB\uAADE\uAAE8\u0000"+
- "\uCDB3\u0000\uCDC2\uCDC4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uAD62\uAD5C\uAD64\uAD61\uD071\uD074\uAD5D"+
- "\u0000\uD06B\u0000\uAD56\uAD60\u0000\uAD63\uAD65"+
- "\uD0A2\uD077\u0000\uAD55\uD0A1\uAD59\uAD57\uAD52"+
- "\uD06F\u0000\uD07E\uD073\uD076\uD0A5\u0000\uAD66"+
- "\uD07D\uAD5E\uD078\uD0A4\uD075\uD079\uD07C\u0000"+
- "\u0000\uD06D\uD0A3\uD07B\u0000\u0000\uD06C\u0000"+
- "\uD070\uAD5F\uAD5A\uAD53\uAD58\uAD54\uAD67\uD06E"+
- "\uD3A5\uAD5B\u0000\u0000\uD07A\uCE41\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uD3A8\uAFFA"+
- "\u0000\uD376\u0000\uD3A3\uD37D\u0000\uD3B2\u0000"+
- "\uD3AA\u0000\uD37E\u0000\uD3A9\uD378\uD37C\uD3B5"+
- "\uAFFD\uD3AD\uD3A4\uAFED\uD3B3\uD374\u0000\uD3AC"+
- "\u0000\uAFFC\uAFF7\uD373\uAFF5\uAFF4\uAFF9\uD3AB"+
- "\uAFF1\uAFF8\uD072\uDB5C\uD3A6\u0000\u0000\uD37A"+
- "\uAFFB\uD37B\uD3A1\uAFFE\uD375\uD3AF\u0000\uD3AE"+
- "\uD3B6\uAFF3\uAFF0\uD3B4\uD3B0\uD3A7\uD3A2\uAFF6"+
- "\uAFF2\uD377\uAFEE\uD3B1\uAFEF\u0000\uD379\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uD75E\uD760\uD765\uD779\uB2FC"+
- "\uB2F2\u0000\uD75D\uB2FD\uB2FE\uD768\uD76F\uD775"+
- "\u0000\uD762\u0000\uD769\u0000\u0000\uB340\uD777"+
- "\uD772\uB2FA\uB2F8\uD76E\uD76A\uD75C\uB2EF\uD761"+
- "\uD759\u0000\uB2F7\uB2F9\uD766\uD763\uB2F4\uD773"+
- "\uB2F1\uD764\uD77A\uD76C\u0000\uD76B\uB2F0\u0000"+
- "\uB2FB\u0000\uB2F3\uD75A\uD75F\uD770\uD776\uB341"+
- "\uD75B\uD767\uD76D\uB2F6\u0000\u0000\uD778\uD771"+
- "\uD774\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uB2F5\u0000\uDB6C"+
- "\uDB60\uB5D7\uDB7D\uDBA7\uDBAA\uB5D5\uDB68\uDBA3"+
- "\uDB69\uDB77\uB5E2\uDB73\uB5DF\u0000\uDB74\uDB5D"+
- "\u0000\uDBA4\u0000\u0000\uB5E8\uDBA1\uDB75\uDBAC"+
- "\uDB70\uDFC8\u0000\uDBAF\uB5E6\uDB6E\uDB7A\uB5E9"+
- "\uB5D4\uDB72\uDBAD\uDB6B\uDB64\uDB6F\u0000\uDB63"+
- "\uDB61\uB5D0\uDBA5\uDB6A\uDBA8\u0000\uDBA9\uB5D8"+
- "\uB5DD\uB5D9\uB5E1\uDB7E\uB5DA\uDB76\uDB66\u0000"+
- "\uB5D2\uDB5E\uDBA2\uDBAB\uDB65\uB5E0\uDBB0\uDB71"+
- "\u0000\uDB6D\u0000\uB5D1\uB5E5\u0000\uDB7C\uB5E7"+
- "\u0000\uDB78\uB5DC\uB5D6\uB5DE\uB5D3\uB5E4\uDB79"+
- "\uDB67\uDB7B\uDB62\uDBA6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uDBAE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uDB5F\u0000\u0000\u0000\u0000"+
- "\u0000\uDFC7\u0000\uDFDD\uB855\uDFCC\u0000\uDFCA"+
- "\uDFB5\uB8A9\uDFC5\uDFD9\uDFC1\uB8B1\uDFD8\uDFBF"+
- "\uB5E3\uDFCF\uDFC0\uDFD6\uB8B0\uB8A8\u0000\uDFAA"+
- "\uDFB2\u0000\uDFCB\uDFC3\uDFDC\uDFC6\uB8B6\uDFD7"+
- "\u0000\uB8AD\u0000\uDFC9\uDFD1\uDFB6\uDFD0\u0000"+
- "\uDFE1\uDFB1\uDFD2\u0000\uDFDF\u0000\uDFAB\uB5DB"+
- "\u0000\uDFB9\uDFB8\uB8AF\u0000\uDFBC\uDFBE\uDFCD"+
- "\uDFDE\uB8B2\u0000\uB8B3\u0000\uDFB0\uB8AB\uDFB4"+
- "\uDFDA\uB8B4\u0000\uB8AC\uB8AE\uB8B5\uDFE0\uDFD3"+
- "\uDFCE\u0000\u0000\uDFBB\uDFBA\uB8AA\uDFAC\uB8A7"+
- "\uDFC4\uDFAD\uDFC2\u0000\u0000\uDFB7\uDFDB\u0000"+
- "\u0000\u0000\uB8A6\u0000\u0000\u0000\uDFB3\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uDFAF\uDFD5\uDFAE"+
- "\uBB60\uE3D3\u0000\u0000\uE3C2\u0000\u0000\uE3AC"+
- "\uE3CA\uBB58\uE3BB\uE3C5\uBB5B\uE3BE\uBB59\uE3AF"+
- "\uE3CD\uE3AE\uE3C1\u0000\uE3AD\u0000\u0000\uE3BF"+
- "\uE3C8\uE3C6\uE3BA\uE3B5\uE3B3\u0000\uE3B4\uE3C7"+
- "\uE3D2\uE3BC\uBB5A\u0000\uE3B7\u0000\uE3CB\u0000"+
- "\uBB5D\uE3B6\uE3B0\uE3C0\uBB61\u0000\u0000\uBB55"+
- "\uBB5E\uE3B8\uE3B2\u0000\uBB57\uDFD4\uBB56\uE3C3"+
- "\u0000\uBB54\uBB63\uBB5C\uE3C4\uE3B9\uE3B1\uE3CC"+
- "\uE3BD\uBB62\uE3D0\uBB5F\uE3CF\u0000\uE3C9\uE3CE"+
- "\u0000\u0000\u0000\uE3D1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uE773"+
- "\uE774\uE767\uE766\uE762\uBDB4\u0000\uBDAC\uE776"+
- "\uE775\uDFA9\uE75F\uE763\uE75D\u0000\uE770\uE761"+
- "\u0000\uE777\uE75A\uE758\uE764\uE76E\uE769\uBDB6"+
- "\uE74F\u0000\uE76D\u0000\u0000\u0000\uBDB7\uDFBD"+
- "\uE75B\uE752\uE755\uE77B\uE75C\uE753\uE751\uE74E"+
- "\u0000\uBDB0\uE765\uBDAF\uBDB3\uE760\uE768\uBDA9"+
- "\uE778\uE77C\uBDAB\u0000\uE757\uE76B\uE76F\uE754"+
- "\uE779\uBDB2\u0000\uBDB1\uE74C\uBDB5\uE772\uE756"+
- "\uE76A\uE750\uE75E\uE759\uBDAD\uBDAE\uE76C\uE77D"+
- "\uE77A\uE771\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uE74D\u0000\uBDAA\uEB49\u0000"+
- "\uEB40\uEB43\u0000\uBFBB\uEB45\uEAF9\uEB41\uEB47"+
- "\uBFB8\uBFBC\uBFB6\u0000\u0000\uEAFB\uEB4C\u0000"+
- "\u0000\uEB46\u0000\uEAFC\uEB55\uEB4F\uEAF8\uEE46"+
- "\uEAFE\uBFB7\u0000\uEB4A\u0000\uEB54\uBFBF\u0000"+
- "\uEB51\uEAFD\uEB44\uEB48\uEB42\uEB56\uEB53\uEB50"+
- "\uBFB9\uBFBA\uBFBE\uEAFA\uEB57\uBFBD\uEB4D\u0000"+
- "\u0000\uEB4B\u0000\u0000\u0000\uEB4E\uEE53\uEE40"+
- "\uEE45\uEE52\uEE44\uEDFB\uEE41\u0000\uC1A2\u0000"+
- "\uEDF4\uEE4D\uEE4F\uEDF3\uC1A1\uEE51\uEE49\uC1A8"+
- "\uEE50\uEE42\uC1AA\uEDF9\uEB52\uEE4A\uEE47\uEDF5"+
- "\uEE55\uC1A4\u0000\u0000\uC1A5\uEDF7\uEE48\u0000"+
- "\uEE54\uEE4B\uEDFD\uC1A7\uC1A3\uEE4C\uEDFE\uEE56"+
- "\uEDF8\uEE43\uEE4E\uEDFA\uEDFC\u0000\uC2CB\uEDF6"+
- "\uC1A9\uC2C4\uC17E\u0000\u0000\u0000\u0000\uC1A6"+
- "\uC2C8\uF0B3\u0000\uF0A9\uF0A4\uF0AA\uF0B4\uF0B8"+
- "\uF0B7\uC2CA\uC2C9\u0000\u0000\uF0AB\uF0B9\uF0AE"+
- "\uF0A6\u0000\uF0A8\uF0A7\uF0AD\uF0B2\uF0A5\uF0AC"+
- "\uF0B1\uC2C7\u0000\uF0AF\u0000\uC2C5\uF0B0\uC2C3"+
- "\uC2C6\uF2D5\uF0B5\u0000\u0000\uC3C2\u0000\uF2CD"+
- "\uF2D1\uF2C9\uF2CC\u0000\uF2D4\uC3C0\uF2D9\uF2D2"+
- "\u0000\uF2CA\uF2DA\uF2D3\uC3C3\uC3C4\uF2D7\u0000"+
- "\uF2CB\uC3BF\uC3C1\uF2C6\uF2CE\uF2C8\u0000\uF2D8"+
- "\uF2D6\uF2C7\uF2CF\u0000\u0000\u0000\uF4BE\uC3C5"+
- "\uF2D0\uC4A7\uC4A9\uC4A6\u0000\uF4C3\uF4BB\uF4B9"+
- "\uF4BD\uF4BA\u0000\u0000\uF4BF\uF4C1\uC4AA\uC4AC"+
- "\u0000\uF4C0\uC4AD\uC4AB\uF4C2\u0000\u0000\u0000"+
- "\u0000\uC4A8\u0000\u0000\u0000\u0000\u0000\uC4F4"+
- "\uF5F1\uF5F7\uC4F6\uF4BC\uF5F6\u0000\uF5FD\uF5F4"+
- "\uF5FB\uF5FA\uF4B8\uF5F5\uF0B6\uF5FE\uF5F3\uF5F8"+
- "\u0000\uF5FC\uF5F2\u0000\uF74A\uC4F5\uF5F9\u0000"+
- "\u0000\uF7F4\uF74B\uF749\uF747\uF748\uF74C\u0000"+
- "\uC5D9\uF7F2\uF7F0\uF7F5\uF7F3\u0000\uF7F6\uC5DA"+
- "\uF7F1\u0000\u0000\uF8BC\u0000\u0000\uF945\uF946"+
- "\uF947\u0000\u0000\uF9C7\uF9BD\uCA4F\uAAEA\u0000"+
- "\uAD68\u0000\uD3B8\uD3B7\uB040\uB342\uD77C\u0000"+
- "\u0000\uD77B\u0000\uB5EA\uB8B8\u0000\uB8B7\uB8B9"+
- "\u0000\uE3D4\uE77E\uEB58\uEB5A\uEB59\u0000\uC1AB"+
- "\uEE57\uF0BA\uF9A5\uA6E4\u0000\uCDC9\uCDCA\uCDC8"+
- "\uCDC7\uAAEB\u0000\uD0A9\uD0A7\u0000\u0000\uD0A6"+
- "\u0000\uAD69\uAD6B\uAD6A\uD0A8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uD3C4\uD3C1\uD3BF"+
- "\u0000\u0000\uB041\uD3C2\uB046\uD3BC\uD3CB\u0000"+
- "\uD3CD\uD3BD\u0000\uB043\uD3CE\uD3C9\uD3BB\uD3C0"+
- "\uD3CA\uD3C6\uD3C3\u0000\uB048\uD3CC\uD3BE\u0000"+
- "\u0000\uD3C7\uD3B9\uB047\uB044\uD3C5\u0000\uD3C8"+
- "\uD3BA\uB045\uB042\u0000\u0000\u0000\u0000\uB34C"+
- "\uD7A5\uB34B\u0000\uD7A8\uD7AB\uB348\uB346\uD77E"+
- "\uD7A9\uD7A7\uD7A4\uD7AC\uD7AD\uD7AF\uD7B0\uD77D"+
- "\uB345\uD7A2\uD7A1\uD7AE\uB347\uD7A3\uB349\uB344"+
- "\uD7A6\uB34D\u0000\uB34A\uD7AA\u0000\u0000\u0000"+
- "\uB5F1\uDBBF\u0000\uDBB4\uB5EE\u0000\uDFE7\uDBBD"+
- "\uDBB1\uB5EC\uDBB6\uB5EF\uDBBA\uDBB8\uB5F2\uB5EB"+
- "\u0000\u0000\uDBB2\uDBB5\uB5F0\u0000\uDBB3\u0000"+
- "\uDBBE\uDBBC\uDBB7\uDBB9\uDBBB\uB5ED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uDFE8\uDFEE\uDFE4"+
- "\uDFEA\uB8BA\uDFE6\uB8C0\u0000\u0000\uB8BF\u0000"+
- "\uB8BE\uDFED\uB8C1\uB8C2\uDFE3\uDFF0\uB8C3\uB8BD"+
- "\uB8BC\uDFEC\uB8C4\uDFE2\uDFE5\uDFEF\uDFEB\u0000"+
- "\u0000\uE3F4\uE3E9\uB8BB\u0000\u0000\u0000\u0000"+
- "\uBB6A\uE3DD\uE3F2\uE3DE\uBB65\u0000\uE3DB\u0000"+
- "\uE3E4\uE3DC\uBB67\uE3D6\uE3F1\uBB68\uE3EE\uE3EF"+
- "\uE3D7\uBB6D\uE3E6\u0000\uE3E0\uE3E7\uE3DA\u0000"+
- "\uE3F3\uE3EB\uE3E5\uE3D5\uBB69\uE3EC\u0000\uBB6C"+
- "\uE3F0\u0000\uE3EA\uBB66\uE3E8\u0000\uE3E2\uBB64"+
- "\uE3D9\uE3E1\uE3ED\uE3DF\u0000\u0000\uE3E3\u0000"+
- "\u0000\u0000\u0000\u0000\uBDC1\uDFE9\uE7B2\uE7BB"+
- "\uE7B1\uE7AD\uE7AA\uBDC2\uE7A8\uBB6B\uE7A1\uBDC0"+
- "\uE7A7\uBDBF\uE7AC\uE7A9\uE7B9\uE7B4\uE7AE\uE7B3"+
- "\uBDBB\uE7AB\uE7BE\uE7A2\uE7A3\uE7BA\uBDBC\uE7BF"+
- "\uBDBE\uE7C0\uE7B0\uE3D8\uE7B6\uE7AF\uE7B8\uE7B5"+
- "\u0000\u0000\u0000\uE7A6\uBDB9\uE7BD\uBDBA\uE7A4"+
- "\uBDBD\uEB64\uE7B7\uE7BC\u0000\u0000\u0000\u0000"+
- "\u0000\uEB61\uBDB8\uBFC0\uEB6B\uEB67\u0000\uEB65"+
- "\uEB60\uEB6F\u0000\u0000\u0000\uBFC4\u0000\uEB5C"+
- "\uEB68\uEB69\uEB5F\uEB5E\uEB6C\u0000\uEB62\uEB5D"+
- "\uEB63\u0000\uEB6E\uEB5B\uEB6D\uEB6A\uBFC2\uBFC1"+
- "\u0000\u0000\uBFC3\uEB66\uF0CB\u0000\u0000\u0000"+
- "\u0000\u0000\uEE59\uC1B1\uEE5D\uEE5A\uEE61\uEE67"+
- "\uEE5C\u0000\uEE70\uC1AE\uEE6A\uEE5F\uEE6B\uEE66"+
- "\uEE6D\uEE5E\uC1B3\uC1B2\uEE60\uEE6E\uEE58\uEE6C"+
- "\uC1AC\u0000\uEE64\uEE63\uEE68\uEE5B\uC1B0\u0000"+
- "\uC1B4\uEE62\uEE69\uC1B5\uEE65\u0000\u0000\u0000"+
- "\u0000\uC1AD\uC1AF\uF0C7\uF0C5\u0000\u0000\uF0CC"+
- "\uF0C9\uF0CD\u0000\uF0BE\uF0C6\uF0D1\uEE6F\uF0C2"+
- "\uC2CF\uE7A5\uF0BD\uF0CA\uF0C4\uF0C1\uF0BC\uF0BB"+
- "\uF0D0\u0000\uF0C0\uF0BF\uC2CD\uF0C8\u0000\uC2CC"+
- "\u0000\u0000\uC2CE\uF0C3\uF0CF\u0000\uF2DE\uF2DF"+
- "\u0000\uC3C9\uF2DC\uC3C6\uF2E4\u0000\uC3CA\uF2E6"+
- "\uF2DB\uF0CE\uF2E8\uF2DD\u0000\uC3C7\uF2E3\u0000"+
- "\uF2E5\uF2E0\uF2E7\uF2E2\uF2E1\uC3C8\u0000\u0000"+
- "\uF4C5\uF4C6\u0000\uF4C8\uC4AE\uC4AF\uF4C9\uF4C7"+
- "\u0000\uF4C4\u0000\uF642\uF645\uF641\u0000\uC4FA"+
- "\uF643\uC4F9\uC4F8\uC4F7\uF644\uF751\uF74F\u0000"+
- "\uF74E\uF640\uF750\uF646\uF74D\u0000\uF7F9\uF7D7"+
- "\uF7F7\uC5DB\uF7F8\uF7FA\u0000\uF8BF\uC5FA\uF8BE"+
- "\uF8BD\uC5FB\u0000\uC65A\uF96E\uF9A7\uF9A6\uF9A8"+
- "\uA6E5\uD0AA\u0000\uD3CF\uD3D0\u0000\u0000\u0000"+
- "\uDBC0\u0000\uF647\uF8C0\uA6E6\uAD6C\uD0AB\u0000"+
- "\u0000\u0000\uD7B1\uB34E\u0000\uDBC2\uDBC1\uB5F3"+
- "\u0000\uB8C5\uE7C1\uBDC3\u0000\uBDC4\u0000\u0000"+
- "\u0000\uBFC5\uC5FC\uA6E7\u0000\u0000\u0000\uD0AC"+
- "\uAAED\uD0AE\uD0AD\uAD6D\u0000\uD3D1\u0000\uD3D8"+
- "\uB049\uD3D6\uD3D4\u0000\uD3DB\uD3D2\uD3D3\uB04A"+
- "\u0000\uB04E\u0000\u0000\uD3DC\uB04D\uD3DA\uD3D7"+
- "\uD3D5\uB04B\uB04C\uD3D9\u0000\u0000\u0000\u0000"+
- "\uB350\uD7B2\u0000\uB355\uD7C2\uB354\uD7C4\u0000"+
- "\u0000\uD7B8\uB352\uD7C3\u0000\uD7B3\uB353\uD7BF"+
- "\uD7BB\uD7BD\uD7B7\uD7BE\u0000\u0000\uB34F\uD7BA"+
- "\u0000\uD7B9\uD7B5\u0000\uD7C0\u0000\u0000\uD7BC"+
- "\uD7B4\u0000\uD7B6\uB351\uD7C1\u0000\u0000\u0000"+
- "\u0000\uB5F6\uDBCD\u0000\u0000\u0000\uDBC9\uDBCB"+
- "\uDBC6\uDBC5\uDBC3\u0000\uDBCA\uDBCC\uDBC8\u0000"+
- "\uDBC7\uB5F4\uB5F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uDBCF\uB8CD\uDFF2\uDFF8\uDFF3\uDFF4\u0000"+
- "\uDFF9\u0000\uB8CF\u0000\uB8C7\uB8CE\uDFF1\uDBC4"+
- "\uB8CA\uB8C8\uDFF7\uDFF6\uB8C9\uB8CB\uDFF5\uB8C6"+
- "\u0000\uB8CC\u0000\u0000\u0000\u0000\u0000\uE3F6"+
- "\uBB74\u0000\u0000\uE442\uE441\u0000\uE3FB\uBB76"+
- "\uE440\uE3F7\uE3F8\uBB6E\uBB70\u0000\uE3FD\uE3F5"+
- "\uBB72\uBB71\uE3F9\uE3FE\uE3FC\uBB73\uE3FA\u0000"+
- "\u0000\uDBCE\uBB6F\u0000\u0000\uE7C2\uE7C9\uBDC6"+
- "\u0000\uE7CD\uBDCA\uE7C5\uE7C3\u0000\uE7CC\u0000"+
- "\uBDC5\uE7CB\uBDC7\uBDC8\uE7C4\uBDC9\uE7CA\uE7C6"+
- "\uE7C7\uE7C8\uBB75\u0000\u0000\u0000\uEB70\uEB7C"+
- "\u0000\uBFCA\uEB77\uEB79\u0000\uBFC8\uEB71\uEB75"+
- "\u0000\uEB78\uBFC6\uBFC9\uEB7B\uEB73\uEB74\uEB7A"+
- "\uEB72\uEB76\uBFC7\uEE72\u0000\uEE71\uC1B7\uEE77"+
- "\uC1B9\u0000\u0000\uC1B6\uEE73\uC1BA\uEE74\u0000"+
- "\u0000\uEE75\uEE78\u0000\uC1B8\u0000\uF0D6\u0000"+
- "\u0000\uF0D9\u0000\uF0D3\uF0D5\u0000\u0000\uF0D4"+
- "\uF0D7\uF0D8\uEE76\uF0D2\u0000\u0000\uC3CD\uF2EC"+
- "\uF2EF\uF2F1\uF2EA\uF2EB\uF2EE\uF2F0\uC3CE\uC3CC"+
- "\uC3CB\uF2ED\uF2E9\uF4CA\uC4B0\u0000\uF4CB\u0000"+
- "\u0000\uF649\uC4FB\uF64B\uC4FC\uF648\uF64A\uC5A8"+
- "\u0000\uF752\uC5A7\uF7FD\uF7FC\u0000\uF7FB\u0000"+
- "\u0000\uF948\uF949\uF94B\uF94A\u0000\uCA50\uA6E8"+
- "\u0000\uAD6E\uD7C5\uB5F7\u0000\uDFFA\uC2D0\u0000"+
- "\uF2F2\u0000\u0000\uA8A3\u0000\u0000\u0000\uB357"+
- "\u0000\u0000\u0000\uB356\u0000\uDBD0\uB5F8\uDBD2"+
- "\uDBD1\u0000\u0000\uDFFB\uB8D0\uE443\uE446\uE445"+
- "\u0000\uE444\uE7CE\uE7D0\uE7CF\u0000\uBFCC\u0000"+
- "\u0000\u0000\uBFCB\u0000\uC1BB\uEE79\uEE7B\uEE7A"+
- "\u0000\u0000\uC2D1\u0000\u0000\u0000\uF2F4\uF2F3"+
- "\u0000\uF4CC\uC4B1\u0000\u0000\uC4FD\uF754\uF753"+
- "\uC65B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA8A4\uD0AF\uAD6F\uD7C8\uD7C6\u0000"+
- "\u0000\uD7C7\uDBD4\uDBD5\uE043\uDBD3\u0000\uDFFC"+
- "\uE041\uE040\uE042\uB8D1\uDFFE\uDFFD\uE044\u0000"+
- "\uE449\uE447\u0000\uE448\uE7D3\uE7D1\u0000\u0000"+
- "\uE7D2\uEB7D\uEE7C\uEE7D\uC2D2\u0000\uF2F5\uF4CD"+
- "\uC4B2\u0000\uF64C\uF755\uC5A9\u0000\uF7FE\uF94C"+
- "\uA8A5\u0000\uAD71\uAD72\uD0B0\u0000\u0000\uD0B1"+
- "\uAD70\u0000\uB054\u0000\uB052\u0000\uB051\uB058"+
- "\uB050\uB059\uD3DD\uB056\u0000\uB053\uB057\uB055"+
- "\uB04F\u0000\u0000\uB35F\u0000\uB359\uD7CC\uB35E"+
- "\u0000\u0000\uB360\uB35A\u0000\uB35B\u0000\uD7CA"+
- "\u0000\u0000\uB358\u0000\uD7CB\uB35D\u0000\u0000"+
- "\uD7C9\uB35C\u0000\u0000\uB644\u0000\uB646\u0000"+
- "\u0000\uDBD8\uB645\uB5F9\uB5FD\u0000\uB8E4\uE049"+
- "\uDBDA\uB5FE\u0000\u0000\uDBDD\uDBDE\uB643\u0000"+
- "\uDBE0\u0000\uDBE2\u0000\uDBE3\uDBD7\uDBD6\uDBE4"+
- "\uB642\uDBE1\uDBDF\u0000\uB640\uB5FB\uB647\uDBDB"+
- "\uDBDC\uDBD9\u0000\uB641\u0000\u0000\uB5FC\u0000"+
- "\uB5FA\uE048\uB8DF\uB8DA\u0000\u0000\uB8D5\u0000"+
- "\uB8E5\uB8D6\u0000\uB8D2\uB8E1\uB8DE\uB8E0\u0000"+
- "\uB8D7\uB8DC\uB8D3\uB8D4\uE050\uE04D\uE045\uE04A"+
- "\u0000\uB8E2\uE051\uB8E3\uB8D9\u0000\u0000\uE047"+
- "\u0000\uE04F\uE04B\uE04E\uE04C\uB8DD\uE046\uB8D8"+
- "\u0000\u0000\u0000\uE44C\uBB78\uBB7B\u0000\uE44E"+
- "\u0000\uBBA5\uE44D\uBB7D\u0000\uBDCF\uE44F\u0000"+
- "\uBBA4\uE44B\uBBA6\u0000\u0000\u0000\uBB79\u0000"+
- "\uB8DB\uBB7C\u0000\uBB7A\uBB7E\uBBA2\uBB77\uBBA7"+
- "\uBBA3\u0000\uBBA1\uE44A\u0000\u0000\u0000\u0000"+
- "\uBDD6\u0000\uBDD2\u0000\u0000\u0000\uBDD9\u0000"+
- "\uE7D6\uBDDA\uE7E2\uE7DB\uBDCB\uE7E3\uE7DD\uBDD5"+
- "\uE7DE\u0000\uBDD4\uE7E1\uBDCE\uE7DF\uE7D5\uBDCD"+
- "\uEBAA\uBDD3\u0000\uBDD0\u0000\uBDD8\u0000\uE7D4"+
- "\u0000\uE7D8\uBDCC\uE7D7\uE7D9\uE7DA\uBDD7\uE7DC"+
- "\uE7E0\uE7E4\u0000\uBDDB\uBFD2\uEBA5\uEBAB\uEBA8"+
- "\uEB7E\uEBAC\uEBA1\u0000\uEBA7\u0000\uBFCD\uBFD3"+
- "\uEBAD\u0000\u0000\uBFCF\u0000\uBFD9\uBFD4\uEBAF"+
- "\uEBA9\uBFD0\uEBA2\uBFDA\uEBA3\uEBA4\uBFDB\uBFD8"+
- "\uBDD1\u0000\uBFCE\uEBB0\uBFDC\u0000\uBFD5\uEBAE"+
- "\uBFD1\uBFD6\uBFD7\u0000\uC1C3\uEEA4\uEEAD\uEEAA"+
- "\uEEAC\u0000\uC1C0\uEEA5\u0000\uEEAB\uC1BC\uEEA7"+
- "\uC1C4\uEEA3\uEEA8\uEEAF\uEBA6\uEEA9\uEEA2\uC1BD"+
- "\uEEA1\uC1BE\uEEB0\uC1BF\uEEAE\uC1C2\uEE7E\u0000"+
- "\uC1C1\u0000\uEEA6\uF0DC\uF0EA\uF0E5\uF0E7\uF0DB"+
- "\uC2D3\u0000\uF0DA\uC2D6\uC2D5\u0000\uF0E9\uF0E1"+
- "\uF0DE\uF0E4\u0000\uF0DD\u0000\uF0DF\uF0E8\uF0E6"+
- "\u0000\uC2D4\uF0ED\uF0EB\uF0E2\uF0EC\uF0E3\u0000"+
- "\uF2F9\uC3CF\uF341\u0000\u0000\uF64F\uC3D6\uF0E0"+
- "\uF2F7\uC3D2\uF2F8\uF2FD\u0000\u0000\uC3D4\uC3D5"+
- "\uF2F6\uF340\uF342\uF2FA\uF2FC\uF2FE\uF2FB\uF343"+
- "\uC3D1\uC3D7\uC3D3\u0000\uC3D0\uF4D0\u0000\uC4B7"+
- "\uF4CE\u0000\u0000\uF4D2\u0000\uF4D3\uC4B5\uF4D4"+
- "\uF4D1\u0000\uF4CF\uC4B8\uC4B4\uF4D5\u0000\uC4B6"+
- "\uC4B3\u0000\u0000\u0000\uC4FE\u0000\u0000\uC540"+
- "\uF64E\uF64D\uF650\uF651\u0000\uC541\uF756\uF75B"+
- "\uC5AA\u0000\uF758\u0000\uF757\uF75A\uF759\u0000"+
- "\uF843\u0000\uC5DC\uF842\uF840\u0000\uF841\u0000"+
- "\u0000\u0000\uC5FE\uC5FD\uF8C1\uF8C2\uC640\u0000"+
- "\uF94D\uF94E\uC667\u0000\uC66D\u0000\uF9A9\uF9C8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA8A6"+
- "\u0000\uD7CD\u0000\uD7CE\uE052\uE450\uE7E5\uC1C6"+
- "\u0000\uC1C5\uF0EE\uF344\u0000\uF844\uA8A7\uD3DE"+
- "\uB05A\uB361\uE054\uE053\uBDDC\uE7E6\uBDDD\uEEB1"+
- "\uC2D7\u0000\u0000\u0000\uC676\uA8A8\uCDCB\uD3DF"+
- "\u0000\u0000\uB362\u0000\uD7CF\uD7D0\u0000\uDBE5"+
- "\u0000\uB648\uB8E6\u0000\uE056\uE055\uE057\u0000"+
- "\uE451\uE452\uBBA8\uBFDD\uBDDE\uBFDE\u0000\uEEB5"+
- "\uEEB2\uEEB4\uEEB3\uC1C7\u0000\uF0EF\uF346\uF345"+
- "\uCBA4\uB05C\uB05B\uD3E0\u0000\uD7D1\u0000\u0000"+
- "\uDBE7\uDBE6\uB649\u0000\uE059\uE05A\uE058\u0000"+
- "\u0000\uB8E8\uB8E7\u0000\uBBAA\uBBA9\u0000\uE7E7"+
- "\uEBB3\uEBB1\uEBB2\uBFDF\uEEB7\uEEB6\u0000\uF0F2"+
- "\uF0F1\uF0F0\uF347\u0000\uF9AA\uA8A9\uAD73\u0000"+
- "\uAD74\uB05D\uB05E\uD3E2\uD3E1\uD7D2\u0000\uB368"+
- "\uB366\uB363\uB367\uB365\uB364\u0000\u0000\uB64A"+
- "\uDBEA\u0000\uB8ED\uB64C\uB651\uDBEC\uB653\uB652"+
- "\uB655\uDBEB\uDBE8\uB64F\uB64B\uB64D\uDBE9\uB654"+
- "\uB650\uB64E\uB8EF\uB8EE\uB8EC\uB8F0\u0000\uB8EA"+
- "\uB8EB\u0000\uB8E9\u0000\uE05B\u0000\u0000\uE454"+
- "\u0000\uBBAC\uBBAD\uBBAB\u0000\uE453\u0000\uE455"+
- "\u0000\uE7EA\uE7EC\u0000\uBDE7\uE7ED\uBDE0\uE7E9"+
- "\uBDDF\uBDE9\uBDE5\uBDE6\uBDE2\uE7E8\uBDE1\uE7EE"+
- "\uE7EB\u0000\uBDE8\u0000\uBDE3\uBDE4\uEBB5\u0000"+
- "\uEBB7\uEBB6\u0000\uEBB8\uBFE0\uEBB4\u0000\u0000"+
- "\uC1CB\uEEB8\uC1C8\uC1CC\uC1CA\uC1C9\uF0F3\u0000"+
- "\uF0F6\u0000\uF0F5\u0000\uF0F4\uC2D8\uF348\uF349"+
- "\uC3D8\uF34A\uC3D9\u0000\u0000\uC4BA\u0000\uC4B9"+
- "\uF652\u0000\u0000\uC542\uF653\uF75C\uC5AB\uC5AC"+
- "\u0000\uF845\u0000\uC642\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA8AA\u0000\uB36A\uB369"+
- "\uE05C\uE05D\u0000\uBBAE\uEBB9\uBDEA\uEBBA\uEEB9"+
- "\uA8AB\u0000\uD0B2\uAD76\uAD75\u0000\uD3E3\uB05F"+
- "\uD3E4\uD7D5\u0000\uD7D4\u0000\uD7D3\u0000\u0000"+
- "\uDBEE\uB658\u0000\u0000\uDBED\uB657\u0000\u0000"+
- "\u0000\uDBEF\uB656\u0000\uE05F\uE062\uE060\uE061"+
- "\uE065\uE05E\uE066\uE063\uE064\uBBB0\uE456\u0000"+
- "\u0000\uBBAF\u0000\uE7F2\uE7F0\u0000\u0000\uBDEB"+
- "\uE7EF\uE7F1\u0000\uBDEC\u0000\uEBBB\u0000\uEBBC"+
- "\uC1CD\u0000\uF34C\uF34E\uF34B\uF34D\uF4D6\uF654"+
- "\u0000\u0000\uF96F\uA8AC\uAD77\uD3E5\uD3E7\uD3E6"+
- "\u0000\uD7D8\uB36C\u0000\uD7D6\u0000\uB36B\uD7D9"+
- "\u0000\uD7DA\uD7D7\u0000\u0000\uDBFB\uB660\uDBF3"+
- "\uDBF9\u0000\u0000\uB65B\uB65E\uDBF2\uB659\uDBF6"+
- "\uE06C\uB65D\u0000\uDBF1\u0000\uDBF7\uDBF4\uDBFA"+
- "\uDBF0\uDBF8\uB65C\uB65F\uDBF5\uB65A\u0000\uB8F2"+
- "\uE068\uB8F1\uE06F\uE06E\uB8F8\u0000\uB8F9\uE070"+
- "\uB8F3\uE06D\uB8F7\uE072\uE069\u0000\uE06B\uB8F4"+
- "\uE067\uE06A\uE071\uB8F5\uE073\u0000\u0000\u0000"+
- "\u0000\u0000\uB8F6\u0000\uBBB1\uE45B\uE461\uE459"+
- "\uE462\u0000\uE458\uE45D\uE463\uE460\uE45F\uE45E"+
- "\u0000\uE457\uE45C\u0000\u0000\uE45A\u0000\uBDF1"+
- "\uBDEE\uE7FB\uE841\uE843\uE840\uE7F8\uE7FA\uE845"+
- "\uE842\uE7FC\uE846\uE7F9\uE844\uBDEF\uBDF5\uBDF3"+
- "\uE7F3\uBDF4\uBDF0\uE7F4\uE7F6\uE7F5\uE7FD\uE7FE"+
- "\u0000\uBDF2\u0000\uBDED\u0000\u0000\uE7F7\u0000"+
- "\uEBC6\uBFE2\u0000\uEBBD\uBFE3\uBFE6\uEBC2\u0000"+
- "\uEBBF\uBFE5\u0000\u0000\uEBC3\uEBC4\uEBBE\uEBC7"+
- "\uEBC0\uEBC5\uBFE4\u0000\uBFE1\uEBC1\u0000\uEEBF"+
- "\uC1D0\uC1CE\uC1D1\uC1CF\uEEBE\uEEBB\uEEBA\u0000"+
- "\uEEBD\u0000\u0000\uEEBC\uF145\uC2DE\uF0FB\uF0FA"+
- "\u0000\uC2D9\uF141\uF140\uF0F7\uF143\uF0FC\uC2DD"+
- "\uF0F9\uF142\uF0F8\uC2DA\uC2DC\uF0FD\uC2DB\uF0FE"+
- "\u0000\uF144\uF352\u0000\uC3DE\uF34F\u0000\uF353"+
- "\u0000\u0000\uC3DB\uF351\uC3E0\u0000\uC3DD\u0000"+
- "\uF350\u0000\uC3DF\uF354\uC3DA\u0000\u0000\u0000"+
- "\u0000\uC4BC\uC4BE\u0000\uF4D9\uC4BD\uF4D7\uC3DC"+
- "\uF4D8\uC4BB\uC543\uC545\uF656\uC544\uF655\u0000"+
- "\uF761\uC5AD\uF760\uC5AE\uF75E\uF75D\uF762\uF763"+
- "\uF846\u0000\uF75F\u0000\u0000\uF8C6\uF8C3\uF8C4"+
- "\uF8C5\uC65C\u0000\uF951\uF950\uF94F\uF970\u0000"+
- "\uF9BE\uF9AB\uC66E\uA8AD\uB060\u0000\u0000\u0000"+
- "\u0000\u0000\uB8FA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uBDF6\u0000\u0000\uEBC8\u0000\u0000"+
- "\uC2DF\u0000\uF355\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF9AC\uA8AE\uAAEE\uAD79\uAD78\u0000\uB063"+
- "\u0000\uD3E8\uB061\uD3E9\uB062\u0000\u0000\uD7DF"+
- "\uD7DB\u0000\u0000\uB36D\uD7DE\uD7DD\uD7DC\uB36E"+
- "\uD7E0\uD7E1\u0000\u0000\u0000\uDC43\uDC41\uDC45"+
- "\uDC46\uDC4C\u0000\uDC48\uDC4A\u0000\uDC42\uDBFC"+
- "\u0000\uDC49\u0000\u0000\uDC4B\uDC44\uDC47\uDBFD"+
- "\uB662\uDC40\uDBFE\uB661\uB663\u0000\uB8FD\uE075";
-
- private final static String innerIndex5=
- "\uE077\uE076\uE07B\uB8FB\u0000\uE078\uE074\uE079"+
- "\uE07A\uB8FC\uB8FE\uE07C\u0000\uE467\uE466\u0000"+
- "\uE464\uE465\uBBB3\uBBB5\uBBB2\uBBB4\uE84D\uE84E"+
- "\uE849\u0000\uE84A\uBDF8\uBDFD\uBDF7\uBDFE\uBDF9"+
- "\uE84B\u0000\u0000\uE84C\uE848\uBE40\uBDFB\u0000"+
- "\u0000\uBDFA\uBDFC\u0000\uE847\u0000\uEBCA\uBFE8"+
- "\u0000\u0000\uEBCC\uBFEA\uEBCF\uEBCB\uEBC9\uEBCE"+
- "\uBFE9\uEBCD\u0000\uBFE7\u0000\u0000\uC1D3\uC1D6"+
- "\uEEC1\u0000\uC1D4\uEEC0\uC1D2\uC1D5\uF146\uF147"+
- "\uF148\uC2E0\u0000\uF149\u0000\uC2E1\uC3E2\uF358"+
- "\uF359\uF357\uF356\uF35A\uC3E1\uF4DD\uF4DB\uF4DC"+
- "\uF4DE\uF4DA\uF4DF\uF658\u0000\uF659\uF657\uC546"+
- "\uF764\uC5AF\uF765\uF848\uF847\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA8AF\uB664\u0000\u0000\uB940"+
- "\u0000\u0000\u0000\uBBB6\u0000\u0000\uBFEC\u0000"+
- "\uBFEB\u0000\u0000\u0000\u0000\uC3E3\uC47C\uC547"+
- "\uA8B0\uB064\uB941\u0000\uF35B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uCBA6"+
- "\u0000\u0000\uA8B1\u0000\uA8B4\uA8B3\uA8B2\u0000"+
- "\u0000\uCBA5\u0000\uCDCD\u0000\uCDCF\uAAEF\u0000"+
- "\u0000\uAAF1\uCDCC\uCDCE\uAAF0\uCDD1\uCDD0\uCDD2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uD0B6\uD0B4\uAD7C\uD0B3\uADA3\uAD7E\uAD7B\u0000"+
- "\uADA4\u0000\uAD7D\uADA2\u0000\uADA1\uD0B5\u0000"+
- "\uAD7A\u0000\u0000\u0000\uB06A\uD3EB\uD3F1\uB067"+
- "\uB06E\u0000\uB069\uD3EE\uD3F0\uB06C\uD3EA\uD3ED"+
- "\uB068\uB065\uD3EC\uB06B\uD3EF\uB06D\uB066\u0000"+
- "\u0000\u0000\u0000\uD7E3\uD7E6\uB370\u0000\uB37A"+
- "\uB376\uD7E4\u0000\u0000\uB37E\uB377\uB37C\uB372"+
- "\u0000\uB36F\uB371\uB37D\uD7E5\uB375\uB378\uB374"+
- "\uB379\uD7E7\uB37B\uB373\uD7E2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uDC4D\uB665\uDC4F"+
- "\u0000\uB667\uB669\u0000\uDC4E\uB666\uB66A\u0000"+
- "\uB668\u0000\u0000\u0000\uB947\uE0A3\uB94F\uE07E"+
- "\u0000\uB950\uB945\u0000\uE0A1\u0000\u0000\uB94A"+
- "\u0000\uE0A2\uB943\uB942\u0000\uB94D\uB94C\uB94B"+
- "\uB949\uB94E\uE07D\uB944\uB946\uB948\u0000\u0000"+
- "\uBBB8\uBBBB\u0000\uBBBF\uBBB9\uBBBE\uBBBC\u0000"+
- "\uBBB7\u0000\uBBBD\uBBBA\u0000\u0000\u0000\uE852"+
- "\uBE43\uBE41\u0000\uE853\u0000\uBE44\uBE42\uE851"+
- "\uE850\u0000\uBFF0\uE84F\uBFEE\uBFED\uEBD0\uBE45"+
- "\uBFEF\uEBD1\uBFF2\uEBD2\uBFF1\uC1D8\uEEC3\uC1D7"+
- "\uC1DC\uC1DA\uC1DB\uC2E3\uC1D9\uEEC2\uEBD3\uC2E2"+
- "\uC2E4\u0000\uC3E4\uC3E5\u0000\uF4E0\u0000\uC5DE"+
- "\uC5DD\uA8B6\u0000\u0000\uCA55\uB06F\u0000\uCA52"+
- "\uCA53\uCA51\u0000\uCA54\u0000\u0000\uCBAA\uCBA7"+
- "\uCBAC\uCBA8\uA8B7\uA8BA\u0000\uCBA9\uA8B9\uCBAB"+
- "\u0000\u0000\uA8B8\u0000\u0000\u0000\u0000\uCDD5"+
- "\uCDD7\uAAF4\uCDD3\uCDD6\uCDD4\uAAF2\uAAF5\u0000"+
- "\uAAF3\u0000\u0000\u0000\u0000\uD0B8\uD0BC\uD0B9"+
- "\u0000\uADA7\u0000\uADA8\u0000\uD0BB\u0000\uD0BD"+
- "\uD0BF\u0000\uADA5\uD0BE\u0000\u0000\uADA6\u0000"+
- "\u0000\u0000\u0000\u0000\uD7EE\uD0BA\uD3F2\uD3FB"+
- "\uD3F9\uD3F4\uD3F5\uD3FA\uD3FC\uB071\u0000\uD3F7"+
- "\uD3F3\uB070\uB072\uD3F6\uD3FD\uD3F8\u0000\u0000"+
- "\uB3A1\uD7F1\uD7E9\uD7EF\uD7F0\uB3A2\u0000\uD7E8"+
- "\uD7EA\uD0B7\uD7EC\uD7ED\uD7EB\uB66C\u0000\u0000"+
- "\u0000\uDC56\uEBD4\uDC57\uDC54\uB3A3\uB66E\uDC53"+
- "\uDC59\uDC58\uB66B\uDC5C\uDC52\uDC5B\uDC50\uDC5A"+
- "\uDC55\uB66D\u0000\uE0AA\u0000\uE0A5\uE0AB\uE0A6"+
- "\uE0A4\uE0A7\uB951\u0000\uE0A9\u0000\uE0A8\uB952"+
- "\uBBC1\uBBC0\uE46E\uE471\uE469\uE46D\uBBC2\uE46C"+
- "\uE46A\uE470\uE46B\uE468\uE46F\u0000\uE859\uBE48"+
- "\uF14A\uE856\uE857\uE855\uDC51\uBE47\uE85A\uE854"+
- "\uBE46\uBE49\uE858\uEBD5\uBFF3\uEBD6\uEBD7\u0000"+
- "\uEEC4\uC1DD\uF14B\uF14C\u0000\u0000\uF14D\uF35D"+
- "\uF35C\uF4E2\u0000\uF4E1\uF65B\uF65C\uF65A\uF766"+
- "\uC5B0\uA8BB\uADAA\uADA9\uB075\uB074\uD440\uD441"+
- "\uD3FE\u0000\uB073\uD7F5\u0000\uD7F6\uD7F2\uB3A4"+
- "\uD7F3\u0000\uD7F4\u0000\u0000\u0000\u0000\uDC5F"+
- "\uDC61\uDC5D\uDC60\uB66F\uDC5E\uB670\u0000\u0000"+
- "\uDD73\uB955\uB954\u0000\uB953\u0000\uE0AC\uE0AD"+
- "\u0000\u0000\uE473\uE475\uBBC6\uBBC3\u0000\uBBC5"+
- "\uBBC4\uE474\uE472\u0000\u0000\u0000\u0000\u0000"+
- "\uE861\uE85E\uE85F\uBE4D\uE860\uE85B\uE85C\uBE4A"+
- "\u0000\uBE4B\uE85D\uBE4C\u0000\uEBDB\u0000\uEBDC"+
- "\uEBD9\uEBDA\uBFF4\uEBD8\u0000\u0000\u0000\u0000"+
- "\u0000\uEEC8\uEEC5\uEEC7\uC1E0\uEECB\uC1DF\uEEC9"+
- "\uEECC\uEECA\uEEC6\uC1DE\u0000\uF14F\u0000\uF150"+
- "\uF14E\u0000\uF152\uC2E5\uC2E6\uF35F\uC3E7\uF151"+
- "\uF35E\uC3E6\uF4E5\uF4E6\uC4BF\uF4E4\u0000\uF4E3"+
- "\u0000\uF65D\uC548\u0000\uF849\uF8C8\uF8C7\u0000"+
- "\uC643\uC65D\uF8C9\uF971\u0000\uC66F\uA8BC\uAAF6"+
- "\u0000\uB956\u0000\uC4C0\uA8BD\uADAB\uB3A5\uB671"+
- "\uC2E7\uAAF7\u0000\uD0C1\uD0C0\uD442\u0000\uB078"+
- "\uB076\uB07A\uD444\u0000\uB079\uB077\u0000\u0000"+
- "\u0000\u0000\uD443\uB3A8\uD7FC\u0000\uB3A7\uB3A9"+
- "\uD842\uB3AB\uD7FE\uD840\uD7F7\uB3AA\uD843\u0000"+
- "\u0000\uD7F9\u0000\uD7FA\uD7F8\uB3A6\u0000\uD841"+
- "\uD7FB\uD7FD\u0000\u0000\u0000\uDC6D\u0000\uDC6C"+
- "\uDC6A\uDC62\uDC71\uDC65\uDC6F\uDC76\uDC6E\uB679"+
- "\u0000\uB675\uDC63\u0000\uDC69\uB677\u0000\uDC68"+
- "\uB678\uB67A\uDC6B\u0000\uB672\uB673\uDC77\uDC75"+
- "\u0000\uDC74\uDC66\u0000\uDC72\u0000\uB676\u0000"+
- "\u0000\u0000\u0000\uB674\uDC73\uDC64\uDC67\uDC70"+
- "\u0000\u0000\u0000\u0000\u0000\uE4BA\uE0B7\u0000"+
- "\uE0B0\uE0C3\uE0CC\uE0B3\uB961\u0000\uE0C0\uB957"+
- "\uB959\uB965\uE0B1\u0000\u0000\uB95A\uB95C\uB966"+
- "\uB95B\u0000\u0000\u0000\u0000\uB964\uE0B9\u0000"+
- "\uE0AE\uB962\uE0B8\uB95E\uE0CA\uB963\uE0C8\uE0BC"+
- "\uE0C6\uB960\uE0AF\uE0C9\uE0C4\u0000\uE0CB\uB958"+
- "\u0000\u0000\uB967\uB95D\u0000\u0000\uE0B5\u0000"+
- "\uE0BD\uE0C1\u0000\uE0C5\uB95F\uE0B4\uE0B2\uE0BE"+
- "\u0000\u0000\u0000\u0000\uE0BB\uE0BA\u0000\uE0BF"+
- "\uE0C2\u0000\uE0C7\u0000\u0000\u0000\uE478\u0000"+
- "\uBBC7\uE4A4\uE47A\uBBCC\uBBD0\uE4AD\uE4B5\uE4A6"+
- "\uBBC8\u0000\uE4AA\uE0B6\u0000\uBBC9\uE4B1\uE4B6"+
- "\uE4AE\u0000\uE4B0\uE4B9\uE4B2\uE47E\uE4A9\u0000"+
- "\u0000\uBBD1\u0000\uBBCD\uE47C\uE4AB\uBBCB\uE4A5"+
- "\uBBCA\uE4B3\uE4A2\uE479\uBBCE\uE4B8\u0000\u0000"+
- "\uE47B\uE4AF\uE4AC\uE4A7\uE477\uE476\uE4A1\uE4B4"+
- "\uBBCF\uE4B7\uE47D\uE4A3\uBE52\u0000\u0000\u0000"+
- "\u0000\u0000\uBE5A\uBE55\uE8A4\uE8A1\uE867\uBE50"+
- "\u0000\u0000\u0000\uBE4F\uBE56\u0000\u0000\u0000"+
- "\uE865\uBE54\uE871\uE863\uE864\uBE4E\uE8A3\uBE58"+
- "\uE874\uE879\uE873\uEBEE\uE86F\uE877\uE875\uE868"+
- "\uE862\uE87D\uBE57\uE87E\u0000\uE878\u0000\uE86D"+
- "\uE86B\uE866\u0000\u0000\u0000\uE86E\uE87B\uE86A"+
- "\uE87A\uE8A2\u0000\u0000\uBE53\u0000\uE876\uE87C"+
- "\uE872\uE86C\uBE51\u0000\u0000\u0000\uE4A8\uE870"+
- "\uBE59\uE869\u0000\u0000\u0000\u0000\u0000\uEBF4"+
- "\uBFF7\uEBF3\uEBF0\uEC44\uBFFB\u0000\uEC41\uEBF8"+
- "\uEC43\uEBE9\uEBF6\u0000\uBFFD\u0000\uEBE1\u0000"+
- "\uEBDF\uEC42\u0000\uEC40\uEBFE\uEBED\uEBEC\uEBE2"+
- "\uC040\u0000\uEBE8\uEBF2\uEBFD\uC043\uEC45\u0000"+
- "\uC1E8\uC045\uBFFE\uEBE6\u0000\uEBEF\uEBDE\uEBE0"+
- "\uBFF5\uC042\uBFFA\uEBE7\uEBF7\uEBF1\uC041\uEBDD"+
- "\uC1E3\uEBF9\uEBFC\uBFFC\u0000\uEBEB\uC044\uBFF9"+
- "\u0000\u0000\u0000\uBFF8\uEBF5\uEBFB\uBFF6\u0000"+
- "\uEBE4\uEBFA\u0000\u0000\uEBE5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uEBEA\uEED2"+
- "\u0000\uEED7\uC1E5\uC1E7\uEEDD\uC1E1\uEEEC\uEEE3"+
- "\uEED8\uEED9\uEEE2\u0000\uC1EE\uEEE1\uEED1\uEEE0"+
- "\uEED4\uEEED\uC1ED\uC1EB\uEED5\u0000\uEEE8\u0000"+
- "\uEEDA\uEEE7\u0000\uEEE9\uEED0\uC1E6\u0000\uEEEA"+
- "\u0000\u0000\uEEDE\u0000\uC1EA\uEEDB\u0000\u0000"+
- "\uC1EC\uEEE4\u0000\u0000\u0000\uC1E4\uEED6\uEEE5"+
- "\u0000\uEEDF\uEBE3\uEEE6\uEED3\u0000\uC1E9\u0000"+
- "\uEEEB\u0000\uC1E2\uEECE\u0000\u0000\u0000\u0000"+
- "\uF160\uF159\uC2E9\u0000\uF154\uF163\uF15B\uEEDC"+
- "\u0000\uF165\uF155\u0000\uC2E8\uF15F\uC2EA\uC2F2"+
- "\uC2F0\uF161\uC2F1\uF157\u0000\uF158\uF15D\uF162"+
- "\u0000\uEECD\uC2EB\uF16A\uF167\uF16B\uF15E\uF15A"+
- "\uF168\uF36A\uF15C\u0000\uC2EE\u0000\uC2ED\uEECF"+
- "\uC2EF\uF164\uF166\uC2EC\uF169\uF153\u0000\uF156"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uF373\u0000\uF363\uC3EB\uF371\u0000\u0000\uF361"+
- "\uC3EC\u0000\uF36C\u0000\uF368\uC3F1\uF372\uF362"+
- "\uF365\uC3E9\uF374\u0000\uF36D\uF370\uC3EF\uC3F4"+
- "\uC3F2\uF369\uF364\u0000\uC3ED\uC3EE\uF360\uC3EA"+
- "\u0000\uC3E8\uC3F0\uF36F\uC3F3\u0000\uF36B\uF375"+
- "\uC3F5\u0000\u0000\u0000\uF367\u0000\uF36E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uF4F3\uF542\uF4F5"+
- "\uF4FC\uF366\uF4FA\uF4E9\uF540\uC4C3\uF4ED\uF4FE"+
- "\uF4F4\u0000\u0000\uC4C2\u0000\u0000\uF544\uF4F6"+
- "\u0000\uF4FB\uF4FD\uF4E7\uF541\uF4F2\uF4F7\uF4EB"+
- "\uF4EF\uF543\uF4F9\uF4E8\uF4EC\uF4EE\uF4F8\u0000"+
- "\uC4C1\uF4F1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uF4EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uF4F0\uF661\uF666\uC54F\uF668\u0000\uC549\u0000"+
- "\uF664\uF66A\uC54E\uC54A\u0000\uC54B\uF660\uF667"+
- "\uC54D\uF665\uC54C\uF65F\uF663\uF662\u0000\uF65E"+
- "\uF669\u0000\u0000\u0000\uC5B1\uF76D\uF770\uF76C"+
- "\uF76E\uF76F\uF769\uF76A\uF767\u0000\u0000\uF76B"+
- "\uF768\uC5B2\uC5B3\u0000\u0000\uF84B\u0000\uF84D"+
- "\u0000\u0000\u0000\u0000\u0000\uF84C\uF84E\u0000"+
- "\uC5E0\u0000\uF84A\uC5DF\uC5E1\u0000\u0000\u0000"+
- "\uF8CB\uF8CC\uC644\uF8CA\u0000\uF953\uF952\uF954"+
- "\uC65F\uF955\uC65E\uF956\uF972\uF975\uF974\uC668"+
- "\uF973\u0000\u0000\u0000\uC672\uC670\uC671\uC677"+
- "\uF9C0\uF9C1\uF9BF\uF9C9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uAAF8"+
- "\u0000\u0000\uD844\uDC78\uE8A5\uF376\u0000\u0000"+
- "\uAAF9\u0000\uADAC\uB07B\u0000\u0000\uD845\u0000"+
- "\uD846\uB3AC\u0000\uB67D\uDC7A\uDC79\uB6A3\uB67C"+
- "\uDC7B\uB67E\uB6A2\uB6A1\uB67B\u0000\u0000\u0000"+
- "\uB968\u0000\u0000\uE0D0\uE0CE\u0000\uE0CF\uE0CD"+
- "\u0000\uBBD2\u0000\uBBD5\uBBD7\uBBD6\u0000\u0000"+
- "\uBBD3\uBBD4\u0000\uE8A7\uE8A6\uBE5B\uE8A8\u0000"+
- "\uE8A9\uBE5C\u0000\u0000\u0000\uEC4D\uEC4B\uEEF3"+
- "\u0000\uEC49\uEC4A\uC046\uEC46\uEC4E\uEC48\uEC4C"+
- "\uEEEF\u0000\u0000\uEEF1\u0000\uEEF2\uC1F3\uEEEE"+
- "\uC1F2\uEEF0\uC1EF\uC1F0\uC1F1\uEC47\u0000\u0000"+
- "\uC2F5\uF16E\uF16C\uF16D\uC2F3\uC2F6\uC2F4\u0000"+
- "\u0000\u0000\uF377\uF378\uC3F6\u0000\uF545\uF547"+
- "\uF546\uC4C4\uC550\uF66D\uF66C\uF66B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uAAFA\u0000\uC9AA\u0000"+
- "\uCA58\uA6E9\uCA56\uCA59\uCA57\u0000\u0000\u0000"+
- "\uCBAE\u0000\uA8C1\u0000\uA8C2\uCBB0\uA8BF\uCBAF"+
- "\uCBAD\uA8C0\uA8BE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uCDD8\uCDDB\uAAFD\uCDDA\uCDD9\u0000\uAAFC"+
- "\uAAFB\u0000\uAB40\uCDDC\uAAFE\u0000\u0000\u0000"+
- "\u0000\u0000\uD0C6\uADAE\uADAF\uADB0\uD0C7\uD0C3"+
- "\uADAD\uD0C4\u0000\uD0C5\uD0C2\u0000\u0000\u0000"+
- "\uB0A4\u0000\u0000\uB0A1\uD445\uB0A2\uB0A5\uD446"+
- "\u0000\uB07E\uB07C\uB07D\uB0A3\u0000\u0000\u0000"+
- "\u0000\u0000\uB3AD\uD849\uB3B5\uD848\u0000\uD84B"+
- "\uB3B1\uD84A\uB6AB\uB3AF\uB3B2\uB3AE\uB3B3\uB3B4"+
- "\uB3B0\u0000\u0000\u0000\uD847\uB6A7\uDC7D\u0000"+
- "\uDCA3\u0000\u0000\uDCA2\uB6AC\uB6A8\uB6A9\uDC7C"+
- "\uDC7E\uDCA1\uB6A4\uB6A6\u0000\uB6AA\uB6A5\u0000"+
- "\u0000\uE0D3\uE0D1\uE0D2\uB96A\uB96B\u0000\uE0D4"+
- "\uB969\uBBD8\u0000\uBBDA\uBBD9\u0000\uE4BB\u0000"+
- "\u0000\uE4BC\uE8AB\u0000\uE8AA\u0000\u0000\uC047"+
- "\uC048\uEC4F\uC049\u0000\uEEF6\u0000\uEEF4\u0000"+
- "\uEEF5\uC1F4\u0000\uF16F\uC3F7\u0000\u0000\u0000"+
- "\uC1F5\uAB41\u0000\uB0A6\uD447\u0000\u0000\uD84C"+
- "\uB3B6\uB6AD\uDCA4\uDCA6\uB6AF\uB6AE\uB6B0\uB6B1"+
- "\uDCA5\uB96E\uB96F\uB96D\uBBDB\uB96C\uE0D5\u0000"+
- "\u0000\u0000\uBBDC\uE8AC\uEC50\uC04A\uC1F6\uF170"+
- "\uF174\uC2F9\uF171\uC2FA\uC2F8\uF175\uC2FB\uF173"+
- "\u0000\uF379\uC2F7\uC3F8\u0000\uF8CD\u0000\u0000"+
- "\uAB42\uB3B8\uB3B7\u0000\u0000\u0000\u0000\uB6B2"+
- "\uDCA8\uDCA7\uB6B3\u0000\u0000\uE0D9\uB973\uB970"+
- "\uE0D8\uB972\uE0D6\uB971\u0000\uE0D7\u0000\uE4BD"+
- "\uBBDD\u0000\uE8AF\u0000\uBE5D\uE8AD\uBE5E\uBE5F"+
- "\uE8AE\uBE60\u0000\uEC51\u0000\uC04E\uC04B\uC050"+
- "\uEC53\uC04C\uEC52\uC04F\u0000\u0000\uC04D\u0000"+
- "\uEEF9\uEEFB\u0000\u0000\uC1F7\uEEFA\uC1F8\uEEF8"+
- "\uEEF7\u0000\uF177\uF176\uC2FC\uF178\uF37E\uC3FA"+
- "\uF37D\uF37A\uC3F9\uF37B\uF37C\u0000\uF548\uF549"+
- "\uC4C5\u0000\uC553\u0000\u0000\uF66E\u0000\u0000"+
- "\uC551\uC552\uF66F\u0000\u0000\uC5B4\uC5B5\uF771"+
- "\u0000\u0000\uC645\uF8CF\uC647\u0000\uF8CE\uF8D0"+
- "\uC646\uF957\u0000\uF9AD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uAB43\u0000\u0000\u0000\uB974\u0000"+
- "\uE4BE\u0000\uE8B0\uC051\uC052\u0000\uAB44\u0000"+
- "\uBE61\uC3FB\uADB1\u0000\u0000\u0000\uC053\u0000"+
- "\uC5E2\uADB2\uD84D\u0000\uDCA9\u0000\uDCAB\u0000"+
- "\uDCAA\u0000\uE0DD\uE0DA\uB975\u0000\uB976\uE0DB"+
- "\uE0DC\u0000\uE4C0\uE4C5\uBBDE\uE4BF\uE4C1\uE4C8"+
- "\uE4C3\uE4C7\uE4C4\uE4C2\uE4C6\uBBDF\u0000\u0000"+
- "\uE8B3\u0000\uE8B1\uBE63\u0000\uBE62\uE8B2\uBE64"+
- "\u0000\u0000\u0000\u0000\uEC56\u0000\u0000\uEC55"+
- "\uC054\uEC54\uEEFC\u0000\uEEFE\uEF41\uEF40\u0000"+
- "\uC1F9\uEEFD\uF1A1\uC2FD\uF17D\uF1A2\uC2FE\u0000"+
- "\uF17B\u0000\uF17E\uF17C\uF179\uC340\uF17A\u0000"+
- "\u0000\u0000\u0000\uF3A1\u0000\u0000\uF3A3\uF3A2"+
- "\u0000\uF54A\u0000\uF54B\u0000\u0000\u0000\uF670"+
- "\u0000\uC5B7\u0000\uC5B6\uF84F\uF850\uC648\uF8D1"+
- "\u0000\uC669\u0000\uADB3\uB6B4\uE4CA\uE4C9\uE8B5"+
- "\uE8B4\u0000\u0000\uC1FA\uEF43\uEF42\uF1A5\uF1A3"+
- "\uF1A6\uF1A4\u0000\u0000\uC3FC\uF3A4\uF3A5\uF3A6"+
- "\u0000\uF671\u0000\uF772\u0000\uF8D2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uADB4\u0000\u0000"+
- "\uEC57\uEF44\u0000\uADB5\u0000\u0000\uBBE0\u0000"+
- "\uEC58\uC341\uF1A7\uC3FD\u0000\uF54C\uF54D\uC554"+
- "\uF851\uADB6\uB3BB\uB3BC\uD84E\uB6B5\uB6B6\uDCAC"+
- "\uB6B7\u0000\uB97A\u0000\uB97C\uE0DF\uE0E0\uE0DE"+
- "\uB977\uB978\uB97B\uB979\u0000\u0000\uE4CB\uBBE1"+
- "\uBBE2\u0000\u0000\uE8BC\uBE67\uE8B7\uE8B6\u0000"+
- "\uE8BB\uBE65\u0000\u0000\uC05B\u0000\uE8B8\uE8BD"+
- "\uE8BA\uE8B9\u0000\uBE66\u0000\uC059\u0000\uEC5A"+
- "\uC055\u0000\uEC5B\u0000\u0000\uEC59\u0000\uC058"+
- "\uC056\uC05A\u0000\uC057\u0000\u0000\u0000\u0000"+
- "\u0000\uEF45\u0000\uEF4A\uEF46\uEF49\uC1FB\u0000"+
- "\uEDD4\uEF48\uEF47\u0000\uC344\uC342\uC345\uC343"+
- "\uF1A8\uF1A9\uF1AA\uC346\u0000\u0000\u0000\uF3AA"+
- "\uC440\uF3A8\u0000\uC441\uF3A7\uF3A9\uC3FE\uF551"+
- "\uF54E\u0000\uF54F\uF550\uF672\uC556\u0000\uC555"+
- "\u0000\uF774\uF773\uC5B8\u0000\u0000\u0000\uC5E3"+
- "\uC649\uC660\uF958\uF9AE\uF9AF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uADB7\uDCAD\u0000\u0000\uE0E1\uE4CC\uE4CD\uBBE3"+
- "\u0000\uBBE4\uE8BE\uBE68\u0000\u0000\uC1FC\u0000"+
- "\uF1AB\u0000\uC347\uF3AD\uC442\uF3AC\uF3AE\uF3AB"+
- "\uF675\uF552\uF553\u0000\uC4C6\u0000\uF674\u0000"+
- "\u0000\uF673\u0000\uF775\uF9B0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uADB8\u0000\u0000\u0000\uADB9"+
- "\u0000\u0000\uB0A7\uD448\u0000\uD84F\u0000\uB6B8"+
- "\u0000\uB6BB\uB6B9\uDCAE\u0000\uB6BD\u0000\uB6BA"+
- "\u0000\u0000\uB6BC\u0000\uB97E\u0000\uE0E2\u0000"+
- "\u0000\uE0E3\uE8C0\u0000\uB97D\uB9A1\uB9A2\u0000"+
- "\uE4CF\u0000\uE4CE\uBBE5\u0000\uBBE6\u0000\uE4D0"+
- "\uE8BF\uBBE8\uBE69\u0000\uBBE7\u0000\u0000\u0000"+
- "\uC05C\uE8C1\uBE6B\uBE6A\uE8C2\uE8C5\uE8C3\uE8C4"+
- "\uBE6C\u0000\uC061\uC05F\u0000\u0000\uC05E\uEC5D"+
- "\u0000\uC060\u0000\u0000\uEC5C\uEF4B\u0000\uEC5E"+
- "\uC05D\uEC5F\uEF4E\uEF4C\uEF4D\uEF52\uC34B\uEF51"+
- "\uEF54\uEF53\uEF50\uEF4F\u0000\uC1FD\u0000\u0000"+
- "\u0000\u0000\uF1AE\u0000\uF1AD\uC34A\uC348\uC349"+
- "\u0000\uF1AC\u0000\uF3B1\u0000\uC443\u0000\uF3B0"+
- "\uF3AF\uC444\u0000\uF558\uF557\u0000\uF555\u0000"+
- "\uF554\uC4C8\uC4C7\uF559\uF776\uC5B9\uF677\uC557"+
- "\uF676\uF556\u0000\uF777\uC5E4\u0000\uC661\uF959"+
- "\u0000\uF9B1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uADBA\uD850"+
- "\uEF55\uADBB\u0000\u0000\uE4D2\uE4D1\uEC60\u0000"+
- "\u0000\uEF57\u0000\uEF56\u0000\uC34C\uF3B2\uF3B3"+
- "\uC4C9\u0000\u0000\uF9B2\uB0A8\uB6BF\uB6BE\uE0E4"+
- "\uE0E6\uB9A4\uE0E5\uB9A3\uB9A5\uE0E7\u0000\u0000"+
- "\u0000\uE4D4\uE4D6\uE4D5\u0000\uE4D8\u0000\u0000"+
- "\u0000\uBBE9\uE4D7\uE4D3\u0000\u0000\u0000\uE4D9"+
- "\u0000\uE8CC\u0000\uE8CF\uE8D1\uE8C7\uE8CB\uE8C8"+
- "\uBE6E\uBE71\uBE73\uE8C9\uE8CA\uBE72\uE8CD\uE8D0"+
- "\uE8CE\uBE74\u0000\uBE70\uE8C6\uBE6D\u0000\uBE6F"+
- "\u0000\u0000\uC063\uEC66\uEC64\uEC63\u0000\uEC69"+
- "\u0000\uEC68\uEC67\u0000\uEC62\uC062\uEC61\u0000"+
- "\uEC65\uC064\u0000\u0000\uEF5A\u0000\uEF5E\uEF5B"+
- "\uEF5D\uEF5C\uEF59\uEF5F\uEF62\uEF60\uEF61\uC240"+
- "\u0000\uC1FE\uEF58\uEF63\uF1B3\uF1B6\uF1B8\uF1B7"+
- "\u0000\uF1B1\uF1B5\uF1B0\u0000\uF1B2\uC34D\uF1AF"+
- "\u0000\uF1B4\u0000\u0000\uF3C0\uF3B5\uC445\u0000"+
- "\u0000\uC446\uF3B4\uF3B9\uF3BF\uF3B7\uF3BE\u0000"+
- "\uF3BB\u0000\uF3BA\uF3BD\uF3B8\uF3B6\u0000\uF3BC"+
- "\u0000\uF560\uF55E\uC4CA\uF55D\uF563\uF561\u0000"+
- "\uC4CB\uF55C\uF55A\u0000\uF55B\uC4CD\uF55F\uC4CC"+
- "\uF562\uF678\uF67E\u0000\u0000\uF679\uC55B\uF6A1"+
- "\uC55A\uF67D\uF67C\uC559\uF67B\uC558\uF67A\u0000"+
- "\uF77D\uF7A1\uF77E\u0000\uF77B\uC5BB\uF778\uF77C"+
- "\uF7A3\u0000\uF7A2\uF779\uF77A\uC5BA\uF852\uC5E7"+
- "\u0000\uF853\uC5E5\uC5E6\u0000\u0000\uF8D3\uC64A"+
- "\uF976\u0000\uC66A\u0000\uF9B3\uC66B\uF9B4\uF9B5"+
- "\uF9C3\uF9C2\uC67A\uF9CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uB0A9\u0000\u0000\uE0E9\u0000\uE0E8\u0000\uBBEA"+
- "\uBBEB\uE4DA\u0000\uE8D2\uEC6C\u0000\u0000\uBE75"+
- "\uC065\uEC6A\u0000\uEC6D\uC066\u0000\uEF64\uEC6B"+
- "\uF1B9\uC34E\uF3C1\u0000\u0000\u0000\uF566\uF564"+
- "\u0000\u0000\uF565\u0000\u0000\uF6A2\u0000\uC55C"+
- "\uF7A4\uC5EA\uC5BC\uC5E8\uC5E9\uF8D4\uC662\u0000"+
- "\uB0AA\u0000\u0000\u0000\uF1BA\u0000\u0000\uD449"+
- "\u0000\uB9A6\u0000\uE4DB\u0000\u0000\uBBEC\uE4DC"+
- "\u0000\u0000\u0000\uE8D4\uE8D3\uC068\uBE76\uBE77"+
- "\u0000\uE8D7\uE8D6\uE8D5\u0000\u0000\uEC6E\uEC71"+
- "\u0000\uEC70\uEC6F\uC067\uEF68\uEF66\uEF65\u0000"+
- "\u0000\uEF67\u0000\uC34F\uF1BC\uF1BD\uC350\u0000"+
- "\uF1BB\u0000\uF3C3\uF3C2\uF3C5\uC447\uF3C4\u0000"+
- "\uF567\uF569\uF568\u0000\u0000\uF6A3\uF6A6\uF6A4"+
- "\uF6A5\uF7A5\uC5BD\u0000\u0000\u0000\uF854\uF855"+
- "\uF856\u0000\uC64B\uC663\uF9B6\uB0AB\u0000\uBE78"+
- "\uC069\uF1BE\u0000\uF7A6\u0000\u0000\uF9C4\uD44A"+
- "\u0000\uC67B\uB0AC\uEC72\u0000\uF1BF\u0000\uF3C6"+
- "\u0000\u0000\uF6A7\uF7A7\uB0AD\u0000\uE4DD\uE4DE"+
- "\u0000\uBBED\uBBEE\uE8D9\uBE7A\uBE79\uE8D8\u0000"+
- "\uEF69\u0000\uF1C0\uF1C2\uF1C1\uC353\uC352\uC351"+
- "\u0000\uC55E\uF6A8\u0000\uC55D\uF7A9\uF7A8\u0000"+
- "\uC64C\uF8D5\uB3BD\uE0EA\u0000\u0000\u0000\uE4E1"+
- "\uE4DF\uE4E0\u0000\u0000\uE8E2\u0000\uE8DD\uE8DA"+
- "\uE8E1\u0000\u0000\u0000\uE8E3\u0000\u0000\uBE7C"+
- "\uE8E0\uE8DC\u0000\u0000\uE8DB\uE8DF\uE8DE\uBE7B"+
- "\u0000\u0000\uEC7D\uEC78\uEC76\uECA1\uEC77\u0000"+
- "\uEC73\u0000\uEC79\u0000\u0000\uEC74\uEF72\uEC75"+
- "\uECA2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uEC7C\uC06A\uEC7B\uEC7A\u0000\uEC7E\u0000\u0000"+
- "\u0000\u0000\uEF6A\uEF6D\u0000\u0000\uEF6C\u0000"+
- "\uEF74\uEF6F\uEF73\u0000\uEF71\uEF70\uEF6E\u0000"+
- "\uEF6B\u0000\uC243\uC242\u0000\uC244\uC241\uEF75"+
- "\u0000\u0000\u0000\u0000\u0000\uF1C8\uF1CB\u0000"+
- "\uF1C9\uF1CD\u0000\u0000\u0000\uF1CE\u0000\uF1C6"+
- "\uC358\uF1C7\u0000\uF1C5\uF1CC\u0000\uF1C4\uF1C3"+
- "\uC357\uC355\uC354\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uF1CA\uF3CF\uF3D5\uC44A\uF3D0"+
- "\u0000\uF3D3\uF3D7\uC44B\uF3D2\u0000\uF3CA\u0000"+
- "\uF3C9\uF3D6\uF3CD\u0000\uF3CB\uF3D4\uF3CC\uC449"+
- "\uC448\u0000\uF3C7\uF3C8\uF3D1\u0000\u0000\u0000"+
- "\uF3CE\u0000\u0000\u0000\u0000\u0000\u0000\uF56C"+
- "\uF56F\u0000\u0000\u0000\u0000\uC356\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uF56D\uF573\uF571"+
- "\uF56B\uF576\u0000\uF56A\u0000\uC4CF\uF572\u0000"+
- "\u0000\u0000\uF56E\uC4CE\uF575\u0000\u0000\uF574"+
- "\u0000\u0000\u0000\u0000\uF6AB\uF6AA\u0000\u0000"+
- "\u0000\uF6B1\u0000\uF6AD\uF6B0\uC560\u0000\u0000"+
- "\uF6AE\uF6AF\u0000\uF6A9\uF6AC\uC55F\u0000\u0000"+
- "\u0000\uC5BF\uF7B4\uF7AF\uF7B3\u0000\uF7B6\uF7B2"+
- "\u0000\uF7AE\u0000\uC5C1\uF7B1\uF7B5\uC5C0\uF7AC"+
- "\uF570\uF7B0\u0000\u0000\uF7AD\u0000\uF7AA\u0000"+
- "\uF7AB\uC5BE\uF85A\uF85C\uF85F\uF85B\uF860\u0000"+
- "\uF859\u0000\uF857\u0000\uC5EB\uF85D\uC5ED\uC5EC"+
- "\uF858\uF85E\u0000\u0000\u0000\u0000\uF8DA\uC64D"+
- "\uF8DB\u0000\uF8D9\uF8D6\u0000\u0000\uF8D8\uF8D7"+
- "\uF95A\u0000\u0000\u0000\u0000\uF95C\uF95B\u0000"+
- "\u0000\uF979\u0000\uF978\uF977\uF97A\u0000\uC673"+
- "\uC674\uF9CA\uF9CE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uB3BE\uDCAF\uE0ED"+
- "\u0000\uB9A7\uE0EB\u0000\u0000\uE0EC\u0000\u0000"+
- "\u0000\uE4E2\uE4E3\uBBF1\uBBEF\uE4E4\uBBF0\uE8E8"+
- "\u0000\uE8EB\uE8E5\uE8EC\uE8E4\uE8E6\u0000\uE8E7"+
- "\uE8EA\u0000\u0000\uBEA1\uE8EF\uE8EE\uBE7D\uE8E9"+
- "\uE8ED\uBE7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uECAC\u0000\uC06F\u0000\uECA7\uC06B\u0000\uECA4"+
- "\uECAA\uECAD\u0000\uC070\u0000\uECA9\uECA6\uECAE"+
- "\uECA5\u0000\uECAB\uC06C\u0000\uECA3\uC06D\u0000"+
- "\uC06E\uECA8\u0000\u0000\u0000\uEFA9\uEF7A\uEF7B"+
- "\uEF7E\uEF7C\u0000\uEF76\u0000\u0000\uEF79\uEFA5"+
- "\uEF7D\u0000\u0000\uC245\u0000\uEFA7\uEFA4\uC246"+
- "\uEFA6\uEF77\uEFA2\uEFA3\u0000\uEFA1\u0000\u0000"+
- "\u0000\u0000\uF1D2\uF1D4\uF1D7\u0000\u0000\uF1D1"+
- "\u0000\uC359\uF1D9\uF1D0\uF1DA\u0000\uF1D6\uF1D8"+
- "\uF1DC\uF1D5\uF1DD\uF1D3\uF1CF\uC35A\u0000\uF1DB"+
- "\uC35B\uC44D\u0000\u0000\u0000\u0000\u0000\uEF78"+
- "\uF3F1\uF3E8\uC44F\uF3E4\uC450\u0000\u0000\uF3ED"+
- "\uF3E7\uF3DD\uC44E\uF3EA\uF3E5\uF3E6\u0000\uF3D8"+
- "\uF3DF\uF3EE\u0000\uF3EB\u0000\uF3E3\u0000\uF3EF"+
- "\uF3DE\uF3D9\uF3EC\u0000\uF3DB\uF3E9\uF3E0\uF3F0"+
- "\uF3DC\uC44C\uF3DA\uF3E1\uF3E2\u0000\u0000\u0000"+
- "\uF57D\u0000\uF57B\u0000\uF5A2\u0000\uF5AE\uF5A5"+
- "\uF57C\uF578\uF5A7\uF57E\uF5A3\uF57A\uF5AA\uF577"+
- "\uF5A1\uF5A6\uF5A8\uF5AB\uF579\u0000\uF5AF\uF5B0"+
- "\uF5A9\uF5AD\uF5A4\u0000\uF6C1\uF6C4\u0000\uC561"+
- "\u0000\uF6C3\uF6C8\uF6C6\uC562\uF6BD\uF6B3\uF6B2"+
- "\uC564\uF6BF\uF6C0\uF6BC\uF6B4\u0000\uF6B9\uF5AC"+
- "\u0000\uF6B5\uC563\uF6BB\u0000\uF6BA\u0000\uF6B6"+
- "\uF6C2\u0000\uF6B7\uF7BB\uF6C5\uF6C7\uF6BE\uF6B8"+
- "\uF7BC\uF7BE\uF7B8\uC5C2\u0000\uF7C5\uF7C3\uC5C3"+
- "\uF7C2\uF7C1\uF7BA\uF7B7\uF7BD\uF7C6\uF7B9\uF7BF"+
- "\u0000\uF869\uF86E\uF864\uF867\uC5EE\uF86B\u0000"+
- "\uF872\uF7C0\u0000\uF865\uF86F\uF873\uF86A\uF863"+
- "\uF86D\u0000\uF86C\uF871\uF870\uF7C4\uF868\uF862"+
- "\uF866\uC64E\uC64F\uF861\u0000\uF8E6\uF8DD\uF8E5"+
- "\uF8E2\uF8E3\uF8DC\uF8DF\uF8E7\uF8E1\uF8E0\uF8DE"+
- "\u0000\uF8E4\u0000\uF95D\u0000\uF95E\u0000\uF960"+
- "\uF95F\uF962\uF961\uF97C\uF97B\uF9B7\u0000\uF9B8"+
- "\u0000\uF9C5\uC678\uC67C\u0000\uF9CF\uC67D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uB3BF\u0000\u0000"+
- "\u0000\uC4D0\uF6C9\u0000\uC650\uC651\u0000\uB3C0"+
- "\uE0EE\u0000\uB9A8\uE8F0\u0000\u0000\uECB0\uECB1"+
- "\uECAF\uEFAB\uEFAA\uC247\uF1DF\uEFAC\uF1DE\u0000"+
- "\u0000\uF3F3\uC451\uC453\uF3F2\u0000\u0000\uC452"+
- "\u0000\uF5B1\uF5B3\uF5B2\uF6CA\uC565\u0000\uC5EF"+
- "\uF8E8\uF963\u0000\u0000\uF9D2\uB3C1\u0000\uE4E5"+
- "\u0000\uBEA2\u0000\u0000\u0000\uECB3\uECB2\u0000"+
- "\uEFAD\u0000\u0000\u0000\uC454\uC4D1\uF7C7\uF9CB"+
- "\u0000\u0000\u0000\uB3C2\uBBF2\u0000\uBEA3\u0000"+
- "\uF3F4\u0000\uF874\uB6C0\u0000\u0000\u0000\u0000"+
- "\uEFAE\u0000\u0000\u0000\uC664\uB6C1\uBEA4\uC248"+
- "\uF875\uB6C2\u0000\uE8F1\uC072\uECB4\uECB5\u0000"+
- "\uC071\u0000\uEFAF\uC24C\uC24A\uC24B\uC249\uF1E0"+
- "\uC35C\u0000\u0000\u0000\uF5B5\uF5B4\uF5B7\uF5B6"+
- "\uC4D2\u0000\u0000\uF6CB\u0000\uF6CD\uF6CC\uC566"+
- "\uF7C8\u0000\uF876\uF877\uC5F0\uF964\uF97D\uC675"+
- "\u0000\uDCB0\uECB6\uEFB0\uF3F5\uE0EF\u0000\uEFB1";
-
- private final static String innerIndex6=
- "\uF1E2\uF1E1\u0000\u0000\u0000\u0000\uF878\uC652"+
- "\u0000\uF965\uF97E\u0000\u0000\u0000\uB9A9\uE8F2"+
- "\uE8F3\u0000\uECB7\uB9AA\u0000\uC35D\uF1E3\u0000"+
- "\uF6CF\uC567\uF6D0\uF6CE\uF879\u0000\uF8E9\u0000"+
- "\uB9AB\u0000\uEFB4\uEFB3\uEFB2\uF1E4\u0000\u0000"+
- "\uF1E8\uF1E7\uF1E6\uF1E5\uC35E\uF3F6\uF5B9\uC4D3"+
- "\uF5B8\uF6D1\uF7CB\uF7CA\uC5C4\uF7C9\uF87C\uF87B"+
- "\uF87A\u0000\u0000\uBBF3\u0000\uECB8\uC24D\u0000"+
- "\uF3F7\uF3F8\uF7CC\uF87D\u0000\u0000\uF8EA\uF966"+
- "\uF9B9\uF9D4\uBBF4\uC24E\uF1E9\uF3F9\uF6D2\uF87E"+
- "\u0000\u0000\uBEA6\u0000\uEFB5\uF1EA\uF3FA\uF3FB"+
- "\uF3FC\uF5BE\u0000\uF5BA\uC568\uF5BD\uF5BC\uC4D4"+
- "\uF5BB\uC4D6\u0000\uC4D5\uF6D4\uF6D3\uC569\uC56A"+
- "\u0000\u0000\uC5C6\uF7CD\uC5C5\u0000\uF8A3\uF8A4"+
- "\uF8A2\uF8A1\uC654\u0000\uF8EB\uF8EC\uF8ED\uC653"+
- "\uF967\uF96A\uF969\uF968\u0000\u0000\uF9D3\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC073\u0000\u0000"+
- "\uC365\uF5BF\uF6D5\u0000\uC5C7\uF7CE\u0000\u0000"+
- "\uF9D5\u0000\u0000\u0000\uC074\u0000\u0000\u0000"+
- "\uEFB6\u0000\uF7CF\u0000\uF9A1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC94A\uDDFC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA14A\uA157\u0000\uA159\uA15B\uA15F\uA160\uA163"+
- "\uA164\uA167\uA168\uA16B\uA16C\uA16F\uA170\uA173"+
- "\uA174\uA177\uA178\uA17B\uA17C\u0000\u0000\u0000"+
- "\u0000\uA1C6\uA1C7\uA1CA\uA1CB\uA1C8\uA1C9\uA15C"+
- "\uA14D\u0000\uA14F\u0000\uA151\uA152\uA153\uA154"+
- "\u0000\uA17D\uA17E\uA1A1\uA1A2\uA1A3\uA1A4\uA1CC"+
- "\uA1CD\uA1CE\uA1DE\uA1DF\uA1E0\uA1E1\uA1E2\u0000"+
- "\u0000\uA24C\uA24D\uA24E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA149\u0000\uA1AD\uA243\uA248\uA1AE\u0000"+
- "\uA15D\uA15E\uA1AF\uA1CF\uA141\uA1D0\uA144\uA241"+
- "\uA2AF\uA2B0\uA2B1\uA2B2\uA2B3\uA2B4\uA2B5\uA2B6"+
- "\uA2B7\uA2B8\uA147\uA146\uA1D5\uA1D7\uA1D6\uA148"+
- "\uA249\uA2CF\uA2D0\uA2D1\uA2D2\uA2D3\uA2D4\uA2D5"+
- "\uA2D6\uA2D7\uA2D8\uA2D9\uA2DA\uA2DB\uA2DC\uA2DD"+
- "\uA2DE\uA2DF\uA2E0\uA2E1\uA2E2\uA2E3\uA2E4\uA2E5"+
- "\uA2E6\uA2E7\uA2E8\u0000\uA242\u0000\u0000\uA1C4"+
- "\u0000\uA2E9\uA2EA\uA2EB\uA2EC\uA2ED\uA2EE\uA2EF"+
- "\uA2F0\uA2F1\uA2F2\uA2F3\uA2F4\uA2F5\uA2F6\uA2F7"+
- "\uA2F8\uA2F9\uA2FA\uA2FB\uA2FC\uA2FD\uA2FE\uA340"+
- "\uA341\uA342\uA343\uA161\uA155\uA162\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA14E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static short index1[] = {
- 1, 0, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 5, 6, 7, 0, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 11, 12, 13, 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, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 98, 99
- };
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2,
- innerIndex3,
- innerIndex4,
- innerIndex5,
- innerIndex6
- };
- public Encoder(Charset cs) {
- super(cs,
- index1,
- index2);
- }
- }
-}
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,15 +23,13 @@
* have any questions.
*/
-/*
- */
-
package sun.nio.cs.ext;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import sun.nio.cs.HistoricallyNamedCharset;
+import static sun.nio.cs.CharsetMapping.*;
public class Big5_HKSCS extends Charset implements HistoricallyNamedCharset
{
@@ -57,33 +55,35 @@
return new Encoder(this);
}
- private static class Decoder extends HKSCS_2001.Decoder {
-
- Big5.Decoder big5Dec;
+ static class Decoder extends HKSCS.Decoder {
+ private static DoubleByte.Decoder big5 =
+ (DoubleByte.Decoder)new Big5().newDecoder();
- protected char decodeDouble(int byte1, int byte2) {
- char c = super.decodeDouble(byte1, byte2);
- return (c != REPLACE_CHAR) ? c : big5Dec.decodeDouble(byte1, byte2);
+ private static char[][] b2cBmp = new char[0x100][];
+ private static char[][] b2cSupp = new char[0x100][];
+ static {
+ initb2c(b2cBmp, HKSCSMapping.b2cBmpStr);
+ initb2c(b2cSupp, HKSCSMapping.b2cSuppStr);
}
private Decoder(Charset cs) {
- super(cs);
- big5Dec = new Big5.Decoder(cs);
+ super(cs, big5, b2cBmp, b2cSupp);
}
}
- private static class Encoder extends HKSCS_2001.Encoder {
-
- private Big5.Encoder big5Enc;
+ static class Encoder extends HKSCS.Encoder {
+ private static DoubleByte.Encoder big5 =
+ (DoubleByte.Encoder)new Big5().newEncoder();
- protected int encodeDouble(char ch) {
- int r = super.encodeDouble(ch);
- return (r != 0) ? r : big5Enc.encodeDouble(ch);
+ static char[][] c2bBmp = new char[0x100][];
+ static char[][] c2bSupp = new char[0x100][];
+ static {
+ initc2b(c2bBmp, HKSCSMapping.b2cBmpStr, HKSCSMapping.pua);
+ initc2b(c2bSupp, HKSCSMapping.b2cSuppStr, null);
}
private Encoder(Charset cs) {
- super(cs);
- big5Enc = new Big5.Encoder(cs);
+ super(cs, big5, c2bBmp, c2bSupp);
}
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_HKSCS_2001.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.cs.ext;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import sun.nio.cs.HistoricallyNamedCharset;
+
+public class Big5_HKSCS_2001 extends Charset
+{
+ public Big5_HKSCS_2001() {
+ super("x-Big5-HKSCS-2001", ExtendedCharsets.aliasesFor("x-Big5-HKSCS-2001"));
+ }
+
+ public boolean contains(Charset cs) {
+ return ((cs.name().equals("US-ASCII"))
+ || (cs instanceof Big5)
+ || (cs instanceof Big5_HKSCS_2001));
+ }
+
+ public CharsetDecoder newDecoder() {
+ return new Decoder(this);
+ }
+
+ public CharsetEncoder newEncoder() {
+ return new Encoder(this);
+ }
+
+ private static class Decoder extends HKSCS.Decoder {
+ private static DoubleByte.Decoder big5 =
+ (DoubleByte.Decoder)new Big5().newDecoder();
+
+ private static char[][] b2cBmp = new char[0x100][];
+ private static char[][] b2cSupp = new char[0x100][];
+ static {
+ initb2c(b2cBmp, HKSCS2001Mapping.b2cBmpStr);
+ initb2c(b2cSupp, HKSCS2001Mapping.b2cSuppStr);
+ }
+
+ private Decoder(Charset cs) {
+ super(cs, big5, b2cBmp, b2cSupp);
+ }
+ }
+
+ private static class Encoder extends HKSCS.Encoder {
+ private static DoubleByte.Encoder big5 =
+ (DoubleByte.Encoder)new Big5().newEncoder();
+
+ static char[][] c2bBmp = new char[0x100][];
+ static char[][] c2bSupp = new char[0x100][];
+ static {
+ initc2b(c2bBmp, HKSCS2001Mapping.b2cBmpStr,
+ HKSCS2001Mapping.pua);
+ initc2b(c2bSupp, HKSCS2001Mapping.b2cSuppStr, null);
+ }
+
+ private Encoder(Charset cs) {
+ super(cs, big5, c2bBmp, c2bSupp);
+ }
+ }
+}
--- a/jdk/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/ext/Big5_Solaris.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,15 +23,14 @@
* have any questions.
*/
-/*
- */
-
package sun.nio.cs.ext;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import sun.nio.cs.HistoricallyNamedCharset;
+import java.util.Arrays;
+import static sun.nio.cs.CharsetMapping.*;
public class Big5_Solaris extends Charset implements HistoricallyNamedCharset
{
@@ -50,90 +49,78 @@
}
public CharsetDecoder newDecoder() {
- return new Decoder(this);
+ initb2c();
+ return new DoubleByte.Decoder(this, b2c, b2cSB, 0x40, 0xfe);
}
public CharsetEncoder newEncoder() {
- return new Encoder(this);
+ initc2b();
+ return new DoubleByte.Encoder(this, c2b, c2bIndex);
}
- private static class Decoder extends Big5.Decoder {
-
- protected char decodeDouble(int byte1, int byte2) {
- char c = super.decodeDouble(byte1, byte2);
-
- // Big5 Solaris implementation has 7 additional mappings
+ static char[][] b2c;
+ static char[] b2cSB;
+ private static volatile boolean b2cInitialized = false;
- if (c == REPLACE_CHAR) {
- if (byte1 == 0xf9) {
- switch (byte2) {
- case 0xD6:
- c = (char)0x7881;
- break;
- case 0xD7:
- c = (char)0x92B9;
- break;
- case 0xD8:
- c = (char)0x88CF;
- break;
- case 0xD9:
- c = (char)0x58BB;
- break;
- case 0xDA:
- c = (char)0x6052;
- break;
- case 0xDB:
- c = (char)0x7CA7;
- break;
- case 0xDC:
- c = (char)0x5AFA;
- break;
- }
- }
+ static void initb2c() {
+ if (b2cInitialized)
+ return;
+ synchronized (Big5_Solaris.class) {
+ if (b2cInitialized)
+ return;
+ Big5.initb2c();
+ b2c = Big5.b2c.clone();
+ // Big5 Solaris implementation has 7 additional mappings
+ int[] sol = new int[] {
+ 0xF9D6, 0x7881,
+ 0xF9D7, 0x92B9,
+ 0xF9D8, 0x88CF,
+ 0xF9D9, 0x58BB,
+ 0xF9DA, 0x6052,
+ 0xF9DB, 0x7CA7,
+ 0xF9DC, 0x5AFA };
+ if (b2c[0xf9] == DoubleByte.B2C_UNMAPPABLE) {
+ b2c[0xf9] = new char[0xfe - 0x40 + 1];
+ Arrays.fill(b2c[0xf9], UNMAPPABLE_DECODING);
}
- return c;
- }
- private Decoder(Charset cs) {
- super(cs);
+ for (int i = 0; i < sol.length;) {
+ b2c[0xf9][sol[i++] & 0xff - 0x40] = (char)sol[i++];
+ }
+ b2cSB = Big5.b2cSB;
+ b2cInitialized = true;
}
}
- private static class Encoder extends Big5.Encoder {
-
- protected int encodeDouble(char ch) {
- int r = super.encodeDouble(ch);
+ static char[] c2b;
+ static char[] c2bIndex;
+ private static volatile boolean c2bInitialized = false;
- if (r == 0) {
- switch (ch) {
- case 0x7881:
- r = 0xF9D6;
- break;
- case 0x92B9:
- r = 0xF9D7;
- break;
- case 0x88CF:
- r = 0xF9D8;
- break;
- case 0x58BB:
- r = 0xF9D9;
- break;
- case 0x6052:
- r = 0xF9DA;
- break;
- case 0x7CA7:
- r = 0xF9DB;
- break;
- case 0x5AFA:
- r = 0xF9DC;
- break;
- }
- }
- return r;
- }
+ static void initc2b() {
+ if (c2bInitialized)
+ return;
+ synchronized (Big5_Solaris.class) {
+ if (c2bInitialized)
+ return;
+ Big5.initc2b();
+ c2b = Big5.c2b.clone();
+ c2bIndex = Big5.c2bIndex.clone();
+ int[] sol = new int[] {
+ 0x7881, 0xF9D6,
+ 0x92B9, 0xF9D7,
+ 0x88CF, 0xF9D8,
+ 0x58BB, 0xF9D9,
+ 0x6052, 0xF9DA,
+ 0x7CA7, 0xF9DB,
+ 0x5AFA, 0xF9DC };
- private Encoder(Charset cs) {
- super(cs);
+ for (int i = 0; i < sol.length;) {
+ int c = sol[i++];
+ // no need to check c2bIndex[c >>8], we know it points
+ // to the appropriate place.
+ c2b[c2bIndex[c >> 8] + (c & 0xff)] = (char)sol[i++];
+ }
+ c2bInitialized = true;
}
}
}
--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Tue Apr 20 01:24:48 2010 -0700
@@ -55,10 +55,15 @@
"csBig5"
});
+ charset("x-MS950-HKSCS-XP", "MS950_HKSCS_XP",
+ new String[] {
+ "MS950_HKSCS_XP" // JDK historical;
+ });
+
charset("x-MS950-HKSCS", "MS950_HKSCS",
new String[] {
// IANA aliases
- "MS950_HKSCS" // JDK historical;
+ "MS950_HKSCS" // JDK historical;
});
charset("x-windows-950", "MS950",
@@ -86,8 +91,16 @@
"Big5_HKSCS", // JDK historical
"big5hk",
"big5-hkscs",
+ "big5hkscs" // Linux alias
+ });
+
+ charset("x-Big5-HKSCS-2001", "Big5_HKSCS_2001",
+ new String[] {
+ "Big5_HKSCS_2001",
+ "big5hk-2001",
+ "big5-hkscs-2001",
"big5-hkscs:unicode3.0",
- "big5hkscs" // Linux alias
+ "big5hkscs-2001",
});
charset("x-Big5-Solaris", "Big5_Solaris",
--- a/jdk/src/share/classes/sun/nio/cs/ext/HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/ext/HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,6 +1,5 @@
-
/*
- * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -24,5573 +23,343 @@
* have any questions.
*/
-/*
- */
-
package sun.nio.cs.ext;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.util.Arrays;
+import sun.nio.cs.Surrogate;
+import static sun.nio.cs.CharsetMapping.*;
-public abstract class HKSCS
- extends Charset
-{
+public class HKSCS {
+
+ public static class Decoder extends DoubleByte.Decoder {
+ static int b2Min = 0x40;
+ static int b2Max = 0xfe;
+
+ private char[][] b2cBmp;
+ private char[][] b2cSupp;
+ private static DoubleByte.Decoder big5Dec;
- public HKSCS() {
- super("HKSCS", ExtendedCharsets.aliasesFor("HKSCS"));
- }
+ protected Decoder(Charset cs,
+ DoubleByte.Decoder big5Dec,
+ char[][] b2cBmp, char[][] b2cSupp)
+ {
+ // super(cs, 0.5f, 1.0f);
+ // need to extends DoubleByte.Decoder so the
+ // sun.io can use it. this implementation
+ super(cs, 0.5f, 1.0f, null, null, 0, 0);
+ this.big5Dec = big5Dec;
+ this.b2cBmp = b2cBmp;
+ this.b2cSupp = b2cSupp;
+ }
- public CharsetDecoder newDecoder() {
- return new Decoder(this);
- }
+ public char decodeSingle(int b) {
+ return big5Dec.decodeSingle(b);
+ }
+
+ public char decodeBig5(int b1, int b2) {
+ return big5Dec.decodeDouble(b1, b2);
+ }
+
+ public char decodeDouble(int b1, int b2) {
+ return b2cBmp[b1][b2 - b2Min];
+ }
- public CharsetEncoder newEncoder() {
- return new Encoder(this);
- }
+ public char decodeDoubleEx(int b1, int b2) {
+ /* if the b2cSupp is null, the subclass need
+ to override the methold
+ if (b2cSupp == null)
+ return UNMAPPABLE_DECODING;
+ */
+ return b2cSupp[b1][b2 - b2Min];
+ }
+ protected CoderResult decodeArrayLoop(ByteBuffer src, CharBuffer dst) {
+ byte[] sa = src.array();
+ int sp = src.arrayOffset() + src.position();
+ int sl = src.arrayOffset() + src.limit();
+
+ char[] da = dst.array();
+ int dp = dst.arrayOffset() + dst.position();
+ int dl = dst.arrayOffset() + dst.limit();
- /**
- * These accessors are temporarily supplied while sun.io
- * converters co-exist with the sun.nio.cs.{ext} charset coders
- * These facilitate sharing of conversion tables between the
- * two co-existing implementations. When sun.io converters
- * are made extinct these will be unncessary and should be removed
- */
-
- public static short[] getDecoderIndex1() {
- return Decoder.index1;
- }
+ try {
+ while (sp < sl) {
+ int b1 = sa[sp] & 0xff;
+ char c = decodeSingle(b1);
+ int inSize = 1, outSize = 1;
+ char[] cc = null;
+ if (c == UNMAPPABLE_DECODING) {
+ if (sl - sp < 2)
+ return CoderResult.UNDERFLOW;
+ int b2 = sa[sp + 1] & 0xff;
+ inSize++;
+ if (b2 < b2Min || b2 > b2Max)
+ return CoderResult.unmappableForLength(2);
+ c = decodeDouble(b1, b2); //bmp
+ if (c == UNMAPPABLE_DECODING) {
+ c = decodeDoubleEx(b1, b2); //supp
+ if (c == UNMAPPABLE_DECODING) {
+ c = decodeBig5(b1, b2); //big5
+ if (c == UNMAPPABLE_DECODING)
+ return CoderResult.unmappableForLength(2);
+ } else {
+ // supplementary character in u+2xxxx area
+ outSize = 2;
+ }
+ }
+ }
+ if (dl - dp < outSize)
+ return CoderResult.OVERFLOW;
+ if (outSize == 2) {
+ // supplementary characters
+ da[dp++] = Surrogate.high(0x20000 + c);
+ da[dp++] = Surrogate.low(0x20000 + c);
+ } else {
+ da[dp++] = c;
+ }
+ sp += inSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(sp - src.arrayOffset());
+ dst.position(dp - dst.arrayOffset());
+ }
+ }
- public static String[] getDecoderIndex2() {
- return Decoder.index2;
-
- }
+ protected CoderResult decodeBufferLoop(ByteBuffer src, CharBuffer dst) {
+ int mark = src.position();
+ try {
+ while (src.hasRemaining()) {
+ char[] cc = null;
+ int b1 = src.get() & 0xff;
+ int inSize = 1, outSize = 1;
+ char c = decodeSingle(b1);
+ if (c == UNMAPPABLE_DECODING) {
+ if (src.remaining() < 1)
+ return CoderResult.UNDERFLOW;
+ int b2 = src.get() & 0xff;
+ inSize++;
+ if (b2 < b2Min || b2 > b2Max)
+ return CoderResult.unmappableForLength(2);
+ c = decodeDouble(b1, b2); //bmp
+ if (c == UNMAPPABLE_DECODING) {
+ c = decodeDoubleEx(b1, b2); //supp
+ if (c == UNMAPPABLE_DECODING) {
+ c = decodeBig5(b1, b2); //big5
+ if (c == UNMAPPABLE_DECODING)
+ return CoderResult.unmappableForLength(2);
+ } else {
+ outSize = 2;
+ }
+ }
+ }
+ if (dst.remaining() < outSize)
+ return CoderResult.OVERFLOW;
+ if (outSize == 2) {
+ dst.put(Surrogate.high(0x20000 + c));
+ dst.put(Surrogate.low(0x20000 + c));
+ } else {
+ dst.put(c);
+ }
+ mark += inSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(mark);
+ }
+ }
- public static short[] getEncoderIndex1() {
- return Encoder.index1;
+ public CoderResult decodeLoop(ByteBuffer src, CharBuffer dst) {
+ if (src.hasArray() && dst.hasArray())
+ return decodeArrayLoop(src, dst);
+ else
+ return decodeBufferLoop(src, dst);
+ }
- }
- public static String[] getEncoderIndex2() {
- return Encoder.index2;
+ static void initb2c(char[][]b2c, String[] b2cStr)
+ {
+ for (int i = 0; i < b2cStr.length; i++) {
+ if (b2cStr[i] == null)
+ b2c[i] = DoubleByte.B2C_UNMAPPABLE;
+ else
+ b2c[i] = b2cStr[i].toCharArray();
+ }
+ }
}
- protected static class Decoder extends DoubleByteDecoder {
+ public static class Encoder extends DoubleByte.Encoder {
+ private DoubleByte.Encoder big5Enc;
+ private char[][] c2bBmp;
+ private char[][] c2bSupp;
- private final static String innerIndex0=
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF303"+
- "\uF304\uF305\uF306\uF307\uF308\uF309\uF30A\uF30B"+
- "\uF30C\uF30D\uF30E\uF30F\uF310\uF311\uF312\uF313"+
- "\uF314\uF315\uF316\uF317\uF318\u0100\u00C1\u01CD"+
- "\u00C0\u0112\u00C9\u011A\u00C8\u014C\u00D3\u01D1"+
- "\u00D2\uF325\u1EBE\uF327\u1EC0\u00CA\u0101\u00E1"+
- "\u01CE\u00E0\u0251\u0113\u00E9\u011B\u00E8\u012B"+
- "\u00ED\u01D0\u00EC\u014D\u00F3\u01D2\u00F2\u016B"+
- "\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u01DC\u00FC\uF344\u1EBF\uF346\u1EC1\u00EA\u0261"+
- "\uF34A\uF34B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF3A0\uF3A1"+
- "\uFFFD\u650A\uFFFD\uFFFD\u4E3D\u6EDD\u9D4E\u91DF"+
- "\uFFFD\uFFFD\uF3AC\u6491\u4F1A\u4F28\u4FA8\u5156"+
- "\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1"+
- "\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66"+
- "\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804"+
- "\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7"+
- "\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6"+
- "\u8BBE\u8BE2\u8F66\u8F67\u8F6E\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7411"+
- "\u7CFC\u7DCD\u6946\u7AC9\u5227\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u918C\u78B8\u915E\u80BC\uFFFD\u8D0B\u80F6"+
- "\uF3F0\uFFFD\uFFFD\u809F\u9EC7\u4CCD\u9DC9\u9E0C"+
- "\u4C3E\uF3F9\uF3FA\u9E0A\uF3FC\u35C1\uFFFD\u6E9A"+
- "\u823E\u7519\uFFFD\u4911\u9A6C\u9A8F\u9F99\u7987"+
- "\uF408\uF409\uF40A\uF40B\u4E24\u4E81\u4E80\u4E87"+
- "\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088"+
- "\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205"+
- "\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0"+
- "\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3"+
- "\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598"+
- "\u553F\u35A5\u35BF\u55D7\u35C5\uF43D\u5525\uFFFD"+
- "\uF440\uF441\uF442\u5590\uF444\u39EC\uF446\u8E46"+
- "\uF448\uF449\u4053\uF44B\u777A\uF44D\u3A34\u47D5"+
- "\uF450\uF451\uF452\u64DD\uF454\uF455\uF456\uF457"+
- "\u648D\u8E7E\uF45A\uF45B\uF45C\uF45D\uF45E\uF45F"+
- "\uFFFD\uF461\uF462\uF463\u47F4\uF465\uF466\u9AB2"+
- "\u3A67\uF469\u3FED\u3506\uF46C\uF46D\uF46E\uF46F"+
- "\u9D6E\u9815\uFFFD\u43D9\uF474\u64B4\u54E3\uF477"+
- "\uF478\uF479\u39FB\uF47B\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF47C\uF47D"+
- "\uF47E\u64EA\uF480\uF481\u8E68\uF483\uF484\uF485"+
- "\uFFFD\u480B\uF488\u3FFA\u5873\uF48B\uFFFD\uF48D"+
- "\uF48E\uF48F\uF490\uF491\u5579\u40BB\u43BA\uFFFD"+
- "\u4AB4\uF497\uF498\u81AA\u98F5\uF49B\u6379\u39FE"+
- "\uF49E\u8DC0\u56A1\u647C\u3E43\uFFFD\uF4A4\uF4A5"+
- "\uF4A6\uF4A7\uFFFD\uF4A9\uF4AA\u3992\u3A06\uF4AD"+
- "\u3578\uF4AF\uF4B0\u5652\uF4B2\uF4B3\uF4B4\u34BC"+
- "\u6C3D\uF4B7\uFFFD\uFFFD\uF4BA\uF4BB\uF4BC\uF4BD"+
- "\uF4BE\uF4BF\uF4C0\uF4C1\u7F93\uF4C3\uF4C4\uF4C5"+
- "\u35FB\uF4C7\uF4C8\uF4C9\uF4CA\u3F93\uF4CC\uF4CD"+
- "\uF4CE\uF4CF\uFFFD\uF4D1\uF4D2\uF4D3\uF4D4\uF4D5"+
- "\u3FF9\uF4D7\u6432\uF4D9\uF4DA\uF4DB\uF4DC\uF4DD"+
- "\uF4DE\uF4DF\uF4E0\u3A18\uF4E2\uF4E3\uF4E4\uF4E5"+
- "\uF4E6\uF4E7\uF4E8\uF4E9\u95AA\u54CC\u82C4\u55B9"+
- "\uFFFD\uF4EF\u9C26\u9AB6\uF4F2\uF4F3\u7140\u816D"+
- "\u80EC\u5C1C\uF4F8\u8134\u3797\u535F\uF4FC\u91B6"+
- "\uF4FE\uF4FF\uF500\uF501\u35DD\uF503\u3609\uF505"+
- "\u56AF\uF507\uF508\uF509\uF50A\uF50B\uF50C\uF50D"+
- "\uF50E\uF50F\uF510\uF511\u5A54\uF513\uF514\uF515"+
- "\uF516\u579C\uF518\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF519\uF51A\uF51B"+
- "\uF51C\uF51D\u3703\uF51F\uF520\uF521\uF522\uF523"+
- "\uF524\uF525\uF526\u5899\u5268\u361A\uF52A\u7BB2"+
- "\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\uF533"+
- "\uF534\u55FB\u35F2\u5689\u4E28\u5902\uF53A\uF53B"+
- "\u9751\uF53D\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4"+
- "\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B"+
- "\u4E2C\u72AD\uF54E\u7F52\u793B\u7CF9\u7F53\uF553"+
- "\u34C1\uFFFD\uF556\u8002\u8080\uF559\uF55A\u535D"+
- "\u8864\u89C1\uF55E\u8BA0\u8D1D\u9485\u9578\u957F"+
- "\u95E8\uF565\u97E6\u9875\u98CE\u98DE\u9963\uF56B"+
- "\u9C7C\u9E1F\u9EC4\u6B6F\u9F9C\u4E37\uF572\u961D"+
- "\u6237\u94A2\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u5D3E\u5D48\u5D56\u3DFC\u380F"+
- "\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83"+
- "\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989"+
- "\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318"+
- "\u39F8\u56B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u3A03\u63E2\u63FB\u6407"+
- "\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586"+
- "\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42"+
- "\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B"+
- "\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6"+
- "\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2"+
- "\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75"+
- "\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4"+
- "\u6DB1\u6E15\u6E18\u6E29\u6E86\uF694\u6EBB\u6EE2"+
- "\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\uF69E"+
- "\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C"+
- "\u3D91\u7050\u7054\u706F\u707F\u7089\uF6AD\u43C1"+
- "\u35F1\uF6B0\uE311\u57BE\uE313\u713E\uE315\u364E"+
- "\u69A2\uE318\u5B74\u7A49\uE31B\uE31C\u7A65\u7A7D"+
- "\uE31F\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\uE325\u41CA"+
- "\u7ADA\u7ADD\u7AEA\u41EF\u54B2\uE32C\u7B0B\u7B55"+
- "\u7B29\uE330\uE331\u7BA2\u7B6F\u839C\uE335\uE336"+
- "\u7BD0\u8421\u7B92\uFFFD\uE33B\u3DAD\uE33D\u8492"+
- "\u7BFA\uFFFD\u7C35\uE342\u7C44\u7C83\uE345\u7CA6"+
- "\u667D\uE348\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u7E67\u451D\uE352\u7D5D\uE354"+
- "\u748D\u7D89\u7DAB\u7135\u7DB3\uFFFD\uE35B\uE35C"+
- "\u7DE4\u3D13\u7DF5\uE360\u7DE5\uE362\uFFFD\uE364"+
- "\uE365\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41"+
- "\u7F47\u7936\uE36F\u99E1\u7F97\uE372\u7FA3\uE374"+
- "\uE375\u455C\uE377\u4503\uE379\u7FFA\uE37B\uFFFD"+
- "\u8008\u801D\uFFFD\u802F\uE381\uE382\u803B\u803C"+
- "\u8061\uE386\u4989\uE388\uE389\uE38A\u6725\u80A7"+
- "\uE38D\u8107\u811A\u58B0\uE391\u6C7F\uE393\uE394"+
- "\u64E7\uE396\u8218\uE398\u6A53\uE39A\uE39B\u447A"+
- "\u8229\uE39E\uE39F\uE3A0\u4FF9\uE3A2\u84E2\u8362"+
- "\uE3A5\uE3A6\uE3A7\uE3A8\uE3A9\u82AA\u691B\uE3AC"+
- "\u41DB\u854B\u82D0\u831A\uE3B1\uE3B2\u36C1\uE3B4"+
- "\uE3B5\u827B\u82E2\u8318\uE3B9\uE3BA\uE3BB\uE3BC"+
- "\uE3BD\u3DBF\u831D\u55EC\u8385\u450B\uE3C3\u83AC"+
- "\uFFFD\u83D3\u347E\uE3C8\u6A57\u855A\u3496\uE3CC"+
- "\uE3CD\u8458\uE3CF\u8471\u3DD3\u44E4\u6AA7\u844A"+
- "\uE3D5\u7958\uFFFD\uE3D8\uE3D9\uE3DA\u84DE\uFFFD"+
- "\u8391\u44A0\u8493\u84E4\uE3E1\u4240\uE3E3\u4543"+
- "\u8534\u5AF2\uE3E7\u4527\u8573\u4516\u67BF\u8616"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uE3ED\uE3EE\u85C1\uE3F0\u8602\uE3F2"+
- "\uE3F3\uE3F4\u456A\u8628\u3648\uE3F8\u53F7\uE3FA"+
- "\u867E\u8771\uE3FD\u87EE\uE3FF\u87B1\u87DA\u880F"+
- "\u5661\u866C\u6856\u460F\u8845\u8846\uE409\uE40A"+
- "\uE40B\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5"+
- "\u7777\uE414\u8987\u898A\uFFFD\uFFFD\u89A7\u89BC"+
- "\uE41B\u89E7\uE41D\uE41E\u8A9C\u7793\u91FE\u8A90"+
- "\uE423\u7AE9\uE425\uE426\u4713\uE428\u717C\u8B0C"+
- "\u8B1F\uE42C\uE42D\u8B3F\u8B4C\u8B4D\u8AA9\uE432"+
- "\u8B90\u8B9B\u8AAF\uE436\u4615\u884F\u8C9B\uE43A"+
- "\uE43B\uE43C\u3725\uE43E\u8CD6\uE440\uE441\u8D12"+
- "\u8D03\uE444\u8CDB\u705C\u8D11\uE448\u3ED0\uFFFD"+
- "\u8DA9\uE44C\uE44D\uE44E\u3B7C\uE450\uE451\u7AE7"+
- "\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\uE459\uE45A"+
- "\u8FA5\u9303\uE45D\uE45E\u8FB3\u492A\uE461\uE462"+
- "\uE463\u5EF8\uE465\u8FF9\uE467\uE468\uE469\uE46A"+
- "\u3980\uE46C\u9037\uE46E\uE46F\u9061\uE471\uE472"+
- "\u90A8\uE474\u90C4\uE476\u90AE\uFFFD\u9167\u3AF0"+
- "\u91A9\u91C4\u7CAC\uE47E\uE47F\u920E\u6C9F\u9241"+
- "\u9262\uE484\uFFFD\uE486\uE487\uE488\uE489\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uE48A\u932C\u936B\uE48D\uE48E\u708F\u5AC3"+
- "\uE491\uE492\u4965\u9244\uE495\uE496\uE497\u9373"+
- "\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9"+
- "\uE4A1\uE4A2\uE4A3\uE4A4\u49DF\u6C1C\u967B\u9696"+
- "\u416C\u96A3\uE4AB\u61DA\u96B6\u78F5\uE4AF\u96BD"+
- "\u53CC\u49A1\uE4B3\uE4B4\uE4B5\uE4B6\uE4B7\uE4B8"+
- "\uE4B9\uE4BA\u9731\u8642\u9736\u4A0F\u453D\u4585"+
- "\uE4C1\u7075\u5B41\u971B\uFFFD\uE4C6\u9757\u5B4A"+
- "\uE4C9\u975F\u9425\u50D0\uE4CD\uE4CE\u9789\u979F"+
- "\u97B1\u97BE\u97C0\u97D2\u97E0\uE4D6\u97EE\u741C"+
- "\uE4D9\uFFFD\u97F5\uE4DC\uE4DD\u4AD1\u9834\u9833"+
- "\u984B\u9866\u3B0E\uE4E4\u3D51\uE4E6\uE4E7\uE4E8"+
- "\u98CA\u98B7\u98C8\u98C7\u4AFF\uE4EE\uE4EF\u55B0"+
- "\u98E1\u98E6\u98EC\u9378\u9939\uE4F6\u4B72\uE4F8"+
- "\uE4F9\u99F5\u9A0C\u9A3B\u9A10\u9A58\uE4FF\u36C4"+
- "\uE501\uE502\u9AE0\u9AE2\uE505\u9AF4\u4C0E\u9B14"+
- "\u9B2D\uE50A\u5034\u9B34\uE50D\u38C3\uE50F\u9B50"+
- "\u9B40\uE512\u5A45\uE514\u9B8E\uE516\u9C02\u9BFF"+
- "\u9C0C\uE51A\u9DD4\uE51C\uE51D\uE51E\uE51F\uE520"+
- "\uE521\u9D7E\u9D83\uE524\u9E0E\u6888\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u9DC4\uE528\uE529\uE52A\uE52B\uE52C\u9D39\uE52E"+
- "\uE52F\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF"+
- "\uE537\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\uE53E"+
- "\u9F02\u9F08\u4B96\u9424\uE543\u9F17\uFFFD\u9F39"+
- "\u569F\u568A\u9F45\u99B8\uE54B\u97F2\u847F\u9F62"+
- "\u9F69\u7ADC\u9F8E\u7216\u4BBE\uE554\uE555\u7177"+
- "\uE557\uE558\uE559\u739E\uE55B\uE55C\u799F\uE55E"+
- "\uE55F\u9369\u93F3\uE562\u92EC\u9381\u93CB\uE566"+
- "\uE567\u7217\u3EEB\u7772\u7A43\u70D0\uE56D\uE56E"+
- "\u717E\uE570\u70A3\uE572\uE573\u3EC7\uE575\uE576"+
- "\uE577\u3722\uE579\uE57A\u36E1\uE57C\uE57D\uE57E"+
- "\u3723\uE580\u575B\uE582\uE583\uE584\uE585\uE586"+
- "\u8503\uE588\uFFFD\u8455\uE58B\uE58C\uE58D\uE58E"+
- "\uE58F\uE590\u44F4\uE592\uE593\uE594\u67F9\u3733"+
- "\u3C15\u3DE7\u586C\uE59A\u6810\u4057\uE59D\uE59E"+
- "\uE59F\uE5A0\uE5A1\u54CB\u569E\uE5A4\u5692\uE5A6"+
- "\uE5A7\uE5A8\u93C6\uE5AA\u939C\u4EF8\u512B\u3819"+
- "\uE5AF\u4EBC\uE5B1\uE5B2\u4F4B\u4F8A\uE5B5\u5A68"+
- "\uE5B7\uE5B8\u3999\uE5BA\uE5BB\u3435\u4F29\uE5BE"+
- "\uE5BF\uE5C0\u8ADA\uE5C2\u4E98\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u50CD"+
- "\u510D\u4FA2\u4F03\uE5C8\uE5C9\u4F42\u502E\u506C"+
- "\u5081\u4FCC\u4FE5\u5058\u50FC\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u6E76\uE5D7\uE5D8\uE5D9\u6D72\uE5DB\uE5DC"+
- "\u51A8\u51C3\uE5DF\u44DD\uE5E1\uE5E2\uE5E3\u8D7A"+
- "\uE5E5\uE5E6\u5259\u52A4\uE5E9\u52E1\uFFFD\u467A"+
- "\u718C\uE5EE\uE5EF\uE5F0\uE5F1\u69D1\uE5F3\uFFFD"+
- "\u3EDE\u7499\u7414\u7456\u7398\u4B8E\uE5FB\uE5FC"+
- "\u53D0\u3584\u720F\uE600\u55B4\uE602\u54CD\uE604"+
- "\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E"+
- "\u58CB\u5A99\uE60F\uE610\uE611\uE612\u5A2C\u59B8"+
- "\u928F\u5A7E\u5ACF\u5A12\uE619\uE61A\uE61B\uE61C"+
- "\u36F5\u6D05\u7443\u5A21\uE621\u5A81\uE623\uE624"+
- "\u93E0\u748C\uE627\u7105\u4972\u9408\uE62B\u93BD"+
- "\u37A0\u5C1E\u5C9E\u5E5E\u5E48\uE632\uE633\uE634"+
- "\u5ECD\u5B4F\uE637\uE638\u3701\uE63A\u36DD\uE63C"+
- "\u36D3\u812A\uE63F\uE640\uE641\uE642\u5F0C\u5F0E"+
- "\uE645\uE646\u5A6B\uE648\u5B44\u8614\uE64B\u8860"+
- "\u607E\uE64E\uE64F\u5FDB\u3EB8\uE652\uE653\uE654"+
- "\uE655\u61C0\uE657\uE658\uE659\u6199\u6198\u6075"+
- "\uE65D\uE65E\uE65F\uE660\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6471\uE662"+
- "\uE663\u3A29\uE665\uE666\uE667\uE668\u6337\uE66A"+
- "\u64B6\u6331\u63D1\uE66E\uE66F\u62A4\uE671\u643B"+
- "\u656B\u6972\u3BF4\uE676\uE677\uE678\uE679\u550D"+
- "\uE67B\uE67C\uE67D\u66CE\uE67F\uE680\u3AE0\u4190"+
- "\uE683\uE684\uE685\uE686\uE687\uE688\u78EE\uE68A"+
- "\uE68B\uE68C\u3464\uE68E\uE68F\uE690\u668E\uE692"+
- "\u666B\u4B93\u6630\uE696\uE697\u6663\uE699\uE69A"+
- "\u661E\uE69C\u38D1\uE69E\uE69F\u3B99\uE6A1\uE6A2"+
- "\u74D0\u3B96\u678F\uE6A6\u68B6\u681E\u3BC4\u6ABE"+
- "\u3863\uE6AC\uE6AD\u6A33\u6A52\u6AC9\u6B05\uE6B2"+
- "\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\uE6B9\uE6BA"+
- "\u93A0\u92F2\uE6BD\uE6BE\u9289\uE6C0\uE6C1\u9467"+
- "\u6DA5\u6F0B\uE6C5\uFFFD\uE6C7\u3D8F\u6E04\uE6CA"+
- "\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\uE6D1\uE6D2"+
- "\u70F1\u7250\u7287\u7294\uE6D7\uE6D8\u5179\uE6DA"+
- "\uE6DB\u747A\uE6DD\uE6DE\uE6DF\uE6E0\uE6E1\u3F06"+
- "\u3EB1\uE6E4\uE6E5\uE6E6\u60A7\u3EF3\u74CC\u743C"+
- "\u9387\u7437\u449F\uE6EE\u4551\u7583\u3F63\uE6F2"+
- "\uE6F3\u3F58\u7555\u7673\uE6F7\u3B19\u7468\uE6FA"+
- "\uE6FB\uE6FC\u3AFB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u3DCD\uE6FF\u3EFF"+
- "\uE701\uE702\u91FA\u5732\u9342\uE706\uE707\u50DF"+
- "\uE709\uE70A\u7778\uE70C\u770E\u770F\u777B\uE710"+
- "\uE711\u3A5E\uE713\u7438\u749B\u3EBF\uE717\uE718"+
- "\u40C8\uE71A\uE71B\u9307\uE71D\u781E\u788D\u7888"+
- "\u78D2\u73D0\u7959\uE724\uE725\u410E\uFFFD\u8496"+
- "\u79A5\u6A2D\uE72B\u7A3A\u79F4\u416E\uE72F\u4132"+
- "\u9235\u79F1\uE733\uE734\uE735\uE736\uE737\u3597"+
- "\u556B\u3570\u36AA\uE73C\uE73D\u7AE2\u5A59\uE740"+
- "\uE741\uE742\u5A0D\uE744\u78F0\u5A2A\uE747\u7AFE"+
- "\u41F9\u7C5D\u7C6D\u4211\uE74D\uE74E\uE74F\u7CCD"+
- "\uE751\uE752\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07"+
- "\u7DD3\u7F4E\uE75B\uE75C\uE75D\u7D97\uE75F\u426A"+
- "\uE761\uE762\u67D6\uE764\uE765\u57C4\uE767\uE768"+
- "\uE769\u7FDD\u7B27\uE76C\uE76D\uE76E\u7B0C\uE770"+
- "\u99E6\u8645\u9A63\u6A1C\uE775\u39E2\uE777\uE778"+
- "\u9A1F\uE77A\u8480\uE77C\uE77D\u44EA\u8137\u4402"+
- "\u80C6\u8109\u8142\uE784\u98C3\uE786\u8262\u8265"+
- "\uE789\u8453\uE78B\u8610\uE78D\u5A86\u417F\uE790"+
- "\u5B2B\uE792\u5AE4\uE794\u86A0\uE796\uE797\u882D"+
- "\uE799\u5A02\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u886E\u4F45\u8887\u88BF"+
- "\u88E6\u8965\u894D\uE7A2\u8954\uE7A4\uE7A5\uE7A6"+
- "\uE7A7\uE7A8\uE7A9\u3EAD\u84A3\u46F5\u46CF\u37F2"+
- "\u8A3D\u8A1C\uE7B1\u5F4D\u922B\uE7B4\u65D4\u7129"+
- "\u70C4\uE7B8\u9D6D\u8C9F\u8CE9\uE7BC\u599A\u77C3"+
- "\u59F0\u436E\u36D4\u8E2A\u8EA7\uE7C4\u8F30\u8F4A"+
- "\u42F4\u6C58\u6FBB\uE7CA\u489B\u6F79\u6E8B\uE7CE"+
- "\u9BE9\u36B5\uE7D1\u90BB\uFFFD\u5571\u4906\u91BB"+
- "\u9404\uE7D8\u4062\uE7DA\u9427\uE7DC\uE7DD\u84E5"+
- "\u8A2B\u9599\u95A7\u9597\u9596\uE7E4\u7445\u3EC2"+
- "\uE7E7\uE7E8\uE7E9\u3EE7\uE7EB\u968F\uE7ED\uE7EE"+
- "\uE7EF\u3ECC\uE7F1\uE7F2\uE7F3\u7412\u746B\u3EFC"+
- "\u9741\uE7F8\u6847\u4A1D\uE7FB\uE7FC\uFFFD\u9368"+
- "\uE7FF\uE800\uE801\uE802\u92BA\u5B11\u8B69\u493C"+
- "\u73F9\uE808\u979B\u9771\u9938\uE80C\u5DC1\uE80E"+
- "\uE80F\u981F\uE811\u92F6\uE813\u91E5\u44C0\uE816"+
- "\uE817\uE818\u98DC\uE81A\u3F00\u922A\u4925\u8414"+
- "\u993B\u994D\uE821\u3DFD\u999B\u4B6F\u99AA\u9A5C"+
- "\uE827\uE828\u6A8F\u9A21\u5AFE\u9A2F\uE82D\u4B90"+
- "\uE82F\u99BC\u4BBD\u4B97\u937D\u5872\uE835\u5822"+
- "\uE837\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uE838\u7844\uE83A\uE83B\u68C5"+
- "\u3D7D\u9458\u3927\u6150\uE841\uE842\u6107\u9C4F"+
- "\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\uE84B\u9B9F"+
- "\uE84D\uE84E\u9D21\u4CAE\uE851\u9E18\u4CB0\u9D0C"+
- "\uE855\uE856\uE857\uE858\u9DA5\u84BD\uE85B\uE85C"+
- "\uE85D\u85FC\u4533\uE860\uE861\uE862\u8420\u85EE"+
- "\uE865\uE866\uE867\u79E2\uE869\uE86A\u492D\uE86C"+
- "\u3D62\u93DB\u92BE\u9348\uE871\u78B9\u9277\u944D"+
- "\u4FE4\u3440\u9064\uE878\u783D\u7854\u78B6\u784B"+
- "\uE87D\uE87E\uE87F\u369A\u4F72\u6FDA\u6FD9\uFFFD"+
- "\u701E\u5414\uE887\u57BB\u58F3\u578A\u9D16\u57D7"+
- "\u7134\u34AF\uE88F\u71EB\uE891\uE892\uFFFD\uE894"+
- "\uE895\u610C\u5ACE\u5A0B\u42BC\uE89A\u372C\u4B7B"+
- "\uE89D\u93BB\u93B8\uE8A0\uE8A1\u8472\uE8A3\uE8A4"+
- "\uE8A5\uE8A6\uE8A7\u5994\uE8A9\uE8AA\u7DA8\uE8AC"+
- "\uE8AD\uE8AE\uE8AF\uE8B0\u92E5\u73E2\u3EE9\u74B4"+
- "\uE8B5\uE8B6\u3EE1\uE8B8\u6AD8\u73F3\u73FB\u3ED6"+
- "\uE8BD\uE8BE\uE8BF\uE8C0\uE8C1\uE8C2\uE8C3\u7448"+
- "\uE8C5\u70A5\uE8C7\u9284\u73E6\u935F\uE8CB\u9331"+
- "\uE8CD\uE8CE\u9386\uE8D0\uE8D1\u4935\uE8D3\u716B"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uE8D5\uE8D6\u56A4\uE8D8\uE8D9\uE8DA"+
- "\u5502\u79C4\uE8DD\u7DFE\uE8DF\uE8E0\uE8E1\u452E"+
- "\u9401\u370A\uE8E5\uE8E6\u59B0\uE8E8\uE8E9\uE8EA"+
- "\u5AA1\u36E2\uE8ED\u36B0\u925F\u5A79\uE8F1\uE8F2"+
- "\u9374\u3CCD\uE8F5\u4A96\u398A\u50F4\u3D69\u3D4C"+
- "\uE8FB\u7175\u42FB\uE8FE\u6E0F\uE900\u44EB\u6D57"+
- "\uE903\u7067\u6CAF\u3CD6\uE907\uE908\u6E02\u6F0C"+
- "\u3D6F\uE90C\u7551\u36BC\u34C8\u4680\u3EDA\u4871"+
- "\u59C4\u926E\u493E\u8F41\uE917\uE918\u5812\u57C8"+
- "\u36D6\uE91C\u70FE\uE91E\uE91F\uE920\uE921\uE922"+
- "\u68B9\u6967\uE925\uE926\uE927\uE928\uE929\uE92A"+
- "\uE92B\uE92C\u6A1A\uE92E\uE92F\u843E\u44DF\u44CE";
+ protected Encoder(Charset cs,
+ DoubleByte.Encoder big5Enc,
+ char[][] c2bBmp,
+ char[][] c2bSupp)
+ {
+ super(cs, null, null);
+ this.big5Enc = big5Enc;
+ this.c2bBmp = c2bBmp;
+ this.c2bSupp = c2bSupp;
+ }
- private final static String innerIndex1=
- "\uE933\uE934\uE935\uE936\u6F17\uE938\u833D\uE93A"+
- "\u83ED\uE93C\uE93D\uE93E\u5989\u5A82\uE941\u5A61"+
- "\u5A71\uE944\uE945\u372D\u59EF\uE948\u36C7\u718E"+
- "\u9390\u669A\uE94D\u5A6E\u5A2B\uE950\u6A2B\uE952"+
- "\uE953\uE954\uE955\u711D\uE957\uE958\u4FB0\uE95A"+
- "\u5CC2\uE95C\uE95D\uE95E\u6A0C\uE960\uE961\u70A6"+
- "\u7133\uE964\u3DA5\u6CDF\uE967\uE968\u7E65\u59EB"+
- "\u5D2F\u3DF3\u5F5C\uE96E\uE96F\u7DA4\u8426\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u5485\uE973\uE974\uE975\u577E\uE977\uE978"+
- "\u3FE5\uE97A\uE97B\u7003\uE97D\u5D70\u738F\u7CD3"+
- "\uE981\uE982\u4FC8\u7FE7\u72CD\u7310\uE987\u7338"+
- "\u7339\uE98A\u7341\u7348\u3EA9\uE98E\u906C\u71F5"+
- "\uE991\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD"+
- "\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3"+
- "\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8"+
- "\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\uE9B0"+
- "\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761"+
- "\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB"+
- "\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851"+
- "\u7866\u8448\uE9CB\u7933\u6803\u7932\u4103\u4109"+
- "\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2"+
- "\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62"+
- "\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C"+
- "\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\uE9EF\u7DCF"+
- "\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020"+
- "\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0"+
- "\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560"+
- "\u8114\u4401\u3B39\u8156\u8159\u815A\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5"+
- "\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA"+
- "\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5"+
- "\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510"+
- "\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672"+
- "\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE"+
- "\u88FF\u8924\u8947\u8991\uEA43\u8A29\u8A38\u8A94"+
- "\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3"+
- "\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0"+
- "\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1"+
- "\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E"+
- "\u9228\u9258\u926B\u92B1\u92AE\u92BF\u92E3\u92EB"+
- "\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951"+
- "\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454"+
- "\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0"+
- "\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8"+
- "\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C"+
- "\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C"+
- "\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D"+
- "\u9C20\u376F\uEAA9\u9D49\u9C3A\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9EFE"+
- "\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B"+
- "\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8"+
- "\u7AC8\u9F44\uEABF\uEAC0\uEAC1\u691A\u94C3\u59AC"+
- "\uEAC5\u5840\u94C1\u37B9\uEAC9\uEACA\uEACB\uEACC"+
- "\u5757\u7173\uEACF\uEAD0\uEAD1\u546A\uEAD3\uEAD4"+
- "\u549E\uEAD6\uEAD7\uEAD8\uEAD9\uEADA\u60E7\uEADC"+
- "\u567A\uEADE\uEADF\uEAE0\uEAE1\uEAE2\uEAE3\u6955"+
- "\u9C2F\u87A5\uEAE7\uEAE8\uEAE9\uEAEA\uEAEB\uEAEC"+
- "\u5C20\uEAEE\u5E0B\uEAF0\uEAF1\uEAF2\u671E\uEAF4"+
- "\uEAF5\uEAF6\u3647\uEAF8\uEAF9\uEAFA\uEAFB\u5364"+
- "\u84AD\uEAFE\uEAFF\uEB00\u8B81\uEB02\uEB03\uEB04"+
- "\uEB05\u4E78\u70BB\uEB08\uEB09\uEB0A\uEB0B\uEB0C"+
- "\uEB0D\uEB0E\uEB0F\u62C3\uEB11\uEB12\u7198\u6855"+
- "\uEB15\u69E9\u36C8\uEB18\uEB19\uEB1A\uEB1B\uEB1C"+
- "\uEB1D\u82FD\uEB1F\uEB20\uEB21\u89A5\uEB23\u8FA0"+
- "\uEB25\u97B8\uEB27\u9847\u9ABD\uEB2A\uFFFD\uEB2C"+
- "\uEB2D\uEB2E\uEB2F\uEB30\uEB31\uEB32\uEB33\uEB34"+
- "\uEB35\uEB36\uEB37\uEB38\uEB39\u5FB1\u6648\u66BF"+
- "\uEB3D\uEB3E\uEB3F\uFFFD\uEB41\uFFFD\uEB43\uEB44"+
- "\uFFFD\uEB46\u58B5\u670E\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6918\uEB4A"+
- "\uEB4B\uEB4C\uEB4D\uEB4E\uEB4F\uEB50\u48D0\u4AB8"+
- "\uEB53\uEB54\uEB55\uEB56\uEB57\uEB58\uEB59\uEB5A"+
- "\uEB5B\u51D2\uEB5D\u599F\uEB5F\u3BBE\uEB61\uEB62"+
- "\uEB63\u5788\uEB65\u399B\uEB67\uEB68\uEB69\u3762"+
- "\uEB6B\u8B5E\uEB6D\uFFFD\uEB6F\uEB70\uEB71\u7209"+
- "\uEB73\uEB74\u5965\uEB76\uEB77\uEB78\u8EDA\uEB7A"+
- "\u528F\u573F\u7171\uEB7E\uEB7F\uEB80\uEB81\u55BC"+
- "\uEB83\uEB84\uEB85\uFFFD\u3473\uEB88\uEB89\uEB8A"+
- "\u4718\uEB8C\uEB8D\uEB8E\uEB8F\uEB90\u5066\u34FB"+
- "\uEB93\uFFFD\uEB95\u477C\uEB97\uEB98\uEB99\uEB9A"+
- "\uEB9B\u57A1\u7151\uFFFD\uEB9F\uEBA0\u9056\uEBA2"+
- "\uEBA3\u8B62\uEBA5\uEBA6\u5D5B\uEBA8\uFFFD\uEBAA"+
- "\uEBAB\u8AEA\uEBAD\uEBAE\uEBAF\uEBB0\u4BC0\uEBB2"+
- "\uEBB3\uEBB4\u9465\uEBB6\u6195\u5A27\uEBB9\uFFFD"+
- "\u56B9\uEBBC\uEBBD\u4E6A\uEBBF\u9656\u6D8F\uEBC2"+
- "\u3618\u8977\uEBC5\uEBC6\uEBC7\uEBC8\uFFFD\uEBCA"+
- "\u7B42\uEBCC\uEBCD\uEBCE\uFFFD\uEBD0\u7A45\uFFFD"+
- "\uEBD3\u9A26\uEBD5\u365F\uEBD7\uEBD8\u7983\uEBDA"+
- "\uEBDB\u5D2C\uEBDD\uFFFD\uEBDF\u46D0\uEBE1\u753B"+
- "\u8865\uEBE4\u58B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u371C\uEBE7\uEBE8"+
- "\uEBE9\u3C54\uEBEB\uEBEC\u9281\uEBEE\uEBEF\u9330"+
- "\uEBF1\uEBF2\u6C39\u949F\uEBF5\uEBF6\u8827\u88F5"+
- "\uEBF9\uEBFA\uEBFB\u6EB8\uEBFD\uEBFE\u39A4\u36B9"+
- "\uFFFD\uFFFD\u453F\u66B6\uEC05\uEC06\u8943\uEC08"+
- "\uEC09\u56D6\u40DF\uEC0C\u39A1\uEC0E\uEC0F\uEC10"+
- "\u71AD\u8366\uEC13\uEC14\uFFFD\u4CB7\uEC17\uEC18"+
- "\uEC19\uEC1A\uEC1B\uEC1C\uEC1D\u7B43\u797E\uEC20"+
- "\u6FB5\uEC22\u6A03\uEC24\u53A2\uEC26\u93BF\u6836"+
- "\u975D\uEC2A\uEC2B\uEC2C\uEC2D\uEC2E\uEC2F\u5D85"+
- "\uEC31\uEC32\u5715\u9823\uEC35\u5DAB\uEC37\u65BE"+
- "\u69D5\u53D2\uEC3B\uEC3C\u3C11\u6736\uEC3F\uEC40"+
- "\uEC41\uEC42\uEC43\uEC44\uEC45\uEC46\uEC47\uEC48"+
- "\uEC49\u35CA\uEC4B\uEC4C\u48FA\u63E6\uEC4F\u7808"+
- "\u9255\uEC52\u43F2\uEC54\u43DF\uEC56\uEC57\uEC58"+
- "\u59F8\uEC5A\uFFFD\uEC5C\uEC5D\uFFFD\uEC5F\uEC60"+
- "\u3DF7\uEC62\uEC63\u8FD0\u728F\u568B\uEC67\uEC68"+
- "\uEC69\uEC6A\uEC6B\uEC6C\uEC6D\uEC6E\uEC6F\uEC70"+
- "\uEC71\uEC72\uEC73\u7E9F\uEC75\uEC76\u4CA4\u9547"+
- "\uEC79\u71A2\uEC7B\u4D91\u9012\uEC7E\u4D9C\uEC80"+
- "\u8FBE\u55C1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u8FBA\uEC84\u8FB9\uEC86"+
- "\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\uEC8D\uEC8E"+
- "\u373A\u8E80\uEC91\uEC92\uEC93\uEC94\uEC95\uEC96"+
- "\u3DEB\uEC98\uEC99\uEC9A\uEC9B\u4E9A\uEC9D\uEC9E"+
- "\u56BF\uECA0\u8E0E\u5B6D\uECA3\uECA4\u63DE\uFFFD"+
- "\uECA7\uECA8\u6530\u562D\uECAB\u541A\uECAD\u3DC6"+
- "\uECAF\u4C7D\u5622\u561E\u7F49\uECB4\u5975\uECB6"+
- "\u8770\u4E1C\uECB9\uECBA\uECBB\u8117\u9D5E\u8D18"+
- "\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7"+
- "\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416"+
- "\uECCF\u35CE\u5605\u55F1\u66F1\uECD4\u362D\u7534"+
- "\u55F0\u55BA\u5497\u5572\uECDB\uECDC\u5ED0\uECDE"+
- "\uECDF\uECE0\uECE1\u9EAB\u7D5A\u55DE\uECE5\u629D"+
- "\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE"+
- "\u5569\uECF0\u9C72\uECF2\u519A\u34DF\uECF5\u51A7"+
- "\u544D\u551E\u5513\u7666\u8E2D\uECFC\u75B1\u80B6"+
- "\u8804\u8786\u88C7\u81B6\u841C\uED04\u44EC\u7304"+
- "\uED07\u5B90\u830B\uED0A\u567B\uED0C\uED0D\uED0E"+
- "\uED0F\uED10\uED11\u9170\uED13\u9208\uED15\uED16"+
- "\uED17\uED18\u7266\uED1A\u474E\uED1C\uED1D\uED1E"+
- "\u40FA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9C5D\u651F\uED22\u48F3\uED24"+
- "\uED25\uED26\uED27\uFFFD\uED29\uED2A\uFFFD\uED2C"+
- "\uED2D\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D"+
- "\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\uED3B\u589A"+
- "\uED3D\u822D\u544B\u57AA\uED41\uED42\uFFFD\u3A52"+
- "\uED45\u7374\uED47\u4D09\u9BED\uED4A\uED4B\u4C5B"+
- "\uED4D\uED4E\uED4F\u845C\uED51\uED52\uED53\uED54"+
- "\u632E\u7D25\uED57\uED58\u3A2A\u9008\u52CC\u3E74"+
- "\u367A\u45E9\uED5F\u7640\u5AF0\uED62\u787A\u47B6"+
- "\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\uED6B\u9E85"+
- "\u4CE1\uFFFD\u37FB\u6119\uED71\uED72\uFFFD\u565D"+
- "\uED75\u57A7\uED77\uED78\u5234\uED7A\u35AD\uFFFD"+
- "\u9D7C\u7C56\u9B39\u57DE\uED81\u5C53\u64D3\uED84"+
- "\uED85\uED86\u86AD\uED88\uED89\uED8A\uED8B\uFFFD"+
- "\u51FE\uED8E\u5D8E\u9703\uED91\u9E81\u904C\u7B1F"+
- "\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A"+
- "\u7C7E\uFFFD\u7C42\u7C86\u9C15\u7BFC\u9B09\uFFFD"+
- "\u9C1B\uEDA6\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2"+
- "\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8"+
- "\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641"+
- "\u6980\u50A6\u7546\uEDC6\u99DA\u5273\uFFFD\u9159"+
- "\u9681\u915C\uFFFD\u9151\uEDCF\u637F\uEDD1\u6ACA"+
- "\u5611\u918E\u757A\u6285\uEDD7\u734F\u7C70\uEDDA"+
- "\uEDDB\uFFFD\uEDDD\u76D6\u9B9D\u4E2A\uEDE1\u83BE"+
- "\u8842\uFFFD\u5C4A\u69C0\uFFFD\u577A\u521F\u5DF5"+
- "\u4ECE\u6C31\uEDED\u4F39\u549C\u54DA\u529A\u8D82"+
- "\u35FE\uFFFD\u35F3\uFFFD\u6B52\u917C\u9FA5\u9B97"+
- "\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14\uFFFD"+
- "\u6BFA\u8818\u7F78\uFFFD\u5620\uEE08\u8E77\u9F53"+
- "\uFFFD\u8DD4\u8E4F\u9E1C\u8E01\u6282\uEE11\u8E28"+
- "\u8E75\u7AD3\uEE15\u7A3E\u78D8\u6CEA\u8A67\u7607"+
- "\uEE1B\u9F26\u6CCE\u87D6\u75C3\uEE20\u7853\uEE22"+
- "\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\uEE2A"+
- "\u862F\u5FBA\u88A0\u44B7\uFFFD\uEE30\uEE31\uFFFD"+
- "\u8A7E\uEE34\uFFFD\u60FD\u7667\u9AD7\u9D44\u936E"+
- "\u9B8F\u87F5\uFFFD\uFFFD\u8CF7\u732C\u9721\u9BB0"+
- "\u35D6\u72B2\u4C07\u7C51\u994A\uEE48\u6159\u4C04"+
- "\u9E96\u617D\uFFFD\u575F\u616F\u62A6\u6239\uFFFD"+
- "\u3A5C\u61E2\u53AA\uEE56\u6364\u6802\u35D2\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u5D57\uEE5B\u8FDA\uEE5D\uFFFD\u50D9\uEE60"+
- "\u7906\u5332\u9638\uEE64\u4065\uFFFD\u77FE\uFFFD"+
- "\u7CC2\uEE6A\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505"+
- "\u74F2\u8994\u821A\u670C\u8062\uEE76\u805B\u74F0"+
- "\u8103\u7724\u8989\uEE7C\u7553\uEE7E\u87A9\u87CE"+
- "\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA"+
- "\u3635\u69B2\u8DA6\uFFFD\u89A9\uFFFD\u6DB9\u87C1"+
- "\uEE91\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\uFFFD"+
- "\u6077\uFFFD\u7F71\uEE9C\uFFFD\u60E9\u4B7E\u5220"+
- "\uEEA1\uEEA2\uEEA3\uEEA4\uEEA5\uEEA6\uEEA7\uEEA8"+
- "\uEEA9\uEEAA\u5CC1\uEEAC\uEEAD\uEEAE\uEEAF\uEEB0"+
- "\uEEB1\u4562\u5B1F\uEEB4\u9F50\u9EA6\uEEB7\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467"+
- "\u2468\u2469\u2474\u2475\u2476\u2477\u2478\u2479"+
- "\u247A\u247B\u247C\u247D\u2170\u2171\u2172\u2173"+
- "\u2174\u2175\u2176\u2177\u2178\u2179\u4E36\u4E3F"+
- "\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369"+
- "\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\uFFFD\u5F50"+
- "\u5F61\u6534\uFFFD\u7592\uFFFD\u8FB5\uFFFD\u00A8"+
- "\u02C6\u30FD\u30FE\u309D\u309E\uFFFD\uFFFD\u3005"+
- "\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041\u3042"+
- "\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A"+
- "\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052"+
- "\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A"+
- "\u305B\u305C\u305D\u305E\u305F\u3060\u3061\u3062"+
- "\u3063\u3064\u3065\u3066\u3067\u3068\u3069\u306A"+
- "\u306B\u306C\u306D\u306E\u306F\u3070\u3071\u3072"+
- "\u3073\u3074\u3075\u3076\u3077\u3078\u3079\u307A"+
- "\u307B\u307C\u307D\u307E\u307F\u3080\u3081\u3082"+
- "\u3083\u3084\u3085\u3086\u3087\u3088\u3089\u308A"+
- "\u308B\u308C\u308D\u308E\u308F\u3090\u3091\u3092"+
- "\u3093\u30A1\u30A2\u30A3\u30A4\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u30A5"+
- "\u30A6\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD"+
- "\u30AE\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5"+
- "\u30B6\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD"+
- "\u30BE\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5"+
- "\u30C6\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD"+
- "\u30CE\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5"+
- "\u30D6\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD"+
- "\u30DE\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5"+
- "\u30E6\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED"+
- "\u30EE\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5"+
- "\u30F6\u0410\u0411\u0412\u0413\u0414\u0415\u0401"+
- "\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D"+
- "\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425"+
- "\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D"+
- "\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435"+
- "\u0451\u0436\u0437\u0438\u0439\u043A\u043B\u043C"+
- "\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444"+
- "\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C"+
- "\u044D\u044E\u044F\u21E7\u21B8\u21B9\uF7E5\uF7E6"+
- "\u4E5A\uF7E8\u5202\uF7EA\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF7EB\u5188"+
- "\uF7ED\uF7EE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116"+
- "\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88"+
- "\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7"+
- "\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA"+
- "\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3\uFFFD"+
- "\uFFFD\uFFFD\u0283\u0250\u025B\u0254\u0275\u0153"+
- "\u00F8\u014B\u028A\u026A\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u7881\u92B9\u88CF\u58BB\u6052\u7CA7"+
- "\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A"+
- "\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561"+
- "\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B"+
- "\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E"+
- "\u2570\u256F\uFFED\uE000\u92DB\uE002\uE003\u854C"+
- "\u42B5\u73EF\u51B5\u3649\uE009\uE00A\u9344\uE00C"+
- "\u82EE\uE00E\u783C\u6744\u62DF\uE012\uE013\uE014"+
- "\uE015\uE016\u4FAB\uE018\u5008\uE01A\uE01B\uE01C"+
- "\uE01D\uE01E\uFFFD\uE020\u5FA4\uE022\uE023\u6EDB"+
- "\uE025\uFFFD\u5101\u347A\u510E\u986C\u3743\u8416"+
- "\uE02D\uE02E\u5160\uE030\u516A\uE032\uE033\uE034"+
- "\uE035\uE036\uE037\uE038\u5B82\u877D\uE03B\uE03C"+
- "\u51B2\u51B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u9D34\u51C9\u51CF\u51D1"+
- "\u3CDC\u51D3\uE045\u51B3\u51E2\u5342\u51ED\u83CD"+
- "\u693E\uE04C\u5F7B\u520B\u5226\u523C\u52B5\u5257"+
- "\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\uE05A"+
- "\uFFFD\uE05C\u5549\u6ED9\uE05F\uE060\uE061\u5333"+
- "\uFFFD\uE064\u6CCB\uE066\u681B\u73D5\u604A\u3EAA"+
- "\u38CC\uE06C\u71DD\u44A2\u536D\u5374\uE071\u537E"+
- "\uFFFD\uE074\uE075\u77E6\u5393\uE078\u53A0\u53AB"+
- "\u53AE\u73A7\uE07D\u3F59\u739C\u53C1\u53C5\u6C49"+
- "\u4E49\u57FE\u53D9\u3AAB\uE087\u53E0\uE089\uE08A"+
- "\u53F6\uE08C\u5413\u7079\u552B\u6657\u6D5B\u546D"+
- "\uE093\uE094\u555D\u548F\u54A4\u47A6\uE099\uE09A"+
- "\u3DB4\uE09C\uE09D\uE09E\u5547\u4CED\u542F\u7417"+
- "\u5586\u55A9\uFFFD\uE0A6\uE0A7\u4552\uE0A9\u66B3"+
- "\uE0AB\u5637\u66CD\uE0AE\u66A4\u66AD\u564D\u564F"+
- "\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\uE0BA"+
- "\u3623\uE0BC\u5746\uE0BE\u6C6E\u708B\u5742\u36B1"+
- "\uE0C3\u57E6\uE0C5\u5803\uE0C7\uE0C8\u5826\uE0CA"+
- "\u585C\u58AA\u3561\u58E0\u58DC\uE0D0\u58FB\u5BFF"+
- "\u5743\uE0D4\uE0D5\u93D3\u35A1\u591F\u68A6\u36C3"+
- "\u6E59\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uE0DC\u5A24\u5553\uE0DF\u8505"+
- "\u59C9\uE0E2\uE0E3\uE0E4\uE0E5\u59D9\uE0E7\uE0E8"+
- "\uE0E9\u6D71\uE0EB\uE0EC\u59F9\uE0EE\u5AAB\u5A63"+
- "\u36E6\uE0F2\uFFFD\u3708\u5A96\u7465\u5AD3\uE0F8"+
- "\uE0F9\u3D85\uE0FB\u3732\uE0FD\u5E83\u52D0\u5B76"+
- "\u6588\u5B7C\uE103\u4004\u485D\uE106\u5BD5\u6160"+
- "\uE109\uE10A\uE10B\u5BF3\u5B9D\u4D10\u5C05\uE110"+
- "\u5C13\u73CE\u5C14\uE114\uE115\u5C49\u48DD\u5C85"+
- "\u5CE9\u5CEF\u5D8B\uE11C\uE11D\u5D10\u5D18\u5D46"+
- "\uE121\u5CBA\u5DD7\u82FC\u382D\uE126\uE127\uE128"+
- "\u8287\u3836\u3BC2\u5E2E\u6A8A\uFFFD\u5E7A\uE130"+
- "\uE131\u53A6\u4EB7\uFFFD\u53A8\uE136\u5E09\u5EF4"+
- "\uE139\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D"+
- "\uE141\uE142\u3ADE\u48AE\uE145\u5F3A\uE147\uE148"+
- "\uFFFD\uE14A\u5F63\u97BD\uE14D\u5F72\u9340\uE150"+
- "\u5FA7\u5DB6\u3D5F\uE154\uE155\uE156\uE157\u91D6"+
- "\uE159\uE15A\u6031\u6685\uE15D\u3963\u3DC7\u3639"+
- "\u5790\uE162\u7971\u3E40\u609E\uFFFD\u60B3\uE168"+
- "\uE169\uE16A\u74A4\u50E1\u5AA0\u6164\u8424\u6142"+
- "\uE171\uE172\u6181\u51F4\uE175\u6187\u5BAA\uE178"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uE179\u61D3\uE17B\uE17C\u61D0\u3932"+
- "\uE17F\uE180\u6023\u615C\u651E\u638B\uE185\u62C5"+
- "\uE187\u62D5\uE189\u636C\uE18B\u3A17\u6438\u63F8"+
- "\uE18F\uE190\uFFFD\u6F8A\uE193\u9814\uE195\uE196"+
- "\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16"+
- "\uE19F\uE1A0\u6585\u656D\u655F\uE1A4\u65B5\uE1A6"+
- "\u4B37\u65D1\u40D8\uE1AA\u65E0\u65E3\u5FDF\uE1AE"+
- "\u6618\uE1B0\uE1B1\u6644\uE1B3\uE1B4\u664B\uE1B6"+
- "\u6667\uE1B8\u6673\uFFFD\uE1BB\uE1BC\uE1BD\uE1BE"+
- "\uE1BF\u77C5\uE1C1\u99A4\u6702\uE1C4\uE1C5\u3B2B"+
- "\u69FA\uE1C8\uFFFD\u6767\u6762\uE1CC\uE1CD\u67D7"+
- "\u44E9\u6822\u6E50\u923C\u6801\uE1D4\uE1D5\u685D";
+ public int encodeBig5(char ch) {
+ return big5Enc.encodeChar(ch);
+ }
- private final static String innerIndex2=
- "\uE1D7\u69E1\u6A0B\uE1DA\u6973\u68C3\uE1DD\u6901"+
- "\u6900\u3D32\u3A01\uE1E2\u3B80\u67AC\u6961\uE1E6"+
- "\u42FC\u6936\u6998\u3BA1\uE1EB\u8363\u5090\u69F9"+
- "\uE1EF\uE1F0\u6A45\uE1F2\u6A9D\u3BF3\u67B1\u6AC8"+
- "\uE1F7\u3C0D\u6B1D\uE1FA\u60DE\u6B35\u6B74\uE1FE"+
- "\u6EB5\uE200\uE201\uE202\u3740\u5421\uE205\u6BE1"+
- "\uE207\u6BDC\u6C37\uE20A\uE20B\uE20C\u6C5A\u8226"+
- "\u6C79\uE210\u44C5\uE212\uE213\uE214\uE215\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uE216\u36E5\u3CEB\uE219\u9B83\uE21B\uE21C"+
- "\u7F8F\u6837\uE21F\uE220\uE221\u6D96\u6D5C\u6E7C"+
- "\u6F04\uE226\uE227\uE228\u8533\uE22A\u51C7\uFFFD"+
- "\uFFFD\u842E\uE22F\uFFFD\uE231\u7453\uE233\u79CC"+
- "\u6E4F\u5A91\uE237\u6FF8\u370D\u6F9D\uE23B\u6EFA"+
- "\uE23D\uE23E\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74"+
- "\uE245\u3D3B\u6F9F\uE248\u6FD3\uE24A\uE24B\uE24C"+
- "\uE24D\uE24E\uE24F\u51DF\uE251\uE252\uE253\uE254"+
- "\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF"+
- "\u4104\u3DE8\u71B4\u7196\uE261\u712B\u7145\u5A88"+
- "\u714A\uFFFD\u5C9C\uE268\u714F\u9362\uE26B\u712C"+
- "\uE26D\uE26E\uE26F\u71BA\uE271\u70BD\u720E\u9442"+
- "\u7215\u5911\u9443\u7224\u9341\uE27A\u722E\u7240"+
- "\uE27D\u68BD\u7255\u7257\u3E55\uE282\u680D\u6F3D"+
- "\u7282\uFFFD\u732B\uE288\uE289\u48ED\uE28B\u7328"+
- "\u732E\u73CF\u73AA\uE290\uE291\u73C9\u7449\uE294"+
- "\uE295\uE296\u6623\u36C5\uE299\uE29A\uE29B\u73F7"+
- "\u7415\u6903\uE29F\u7439\uE2A1\u3ED7\uFFFD\uE2A4"+
- "\u7460\uE2A6\u7447\u73E4\u7476\u83B9\u746C\u3730"+
- "\u7474\u93F1\u6A2C\u7482\u4953\uE2B2\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uE2B3\uE2B4\uE2B5\u5B46\uE2B7\uE2B8\u74C8\uE2BA"+
- "\u750E\uFFFD\u751E\uE2BE\uE2BF\u5BD7\uE2C1\u9385"+
- "\u754D\u754A\u7567\u756E\uE2C7\u3F04\uE2C9\u758E"+
- "\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F"+
- "\u7676\uE2D4\u7690\u81EF\u37F8\uE2D8\uE2D9\u76A1"+
- "\u76A5\u76B7\u76CC\uE2DE\u8462\uE2E0\uE2E1\uE2E2"+
- "\u771E\u7726\u7740\u64AF\uE2E7\u7758\uE2E9\u77AF"+
- "\uE2EB\uE2EC\uE2ED\u77F4\uFFFD\uE2F0\uE2F1\u68CA"+
- "\u78AF\u78C7\u78D3\u96A5\u792E\uE2F8\u78D7\u7934"+
- "\u78B1\uE2FC\u8FB8\u8884\uE2FF\uE300\uE301\u7986"+
- "\u8900\u6902\u7980\uE306\u799D\uE308\u793C\u79A9"+
- "\u6E2A\uE30C\u3EA8\u79C6\uE30F\u79D4";
+ public int encodeChar(char ch) {
+ int bb = c2bBmp[ch >> 8][ch & 0xff];
+ if (bb == UNMAPPABLE_ENCODING)
+ return encodeBig5(ch);
+ return bb;
+ }
- private final static short index1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 0, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 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, 0, 0,
- 0, 0, 0, 0, 0, 0, 25, 26, 27, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 29, 30, 31, 32, 33, 0
- };
+ public int encodeSupp(int cp) {
+ if ((cp & 0xf0000) != 0x20000)
+ return UNMAPPABLE_ENCODING;
+ return c2bSupp[(cp >> 8) & 0xff][cp & 0xff];
+ }
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2
- };
- public Decoder(Charset cs) {
- super(cs,
- index1,
- index2,
- 0x40,
- 0xFE);
+ public boolean canEncode(char c) {
+ return encodeChar(c) != UNMAPPABLE_ENCODING;
}
- }
- protected static class Encoder extends DoubleByteEncoder {
- private final static String innerIndex0=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6D8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8859\u8857\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u885D\u885B\u8866\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8861\u885F\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u886A\u8868\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u886F\u886D\u88A7\u0000\u8873\u8871\u0000\u0000"+
- "\u0000\u0000\u8877\u8875\u0000\u0000\u0000\u0000"+
- "\uC8FB\u887B\u8879\u0000\u88A2\u0000\u0000\u0000"+
- "\u8856\u8867\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u885A\u886C\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u885C\u886E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8870\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8FC\u885E\u8874\u0000\u0000"+
- "\u0000\u0000\u0000\uC8FA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8878\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8858\u8869\u0000"+
- "\u8872\u8860\u8876\u0000\u887A\u0000\u887C\u0000"+
- "\u887D\u0000\u887E\u0000\u88A1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8F6\u886B\u0000\u0000\uC8F8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8F7\u0000\u0000\u0000\u0000"+
- "\u0000\u88A8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8FE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8F9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8F5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8FD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6D9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC7F9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC7F3\uC7F4\uC7F5\uC7F6\uC7F7\uC7F8\uC7FA\uC7FB"+
- "\uC7FC\uC7FD\uC7FE\uC840\uC841\uC842\uC843\uC844"+
- "\uC845\uC846\uC847\uC848\uC849\uC84A\uC84B\uC84C"+
- "\uC84D\uC84E\uC84F\uC850\uC851\uC852\uC853\uC854"+
- "\uC855\uC856\uC857\uC858\uC859\uC85A\uC85C\uC85D"+
- "\uC85E\uC85F\uC860\uC861\uC862\uC863\uC864\uC865"+
- "\uC866\uC867\uC868\uC869\uC86A\uC86B\uC86C\uC86D"+
- "\uC86E\uC86F\uC870\uC871\uC872\uC873\uC874\uC875"+
- "\u0000\uC85B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8863\u88A4"+
- "\u8865\u88A6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8D2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC8D3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB\uC6BC"+
- "\uC6BD\uC6BE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC877\uC878\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uC876"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6A1\uC6A2\uC6A3\uC6A4\uC6A5\uC6A6\uC6A7\uC6A8"+
- "\uC6A9\uC6AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC6AB\uC6AC\uC6AD\uC6AE"+
- "\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3\uC6B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uF9F9\uF9F8\uF9E6\uF9EF\uF9DD\uF9E8\uF9F1\uF9DF"+
- "\uF9EC\uF9F5\uF9E3\uF9EE\uF9F7\uF9E5\uF9E9\uF9F2"+
- "\uF9E0\uF9EB\uF9F4\uF9E2\uF9E7\uF9F0\uF9DE\uF9ED"+
- "\uF9F6\uF9E4\uF9EA\uF9F3\uF9E1\uF9FA\uF9FB\uF9FD"+
- "\uF9FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6E6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8D6\u0000\u0000\u0000\uC8D7\u0000\uC8D8\uC8D9"+
- "\uC8DA\u0000\uC8DB\u0000\uC8DC\uC8DD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8DE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC8DF\uC8E0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8E1\u0000\uC8E2"+
- "\u0000\u0000\uC8E3\u0000\uC8E4\u0000\uC8E5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E6\u0000"+
- "\u0000\u0000\u0000\u0000\uC8E7\u0000\uC8E8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E9\u0000"+
- "\u0000\u0000\uC8EA\u0000\uC8EB\uC8EC\u0000\uC8ED"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8EE\uC8EF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8F0\u0000"+
- "\u0000\u0000\u0000\uC8F1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC6CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6E0\uC6E1\uC6E2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB\uC6EC\uC6ED"+
- "\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3\uC6F4\uC6F5"+
- "\uC6F6\uC6F7\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD"+
- "\uC6FE\uC740\uC741\uC742\uC743\uC744\uC745\uC746"+
- "\uC747\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E"+
- "\uC74F\uC750\uC751\uC752\uC753\uC754\uC755\uC756"+
- "\uC757\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E"+
- "\uC75F\uC760\uC761\uC762\uC763\uC764\uC765\uC766"+
- "\uC767\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E"+
- "\uC76F\uC770\uC771\uC772\uC773\uC774\uC775\uC776"+
- "\uC777\uC778\uC779\uC77A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8D4\uC8D5\uC6DC\uC6DD\u0000"+
- "\u0000\uC77B\uC77C\uC77D\uC77E\uC7A1\uC7A2\uC7A3"+
- "\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9\uC7AA\uC7AB"+
- "\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\uC7B1\uC7B2\uC7B3"+
- "\uC7B4\uC7B5\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\uC7BB"+
- "\uC7BC\uC7BD\uC7BE\uC7BF\uC7C0\uC7C1\uC7C2\uC7C3"+
- "\uC7C4\uC7C5\uC7C6\uC7C7\uC7C8\uC7C9\uC7CA\uC7CB"+
- "\uC7CC\uC7CD\uC7CE\uC7CF\uC7D0\uC7D1\uC7D2\uC7D3"+
- "\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8\uC7D9\uC7DA\uC7DB"+
- "\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0\uC7E1\uC7E2\uC7E3"+
- "\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8\uC7E9\uC7EA\uC7EB"+
- "\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0\uC7F1\uC7F2\u0000"+
- "\u0000\u0000\u0000\u0000\uC6E3\uC6DA\uC6DB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC8D1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9277\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89D5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93CD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9BDF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFA68\u0000\u0000\u89DA\u8F59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89DB\u0000\u0000\u8F5D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89DC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8ADA\u0000\u0000\u0000"+
- "\u0000\u8BDC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u97DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E53"+
- "\u0000\u0000\u0000\u0000\u9DAA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9BEA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A6E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8BC8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89E8\u0000\u89EA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB70\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89ED\u0000\u0000"+
- "\u94DD\u0000\u89EE\u0000\u0000\u0000\u0000\u9EB4"+
- "\u8AD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92DB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94DB"+
- "\u89F9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB7A\u0000\u0000\u0000\u89FB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EFC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FC"+
- "\u0000\u89BF\u0000\u0000\u0000\u89FE\u0000\u89E6"+
- "\u0000\u0000\u9D46\u0000\u0000\u0000\u9DEE\u0000"+
- "\u0000\u0000\uA07E\u0000\u0000\u0000\uA068\u0000"+
- "\u0000\u0000\u0000\u98E9\u0000\u8B68\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFD\u8BBE\u9FD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AEB\u0000\u0000\u9FD7\u0000";
+ protected CoderResult encodeArrayLoop(CharBuffer src, ByteBuffer dst) {
+ char[] sa = src.array();
+ int sp = src.arrayOffset() + src.position();
+ int sl = src.arrayOffset() + src.limit();
+
+ byte[] da = dst.array();
+ int dp = dst.arrayOffset() + dst.position();
+ int dl = dst.arrayOffset() + dst.limit();
- private final static String innerIndex1=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8B6A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9C5C\u0000\u8BB1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB5E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DF3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0D0\u0000\u0000"+
- "\u0000\uFC66\u0000\u0000\u0000\u0000\u92E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AEC"+
- "\u8FAB\uFA48\u0000\u0000\u0000\u0000\u8E45\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C6F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EDE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89EF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96E9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EBB\u0000\u0000"+
- "\u0000\u0000\u94DE\u0000\u9EB8\u0000\u0000\u0000"+
- "\u97BA\uFB65\u0000\u0000\u0000\u95D6\u0000\u0000"+
- "\u0000\u9CBB\u0000\u0000\u97DA\u0000\u0000\u0000"+
- "\u0000\u8F45\u0000\uFB7D\u9158\uFE64\u0000\u9856"+
- "\u9B4D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u935B\u95C7\u0000\u97E7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9359\u0000\u0000"+
- "\u0000\u91F5\u97B8\u0000\u0000\uFDA2\uFBB6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92FA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9357\u0000\u8BA6\u0000\u0000\u0000\u0000"+
- "\uFBB9\u0000\u97B0\u0000\u0000\uFDC4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9CA1\u0000\u0000\u0000"+
- "\u0000\u0000\u91F2\u91F9\u0000\u8FF1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9745\u9853\u0000\u0000"+
- "\uFE78\u0000\uFBC1\u9251\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DAD\u0000\u0000\u0000\u0000\u0000"+
- "\uFD6C\u0000\u0000\uFA6B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9BC2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A7B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B60"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u934B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9ABD\u0000\u0000\u0000\u0000\u91B7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95B4\u0000\u0000\u0000\u0000\u0000"+
- "\uFEC5\u0000\u0000\u9EF0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D64"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9269\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBEA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBEF\u0000"+
- "\u8D68\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93EB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC42\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9166\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFACD\u0000\u0000\u0000"+
- "\u0000\u93DD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BCC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D6D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D6E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96A8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCA6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D6F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFC64\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9060\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8D74\u97C3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AD0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9274\u0000\u9BBE\u0000\u0000\u0000\u0000"+
- "\u0000\u9CC8\u0000\u0000\u9CBA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EB9\u0000\u0000\u0000"+
- "\u0000\u0000\u955A\u0000\u0000\u91B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A48\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7D\u0000\u0000\u8A7D\u0000\u0000\u8AC2\u0000"+
- "\u0000\uFD4A\u0000\u8DA1\u0000\u0000\u8AD1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCB4"+
- "\u8B47\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93A4\u9EDA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A51\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DA6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EC5\u0000\u0000\u0000\u0000\uFCC4"+
- "\u0000\u0000\u0000\u0000\uA078\u0000\u94B5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC2\u8A6B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAE8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DAD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC49\u0000"+
- "\u93C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u906F\u0000\u8DB0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u947E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90FA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9479\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DB2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCEE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u997B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DB4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DB7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DBB\u8DBA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DBC\u9044\u0000\u0000\u0000"+
- "\uFD4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93E4\u0000"+
- "\u0000\u93E0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DC3\u0000\u9BB8\u0000"+
- "\u0000\u0000\uFBF0\u0000\u93E9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93F6"+
- "\u0000\u0000\u0000\u0000\u0000\u8DC5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DCA\u0000\u0000\u0000"+
- "\u0000\u0000\u8DCC\uFD5D\u93B5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD61\u0000\u0000"+
- "\u0000\u9CF8\u0000\u0000\u0000\u9252\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9CA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DD6\u0000\u97C0\u0000\u0000"+
- "\u0000\uA0DE\u0000\u0000\u0000\u0000\u97D2\u0000"+
- "\u0000\u0000\u0000\u0000\uFAA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDA3\u0000\u0000\u0000\u8DDB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u91B5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFD49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDD1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEB\u0000"+
- "\u0000\u0000\u0000\u0000\u97C6\u0000\uFDCE\u0000"+
- "\u0000\u90FC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFC59"+
- "\u0000\u0000\u96D6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97C5\u8DEF\u0000\u0000\u0000\u0000\u97D7"+
- "\u0000\u0000\u0000\u0000\u0000\u8DF0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96A6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBBF\u0000\u0000"+
- "\u0000\u0000\u8DF3\u0000\u0000\u0000\u0000\u9449"+
- "\u0000\u8DF5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9872\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E6B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAFD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F50"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DCC\uFC65"+
- "\u0000\u0000\u0000\u0000\u996E\u94A1\u0000\u0000"+
- "\u0000\u0000\u0000\u8F63\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0DA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9253"+
- "\uFDE9\u0000\u0000\u9DB5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9879\u0000\u0000\u0000\u9D5D"+
- "\u0000\u0000\u0000\u0000\u8D63\u9669\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC6A\u0000\u0000\u8AC7\u0000\u0000\u0000\u0000"+
- "\u89D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE4D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EDD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEFB\u98BC\uFACC\u0000\u0000\u95B0\u0000\u0000"+
- "\u0000\u9464\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u936F\u0000\u0000\u0000\u0000\u0000\u0000\u94B9"+
- "\u0000\u0000\u95EC\u0000\u0000\u0000\u0000\u91EE"+
- "\u0000\u0000\u98C3\u0000\u95F6\u0000\u0000\u0000"+
- "\u8FFD\u98C5\u0000\u0000\u0000\u0000\u9766\uFE6E"+
- "\u0000\u0000\u97DD\u0000\u0000\u0000\u92D2\u0000"+
- "\u0000\u9761\u98CB\u0000\u0000\u0000\u0000\u95F0"+
- "\u0000\u975D\u0000\u91E3\u0000\u0000\u0000\u0000"+
- "\u98CC\u0000\u0000\u9469\u98CD\u0000\u0000\u0000"+
- "\u0000\u0000\u98CE\u0000\u95FC\u0000\u0000\u94A3"+
- "\u9662\u0000\u0000\u0000\uFEB6\u0000\u9463\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98D0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98D1\u0000\u0000\u0000\u0000"+
- "\u9475\uFAE0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9472\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98D6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AF0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98DB"+
- "\u0000\u0000\u0000\u0000\u98DD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98A8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A6D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8AFB\u8AAE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBC9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98E4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98E8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8A4D\u0000\u0000\u0000\u9257"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95DF\u0000\u0000\uA0AC\u0000\u0000"+
- "\u0000\u0000\u98EB\u0000\u0000\u0000\u0000\u98EC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AB8\u0000\u0000\u0000\u9EE7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u94BC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD1\u0000\u0000\u0000\u0000\u0000\u0000\u9CC6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98FE\uFDE8\u0000\u0000\u0000"+
- "\u0000\u9940\u0000\u0000\u0000\u0000\u94C9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94D3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9946"+
- "\u0000\u0000\u0000\u0000\u90C0\u0000\u94D1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9573"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9948\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u994B\u0000\u0000\u0000"+
- "\u0000\u0000\u8E55\u0000\u0000\u0000\u0000\u994E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EFE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8E59"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94EC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94EF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F74\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9955\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9544\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9956\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9959\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u995B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFA45\u0000\u0000"+
- "\u0000\u90B7\u0000\u0000\u9743\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95CD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u97C9\uFD50\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EB9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95C6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8A76\u0000\u0000\u0000\u0000\u0000\u9D51"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9973\u0000\u0000"+
- "\u0000\u0000\u9D4F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u997A\u9564\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99A1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8EED\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99AD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946E"+
- "\u8F70\u0000\uFAD0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99B3\u0000\u0000\u0000\u0000\u0000\u0000\uA053"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u965C\u0000\u0000\u0000\u0000\uFD7A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97FE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92BD\u0000\u97FD"+
- "\u0000\u0000\u0000\u0000\u8F64\u0000\u0000\u0000"+
- "\u0000\uFCF7\u9562\u97CD\u9E64\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u924C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EC9\u99BC\u0000\u0000\u0000"+
- "\u0000\u9DA5\u0000\u8F54\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8F7C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EA2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97AE\u0000"+
- "\u0000\u0000\u0000\u96C8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99C3\u0000\u90D6\u0000\u9CBE"+
- "\u0000\u0000\u0000\u8F76\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9470\uFB4B\u0000\u0000\uFDCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8EC7\u0000\u0000\u0000"+
- "\u0000\u0000\uA0F9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8FA9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90D7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EDF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex2=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99CE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA"+
- "\u0000\u0000\u0000\u0000\u0000\u8FEB\u0000\u99CF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FC2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92C9\u0000\u0000\u0000\u0000\u0000"+
- "\u97DC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95B3"+
- "\u9C79\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95B2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FDB\u0000\u0000\u0000\u0000"+
- "\u9BE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E7A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9BEE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99DE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAFA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9EE5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A52\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99E1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A67\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BB5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AAC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97DE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95D1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99F5\uFC4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BA9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBDC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE56\u0000\u0000"+
- "\u0000\u0000\u0000\u9EA4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95DB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9664\u0000\u0000"+
- "\u0000\u0000\u9055\u0000\u0000\u96D4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u977C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u964D\u0000\u97E1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A48\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A49\u0000\uFE7D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90AA\u0000\u0000"+
- "\u0000\u0000\u9A50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9347\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90C9\u0000\u0000\u0000\u0000\u0000\u9A55"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90BC"+
- "\u0000\u0000\u0000\u0000\u0000\u9A58\u0000\u8BB8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90D5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9641\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A5A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A5C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8ABB\u0000\u0000\u0000"+
- "\u9BAA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90F5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A60\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9145"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A63\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8BB6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u966B"+
- "\u9A6E\u0000\u914F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9746\u0000\u0000\uA0E6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92D7\u0000"+
- "\u9675\u0000\u0000\u93D4\u0000\u0000\u91BB\u9679"+
- "\u0000\u0000\u0000\u0000\u0000\u9A70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9678\u91CD\u0000"+
- "\u9C4A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA06F\u0000\u0000\uA06A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u915F\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9FA5\u0000\u0000\u89BA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9ECD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A79\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9D73\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96B9\u0000"+
- "\u96BC\u0000\u0000\u0000\u0000\u0000\u0000\u9CD1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EEE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB43\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EC9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFBD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9D78\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9D7B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EB3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EB2\u0000\u9DD6\u0000\u0000\u0000"+
- "\u0000\u994F\u0000\u0000\u89CE\u0000\u0000\u0000"+
- "\u8BC0\u0000\u9FC4\u0000\u8BD4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6BF\u8BF9"+
- "\u0000\u0000\u0000\u0000\u0000\u8946\u0000\uC6C0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC87B\u8BC6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C57\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9AFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89D0\u89CF\u0000\u0000\u0000\uC6C1\u0000\u89D1"+
- "\u0000\u89E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u927E\u0000\u9DBA\u0000\u0000\u0000\u0000\u0000"+
- "\uC6C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBF8"+
- "\u0000\u0000\u0000\u8BC7\u926B\u0000\u0000\u89D2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FCF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DA9\u89D3\u0000\u0000\u99E2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9267\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92A4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u894E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u894F\u9278\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91B6\u0000\u0000\u0000\u0000\u89D4"+
- "\u0000\u9FD2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92A7\u0000\u0000\u95A2\u0000\u0000"+
- "\u0000\u0000\u0000\u926E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96EA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u926F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92A3\u0000\u0000\u0000\u0000\u0000"+
- "\u8950\u0000\u0000\uFA57\u0000\u0000\u0000\u0000"+
- "\u9866\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89D6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B2\u0000\u0000\u0000\u92AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96DE\u92AC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F6E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EF2\u0000\u0000\u0000\u9F6C\u0000\u0000"+
- "\u0000\u0000\u0000\u89D8\u0000\u0000\u0000\u0000"+
- "\uFA59\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92A8\u0000"+
- "\u0000\u0000\u0000\u0000\u9163\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F73\u0000"+
- "\u92AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BE9\u0000"+
- "\u0000\u0000\u0000\u0000\u92A9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD56\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FA8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92A1\u0000\u0000"+
- "\u90E3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0A6\u0000\u0000\u0000\u0000\u0000\u94AB"+
- "\u0000\uFC72\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97C4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92AE\u0000\u0000\u0000"+
- "\u0000\uFA67\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92A2\uFA69\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9268\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8951\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFA6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFA71\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8952\u0000\u0000\u0000"+
- "\u0000\u945A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC6C3\u0000\u0000\u0000\u89DD\u0000"+
- "\uC8A2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6C4\u0000"+
- "\u0000\u0000\u9E52\u0000\u8953\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E55"+
- "\u92BA\u0000\u0000\uC6C5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFA7D\uFAA8\u9A68\uFA47\u0000\u0000"+
- "\uFA7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92BB\u0000\u0000\u0000\uFDB6"+
- "\u0000\uFAA2\u0000\u0000\u0000\u0000\u0000\uFAA3"+
- "\u0000\uFAA4\u9BB4\uFAA6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89DF\u0000\u0000\u0000\uFDDB"+
- "\u0000\u0000\uFAA9\u0000\u8954\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAAB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFC7A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89E0\u0000\u9F4F\u0000"+
- "\u0000\u0000\uC87D\u0000\u0000\u89E1\u0000\u0000"+
- "\u0000\u0000\u0000\uFAB0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FCD"+
- "\uA0E7\u0000\u0000\u0000\u0000\u0000\uFAB1\u89A6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EFA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAB2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAB4"+
- "\u0000\u92C4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BB0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9FAC\u0000\u0000\u0000\u0000"+
- "\u0000\u89E3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD3"+
- "\u89E4\u0000\u0000\u0000\uFAB5\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8955\u0000\u0000\u92C5\u0000\u0000\u0000"+
- "\u8956\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAB3\u0000\u0000"+
- "\u0000\uFAB6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAB7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EDC\u0000\u0000\u0000"+
- "\uFBC4\u9F71\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFABA\u92C7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC6C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89E5"+
- "\u0000\u0000\u0000\u0000\u9F7D\u0000\u0000\u0000"+
- "\u0000\u0000\uA0A9\uFAC4\u0000\u0000\u0000\u0000"+
- "\uC6C7\u0000\u0000\u8957\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFAAA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8958\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BE3\u0000\u8B61"+
- "\u0000\u0000\u0000\u0000\u9AF1\u0000\u0000\u9EB7"+
- "\u0000\uC6C8\u0000\u0000\u0000\uFAD1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAD2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EBA\uFAD4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFADB\u0000\u9CE0\u0000\u0000\u0000\uFBF7\u0000"+
- "\uFBFA\u89E7\uA07A\uFADC\u0000\u0000\uFADD\u0000"+
- "\u89E9\u0000\u0000\u0000\u0000\u0000\uC6C9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE2\u89EB\u0000\u0000\uFAE3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90C8\u0000\u0000\u0000"+
- "\u92DA\u8959\u9CF5\u0000\u0000\u0000\u0000\u0000"+
- "\u895A\uFAE7\u9FA2\u0000\u0000\u0000\u0000\u0000"+
- "\uFAEA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAED\u8FAD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAEF\u96EF\u0000\u9DEC\u0000"+
- "\u0000\u0000\u9DCA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD6D\u0000\u89EC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB44"+
- "\u0000\u0000\u9DE2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EC0\u0000\u9E56\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F79\u9AC7\u0000\u0000\uFAF4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98A1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAF8"+
- "\u0000\u0000\u0000\u89F0\u9E47\u0000\u0000\u9DF7"+
- "\u0000\u0000\u0000\u0000\u9FD3\u0000\u9ACA\u0000"+
- "\u0000\u0000\u0000\u89F1\uFAF9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E5A\u0000\u89F2\u0000\u0000\u0000"+
- "\u0000\u89F3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u925D\u8B51\u92E0\u0000\u0000"+
- "\u89F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8A79\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97A7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u93BA\u0000\u0000"+
- "\u0000\u0000\u0000\u9E58\u0000\u0000\u0000\u0000"+
- "\u89F6\u0000\u0000\u0000\u0000\u0000\u9E57\u0000"+
- "\u0000\u0000\u0000\u89F7\u0000\u8A41\u0000\u0000"+
- "\u89F8\u0000\u0000\uFAF1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB42"+
- "\u0000\uFABF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBA3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAF7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E4E\u0000\u94DC\u0000\u0000\u0000\u0000"+
- "\u0000\u95DA\u9DF8\u9F6A\u0000\u0000\u0000\u0000"+
- "\u0000\u8AB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB46\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8A46\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB47\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9148\u0000\u0000\u0000\u92DE\u0000\u0000\u0000"+
- "\u0000\u8B53\u9DF6\u0000\u9BDA\u0000\u0000\u0000"+
- "\u0000\u9D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FD"+
- "\u99E4\u0000\u0000\u0000\u0000\u0000\u9E43\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DE9\u0000\u8F52\u0000\u0000\u0000"+
- "\u9DF5\u9DF0\u0000\u0000\u0000\u99E7\u0000\u0000"+
- "\u0000\u0000\u0000\u8BBD\u0000\u0000\u0000\u0000";
+ try {
+ while (sp < sl) {
+ char c = sa[sp];
+ int inSize = 1;
+ int bb = encodeChar(c);
+ if (bb == UNMAPPABLE_ENCODING) {
+ if (Character.isSurrogate(c)) {
+ int cp;
+ if ((cp = sgp().parse(c, sa, sp, sl)) < 0)
+ return sgp.error();
+ bb = encodeSupp(cp);
+ if (bb == UNMAPPABLE_ENCODING)
+ return CoderResult.unmappableForLength(2);
+ inSize = 2;
+ } else {
+ return CoderResult.unmappableForLength(1);
+ }
+ }
+ if (bb > MAX_SINGLEBYTE) { // DoubleByte
+ if (dl - dp < 2)
+ return CoderResult.OVERFLOW;
+ da[dp++] = (byte)(bb >> 8);
+ da[dp++] = (byte)bb;
+ } else { // SingleByte
+ if (dl - dp < 1)
+ return CoderResult.OVERFLOW;
+ da[dp++] = (byte)bb;
+ }
+ sp += inSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(sp - src.arrayOffset());
+ dst.position(dp - dst.arrayOffset());
+ }
+ }
- private final static String innerIndex3=
- "\u0000\u0000\u0000\u0000\u0000\u9DEF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DD0\u0000"+
- "\u9FEB\u8DA9\u9DCF\u98E1\u0000\u9DE5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DC8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB4F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9DEB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB54\u0000\uFB55"+
- "\u9AA2\u0000\u8AD6\u0000\u9A5F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EF5\u0000\u0000"+
- "\u0000\u8FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9AD2\u9E6A\u9EE8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BBF\u91C2\u9D62\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9260\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u925E\u91C1"+
- "\u0000\u8AC5\u0000\u0000\u97A3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B6C"+
- "\u0000\u8D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9C54\u0000\u0000\u0000\u0000\u0000\u9DBD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CC5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u895B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB5C\u0000\uFB5B"+
- "\u0000\uFB57\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98C7\u0000\u0000"+
- "\uFB5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CEE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92E2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94A7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD4"+
- "\u0000\u0000\uFB64\uFB76\u0000\u0000\uFB60\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99E5\u0000\u0000\u9AC2"+
- "\u0000\u0000\u0000\u91FB\u0000\u0000\u0000\uA073"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F72"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FCC\u0000\u0000\u0000\u98A5\u92E8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BBC\u0000\u96F3\u0000\u0000\u92E7\u0000\u0000"+
- "\uFC67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B7D\u0000\u0000\u0000"+
- "\u0000\u9BF4\u0000\u0000\u0000\u0000\u0000\u9EF7"+
- "\u0000\u0000\u9EC1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u996F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96F1\u0000\u0000\u8E41\u0000"+
- "\u0000\u0000\u0000\u0000\u954A\u0000\u0000\u0000"+
- "\u97E6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F5"+
- "\u0000\u0000\u0000\u0000\u0000\u92E6\u9F42\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB67\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99A9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE6\u0000"+
- "\u0000\u0000\u0000\uFB69\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97E5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u967D\u0000\u0000\u0000\uFB6C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99A2\u0000\u0000\u0000\u0000\u0000"+
- "\u9ABB\u0000\u0000\u0000\u9A65\u0000\u0000\u944E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB6E\u0000\u0000\u99DF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E3\u0000\u0000\u9254\u0000\u0000\u0000"+
- "\u0000\u0000\u967B\u8AAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BAF\u9EBD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9EE6"+
- "\u0000\u0000\uFB6F\u0000\u0000\u0000\u0000\u0000"+
- "\u8EE1\u0000\u0000\u0000\u0000\u9B7D\u9C7E\u0000"+
- "\u0000\u0000\u0000\uF9D9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92EA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB72\u0000\u0000\u0000"+
- "\uFB71\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u895C\u0000\u98F0\u96F2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB74\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BC1\u0000\u895D\u89DE\u0000\u895E"+
- "\u0000\u0000\uC6CA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE42\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB7B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u895F\u0000\u8960\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9BCD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DD3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u984C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9752\u0000\u0000\u0000"+
- "\u0000\u0000\u95C3\u0000\u0000\u0000\u0000\u9BB6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AB9\u0000\u0000\u0000"+
- "\u97B3\u0000\u0000\u0000\u0000\u0000\u0000\u9F74"+
- "\u92F1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97DF\u0000\u0000\u0000"+
- "\u0000\uFBA6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBAB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9877\u0000\u0000\u0000\u9854"+
- "\u95C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9D55\uFBB2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u957E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9742\u0000\u94E6\u0000\u0000"+
- "\u0000\u0000\u92F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92FD\u0000\u0000\uFBA2\u0000\u0000\u9C51"+
- "\u0000\u0000\u94E9\u985C\u92F0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u944C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u916B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B78\u0000\u0000\u0000"+
- "\u0000\u94E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u984F\u0000\uFBB5\u0000\u0000\u0000\u0000"+
- "\u9271\u0000\u0000\u9365\u0000\u0000\u985B\u0000"+
- "\u0000\u9850\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97BC\u0000\u0000\u0000\u0000\u92F3\u0000"+
- "\u0000\u9340\u984D\u0000\u0000\u0000\u9572\u0000"+
- "\uFDEF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFDC1\u0000\u0000\u0000\u0000\uFBBA\u0000"+
- "\u0000\u92EB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC73\u97B7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBB4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90A7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9741\u92F4"+
- "\u0000\u0000\u0000\uFBBC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9577\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9EE2\u0000\u8F78\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uF9DC\u0000\u0000\u0000\u9672\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EB5\u0000\u0000"+
- "\u0000\u964B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0FA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9575\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90DA\u0000\u0000\u9367\u0000\uFEA4\u0000"+
- "\u0000\u0000\u90DF\u0000\u0000\u0000\u0000\u9354"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8961\u0000"+
- "\u8BB4\u0000\u0000\u0000\u0000\u9DC0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8E48\u0000\uFBC5\u0000"+
- "\u0000\u0000\u0000\u0000\uFBC7\u0000\u0000\u0000"+
- "\uC6CB\u0000\uFA79\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBD2\u8962\u8963"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC7D\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F6B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBCC\u0000\uFEAE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBD1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB75"+
- "\u0000\u0000\u0000\u0000\u0000\uFBD4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBD6\uFBD8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B5D\u0000\u934C\u0000"+
- "\u9AE2\u0000\u0000\u8BC9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBDB\u9FC9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F44\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98ED\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBDD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DF2\u8964\u0000\uFDF2\u0000\u934D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBE7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0F2\u9868\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F58\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D73\u0000\u0000"+
- "\u0000\uFBDE\u0000\u0000\u0000\u0000\u0000\uFBDF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFBE3\u0000\u0000\u0000\u0000\u8DA8\u0000\u0000"+
- "\uFBE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9C75\u0000\u0000\u9878"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8D60\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBE5\u0000"+
- "\u8D61\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8D62\uA0A1"+
- "\u0000\u0000\u0000\u9C40\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98AD\u0000\u0000\u0000\u9EEA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CEB\u0000\u0000"+
- "\u0000\u0000\u0000\uFBE0\u0000\u0000\u9F51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D65\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CF1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC58\u0000"+
- "\u0000\u8D66\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9654\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBE8"+
- "\u0000\u0000\u0000\uC6CC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9FCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBFC\u0000\u9AE4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F75\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBF1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8D69\u0000\u0000\u0000\u0000\u0000"+
- "\u934F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u934E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBF4\u0000\u0000\u0000\u0000\uC6CE"+
- "\u0000\u0000\u0000\uFBC3\u0000\u0000\u8965\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D6A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9353\u0000\u0000"+
- "\u9DFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBFD\u0000\u0000\u0000"+
- "\u9059\uFC40\u0000\uFC41\uFC43\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9361\uFC46\u9362\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D6B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC4C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95B8\u0000\u0000"+
- "\uC6D0\u8BCA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u987A\u0000\u0000\u0000"+
- "\u0000\uC6D1\u0000\uFC51\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC54\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8D6C\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFA61\u0000\u0000\uFC57"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9B70\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA051\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8BCB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u936E\u0000\u0000\u0000\uFCD5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCA9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC61\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8966\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFACB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uF9DA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u937A\u0000\uA0E0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u936B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC6B\u0000"+
- "\u0000\u0000\u0000\u0000\uA0DC\u0000\u0000\u9468"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFC6D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D71"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD64\u0000"+
- "\u0000\u0000\u0000\u99BA\u0000\u0000\u0000\u9AD0"+
- "\u9A61\uA0E5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA05B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AC"+
- "\u0000\u0000\u0000\u0000\u9740\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EF1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D72\u0000\u0000"+
- "\u0000\u0000\uFC76\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96A9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA06E\u0000\u0000\uFCAA\u0000\u0000\u0000"+
- "\uFBCD\u0000\u0000\u0000\uFC74\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA074"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA071\u0000\u0000"+
- "\u0000\uFC79\u0000\u0000\u0000\u0000\u0000\uFC7C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9C50\u0000\u0000"+
- "\u9379\u9378\u0000\u0000\uA0DD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D75"+
- "\u0000\u8D76\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9374\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D77"+
- "\uFCA5\u0000\u0000\uFCA2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90C3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA079\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D79\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BFC"+
- "\u0000\uA076\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8BCD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FF4\u0000\u0000\u9FBA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E45\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93B0\u0000\uA075\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9B46\u0000\uFCAE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA51"+
- "\u0000\u0000\u0000\u0000\u0000\u8D7B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9ED6\u0000"+
- "\u0000\u93AC\u0000\u0000\u0000\u9F5B\u0000\u93A9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA07C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCB2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8AC1\u0000\u0000\u0000\u0000\u0000\u9FB4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCAC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93AD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DC3\u0000"+
- "\u0000\u0000\u8DA2\u0000\u0000\u0000\u9D4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCB6\u0000\u0000\u8DA3\u9E4B\u0000\u9E4D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DA4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AFD\u0000\u0000\u0000\u0000\u0000"+
- "\uFCB5\u0000\uFCC3\u93B2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DA5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93A1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8AC6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A5B\u0000\u0000"+
- "\u0000\u894D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED4"+
- "\u0000\u0000\u0000\u0000\u8A78\u0000\u93AB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F45\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A56\u0000\u0000"+
- "\u0000\uFCBF\u0000\u0000\u0000\uFCC0\u0000\u8EE6"+
- "\u0000\u0000\u8AA4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8943\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93F3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCAB\u9EA2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9DC7\u0000\u0000\u0000\uC6D2\u8BCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCC5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93B3\u0000\uFCCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCC9\u8DAC\u0000"+
- "\uFBC6\u8967\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCCD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF3\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFCD0\u0000\u0000\u95BB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD3\u0000\u0000\uFCD4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAE";
-
- private final static String innerIndex4=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD7\u0000\u0000\u0000\u0000\u0000\u93DB\u0000"+
- "\u0000\u0000\u0000\uFE63\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93D5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCDA\u0000\u0000\u0000"+
- "\u9B71\u0000\u0000\uFCDD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DAF\u0000\u0000\u0000\uFAF2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93D8\u0000\u0000\u0000\uFCDF"+
- "\u0000\u0000\u0000\u93D3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCE1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E76\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFC62\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93D1\u0000"+
- "\u0000\u0000\u8DB1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9859\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB52\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB53\u0000\u0000"+
- "\u0000\u0000\u0000\uFB4D\u0000\u0000\u9CBF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B72"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB50\u93BE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9DF1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCEB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA0BB\u0000\u9B7E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DB3\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9AE8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EDC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFA50\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E7\uFCF3\u0000\u0000\u0000\u0000\uFCF2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93E5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9A59\u0000\u0000\u0000\u8DB5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFD4D\u0000\u0000\u0000"+
- "\u0000\uFD5E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9547\uFCF6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9250\u0000\u0000\u0000\u0000\u8968\u0000"+
- "\u8DB6\uFCFB\uA07D\u98FC\u8969\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE4F\u0000\u0000"+
- "\u9256\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAC9\u0000\u0000\u93E8\u0000"+
- "\u0000\u0000\uFCF8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CE3\uFDA9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC44\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9640"+
- "\u0000\u0000\u8DB8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9B4A\u8FB9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCFE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u896A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DB9\u0000\u0000\u0000"+
- "\u917E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB7C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93E7\u0000"+
- "\u0000\u97EF\u0000\u0000\u0000\uFE4A\u0000\u0000"+
- "\u0000\u0000\u0000\uFD45\u0000\u96A5\u0000\u0000"+
- "\u0000\u0000\uFEE0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD48\uFD47\uFEF2\uFE6A\u0000\u0000\u0000\u0000"+
- "\u0000\u8DBD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BA1\u0000\u9AB7\u8EFC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FA1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAAD\u0000"+
- "\u0000\u0000\u0000\u8DBE\u0000\u0000\u89A4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AD9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD4E\u0000\u0000\u8DC0\u0000\u0000\u97F0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u93B4\uFD44\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FA7\u0000\u0000\u0000\u0000\u8DC2\u0000\u0000"+
- "\u0000\u0000\u99B6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD52\u0000\u0000\u0000\u0000\u0000\u0000\u8DC1"+
- "\u0000\u0000\u8E46\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0D1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FCA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92CF\u0000\u0000\u0000\u9CF4\u8DC4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD41\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9B4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD57\uFCEF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CDE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFD42\u986C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97F9\u0000\u9558\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u985E\uFE7B\u94CD\u0000\u0000"+
- "\u0000\u0000\u0000\u93EE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD5A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93F5\u0000\u0000\u0000"+
- "\u0000\u0000\u93EF\u8EEA\u0000\u0000\u0000\u8F5B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DC6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DC8\u0000\u0000\u8DC7\u0000\u0000\u0000"+
- "\u0000\u0000\u93F7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DC9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBF2\u0000\u0000\u0000\u0000\u9670"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DCB\u0000\u0000\u0000\uFD5C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F65"+
- "\u0000\u0000\u0000\u8DCD\u0000\u0000\u0000\u0000"+
- "\u0000\u9DA8\u94F9\u0000\u0000\u8DCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93EA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD5F\u93F0\u9FB6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DCF\u0000\u0000\u0000"+
- "\u9763\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DD0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u93F1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD62\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD65\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FDB\u0000\u0000\u0000\u0000\u93F8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF7"+
- "\u0000\u0000\u0000\u0000\uFD66\u0000\u0000\u0000"+
- "\u0000\u0000\u8BCF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DD1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DD2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFD71\u0000\u0000\u0000"+
- "\u0000\uFD6F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DD3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FE7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FD0\u0000\u0000\u0000\u8BD0\u0000\uFD72"+
- "\u0000\u9CAE\u8BD1\u0000\u0000\u8ADB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u95CE\u0000\uFD76\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB62\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DD4\u0000\u0000"+
- "\u0000\uFD78\u0000\u0000\u0000\u0000\u0000\u8EE3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9076"+
- "\u0000\u0000\u98C6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DD5\u0000\u0000\u0000\u0000\u97D1"+
- "\u0000\u0000\u9EB6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAC7\u0000\u0000\uA042\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9873"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FFC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DD7\u0000\u0000\u92FB\u8DD8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u944F\u0000\u8DD9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u896B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97CE"+
- "\u0000\u0000\u0000\uFAF3\uFDAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBAF\u92B7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DDA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFDAD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DDC\u9444\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DDD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97D5\u0000\u944A\u0000\u0000\u0000"+
- "\u0000\u0000\u944D\u0000\u0000\u0000\u0000\u97CB"+
- "\u0000\u0000\u0000\u0000\u0000\u8DDE\u0000\u0000"+
- "\u8DDF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DE0\uFEF9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDC0"+
- "\uFCF9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92B3\u0000"+
- "\u0000\u0000\u0000\u0000\uFDAF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DE1\u0000"+
- "\u0000\u0000\u0000\u95D3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u89C1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD68\u0000\u0000"+
- "\u9CB7\u0000\u0000\u8DE3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAC0\u8DE5\uFA64\u0000\u8947\u0000\u0000"+
- "\u0000\u0000\u8DE4\u0000\u0000\u0000\u0000\u0000"+
- "\u8DE7\u8DE8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFDC7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDB0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9445\u97D6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC6\u9844"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DE9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DEA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE50\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DA7\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCF\u0000\u0000\u0000"+
- "\u0000\u95D2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DED\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCBA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFDC5\u0000\uFDD2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CDC\u0000\u0000"+
- "\u0000\u0000\u0000\u95CF\u0000\u0000\u8DEE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDD4\u0000\u0000\u0000\u0000"+
- "\u0000\u96EC\u96EB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90B6\u0000"+
- "\uFDC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98AB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96EE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDE0\u0000\u0000\u0000\u0000"+
- "\u8DF6\u0000\u0000\u0000\u8DF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FFA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97D0"+
- "\u0000\u0000\u0000\u0000\u8BD2\u0000\u0000\u8DF8"+
- "\u0000\u0000\u0000\u0000\u0000\u90D9\u0000\u0000"+
- "\u0000\uFAF0\u0000\u0000\u0000\u0000\uFDE1\u8DF9"+
- "\u0000\uFDE3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFA\u0000\uFB63\u0000\u0000\u0000\u90A6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9970\u0000\u0000\u91EB\u0000\u9770\u986F\uFDE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98F2\u0000\u9AFC\u896C\uFDFD\u0000\u0000"+
- "\u995E\u0000\u0000\u0000\u95BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDE4\u0000\u0000\u0000"+
- "\u91E6\u0000\u0000\u0000\u0000\uFDE5\uFDE6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDE7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9454\u0000\u0000\u0000\u99B8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9346\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9863\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95BC\u0000\uFDED\uFDF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9870\u96F6\u8EA9\u0000\u0000"+
- "\u0000\u0000\u0000\u9451\u0000\u0000\u8E43\u0000"+
- "\u8B5A\u0000\u0000\u0000\u0000\uFDEE\u0000\u0000"+
- "\u0000\u0000\uFDF0\u0000\u0000\u0000\u0000\uFDF4"+
- "\u0000\u9BF5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u977E\u0000\u0000\u0000\u0000"+
- "\u0000\u9BD5\u0000\u9AC3\u0000\u97C8\uA0DB\u91D0"+
- "\u0000\u0000\u9FE4\u0000\u8FDD\u0000\u91E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98E0\u0000\u0000\u0000\u92CA\u0000\u9857\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFDEB\u0000"+
- "\u9B49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D76\u9EAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CCC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDEA\u0000\u0000\u8DF1"+
- "\u0000\u0000\uFDFB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8E53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFACF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96F9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98BF\u9E49\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9BCA\u0000\u0000\u0000\u0000\uFDFE\u92DC"+
- "\u0000\u0000\u0000\u0000\u0000\uFE41\u91CC\u91E2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFE44\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8BD3\u0000\u0000\uFE47\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFE48\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9455\u0000\u0000\u0000\u0000\uFE4B\u0000\uFE4C"+
- "\u0000\u0000\u0000\u0000\u8DBF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E78\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE51\u0000\u0000\u0000\u0000\u9456"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D61"+
- "\u0000\u0000\u0000\u0000\u9457\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9966"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BD5\u0000\u0000"+
- "\u0000\u0000\uA069\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA049\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA04C\u0000\u9E65\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFE58\u0000\u9975\uFE53\uA065\u0000\uFE59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B7\u98B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98BA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98BB\u0000\u0000\u0000\u0000\u0000\u0000\u9FBC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA04A\u0000\u0000\u9EC7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98AE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u92D6\u0000\u0000\u0000\uFAE1\u0000\u91D4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFADE"+
- "\u0000\u0000\uFE5B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE5E\u0000\u0000\u0000\u0000\uFBD7\uFE5A"+
- "\u94C5\u0000\u0000\u0000\u0000\uFACA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98C1\u975C\u0000\uFE74\u0000\u9773\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA46"+
- "\u0000\u0000\u0000\u9764\u0000\u0000\u0000\uFE68"+
- "\u0000\u964E\u0000\u9765\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89A1\u95FA\u0000\u92D4\uFE69\u0000\uFB45"+
- "\u0000\u98C8\u0000\u0000\u90EF\u0000\u98C9\u98CA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946D"+
- "\u94B7\uFE6C\u0000\u0000\u946B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92FC\u0000\u95EB\u0000\uFE73"+
- "\u976E\uFE5F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDBD\u0000\u0000\u92D5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFEB9\u0000\u0000"+
- "\uFE71\u0000\u0000\u0000\u0000\uFBBB\u0000\u0000"+
- "\u947A\u0000\u0000\u95FB\uFE77\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFE79\u0000\uFE75\u0000"+
- "\u0000\u0000\u945D\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE7C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9344\u8EA6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92D3\u0000\u94B8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFC71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u975E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEA7\u0000\u0000\u0000\u946A\u0000\u0000\u0000"+
- "\u93E3\u0000\u0000\u98CF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0D9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0BF\uA04D\uA0B8\u0000\u0000\u0000\u0000\u0000"+
- "\uA0CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEA9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C3\u0000\u0000\u0000\u0000\uFEAB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9DF4\u896D\u0000\u0000"+
- "\u0000\u0000\u0000\u9C7B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u98D2\u0000\u0000\u0000\u9FA9\u0000"+
- "\u0000\u0000\uFEB2\u0000\u0000\uFEB1\u0000\u0000"+
- "\u0000\u97D9\u0000\uA0C4\u0000\u9476\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9978\u0000\u0000\u0000\u0000\u0000\u0000\uFEB3"+
- "\u0000\u0000\u0000\u0000\u0000\u98D3\uFEB4\u0000"+
- "\u0000\u0000\u98D4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9471\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98D5\uFEB8\u0000"+
- "\u0000\u0000\uC6D4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEBA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E5C\u0000\u0000\uFEBB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA044\u0000\u0000\u0000\u0000"+
- "\u98D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98D8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex5=
- "\u0000\u0000\uFEBC\u0000\u0000\u0000\u0000\u9FFE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEBD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9DDD\u0000\u0000\u0000\u0000"+
- "\u9EE1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98DA\u9DDF\uFEBF"+
- "\u0000\uFEBE\u0000\u0000\u9EEB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E59\uA05C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC0"+
- "\u0000\u0000\u0000\u9477\u98DC\u0000\uFEC1\u0000"+
- "\u0000\u0000\u98DE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFEC8\u0000\u0000\u0000\uFEC9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFECA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFECB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FC2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98C4\u0000\u94B0\u94B1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFED1\u0000"+
- "\u0000\u0000\u0000\u0000\uA0C1\u0000\uFED2\u0000"+
- "\u0000\u0000\u0000\uA0CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFED3\u0000\u0000\u98E5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFED6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91E4\u0000\u0000\u0000\u0000\u8FC7"+
- "\u94AE\u0000\u8A4F\u94B2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FD4\u0000\u0000\u0000\u0000"+
- "\u98EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9DE0\u0000\u0000\u0000\u0000\u98EE\u0000"+
- "\u0000\u0000\u0000\u95C4\u0000\uFCE8\u0000\u0000"+
- "\u0000\u0000\u0000\u98EF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAD8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEDC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0AE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9D4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F1\u0000\u0000\u0000\u98F3\u0000\u94C1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98F5\u0000\u0000\uFA4F\u96E2\u0000\u0000"+
- "\u0000\u0000\u9450\u0000\u96A2\u0000\u0000\u98F6"+
- "\u0000\u0000\u0000\u96E5\u0000\u0000\u0000\u0000"+
- "\u0000\u98F7\u0000\uA046\u96E3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EE4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF9D6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u94C3\u0000\u0000\u0000\u0000\u94C2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE1"+
- "\u0000\uFEE9\u0000\u0000\u0000\u0000\u96E4\u0000"+
- "\u89AC\u96DB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94C4\uFEE3\u0000\u0000\u0000\uFEE7"+
- "\u9FFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93C9\u0000"+
- "\u94E8\uFB56\u0000\u0000\u0000\u90C5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0A8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEE5\u0000"+
- "\u0000\u0000\u98FD\u98FB\uFEE8\u0000\u8EBF\u0000"+
- "\u0000\u0000\u0000\u8BD8\uFEF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F68\u94C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DEA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC69\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CDA\u0000"+
- "\uFEF3\u0000\u0000\u9C72\u0000\u0000\uFEF0\u89C9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9941\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9942\u0000\u0000\u0000\uFEF5\u0000\u91D7"+
- "\u0000\u0000\u0000\u0000\u0000\u94CC\u0000\u0000"+
- "\u0000\uFEF8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97A8\u0000\uFEFC\u0000"+
- "\u0000\u0000\u0000\u0000\uFDBF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEFE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96D1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94D5\u0000\u0000\u94D0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9944\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0B3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94CF\u0000\u0000\u0000\u9FFA\u0000"+
- "\u0000\u0000\u0000\u91E5\u0000\u9C6A\u0000\u0000"+
- "\u0000\u8E49\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E4C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E4D\u0000\u0000"+
- "\u0000\u0000\u0000\u9A73\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9947\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8E50\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8E4F\u9949\u0000\u0000\u0000"+
- "\u0000\u0000\u8E51\u8E52\u0000\u0000\u0000\u0000"+
- "\u9AB2\u89A5\u0000\u0000\u0000\u0000\u0000\u994C"+
- "\u0000\u0000\u0000\u9FF8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E56\u994D\u91CA\u8E57\u0000\u0000"+
- "\u0000\u0000\u94E1\u0000\u0000\u0000\u0000\u9047"+
- "\u0000\u8FD8\u8E58\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u94EB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8E5C\u9553\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FE5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F56"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u954F"+
- "\u0000\u8E5E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u996A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C64\u9CD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E5D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9950\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9951\u0000\u0000\u8E62"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9952\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E68\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E61\u9F59\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BB3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5D"+
- "\u8E66\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E6E\u0000\u9F64\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9953\u0000\u0000\uFAB8\u0000\u0000"+
- "\u0000\u0000\u0000\u9954\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F61\u0000\u8E72\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA06B\u0000\u0000\u0000\u0000\u9F40\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94ED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94EE\u0000\u0000"+
- "\u9FBD\u0000\u0000\u0000\u8E7B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9957\u94F7\u0000\u9F5F\u0000"+
- "\u0000\u0000\u0000\u8E73\u0000\u0000\u9F62\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u94F6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9958\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8E75\uF9DB"+
- "\u0000\u0000\u0000\u0000\u9072\u0000\u94F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u995A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0B0\u0000\u0000\u0000\u0000\u8E79"+
- "\u0000\u8E78\u0000\u0000\u0000\u94F3\u0000\u0000"+
- "\u0000\u0000\u0000\u98AF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0B2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8E7A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u995C\u0000\u0000"+
- "\u0000\u0000\u0000\u8E7C\u0000\u8E7D\u0000\u0000"+
- "\u0000\u8BD9\u0000\u0000\u89A2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9ED7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0B6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E42\u0000\u0000\u8EA4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EA7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9542"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u987D\u0000\u0000\u0000"+
- "\u9755\u0000\u0000\u8EA8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89A3\u0000\u9960"+
- "\u9962\u0000\u0000\u94FC\u9961\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u94FA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8EAE\u8EB2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9963\u97AA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94FB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EBB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9876\u0000\u8EA1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8EB7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DA6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9EB0\u0000"+
- "\u0000\u0000\u8EB8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D70"+
- "\u0000\u0000\u0000\u0000\u896E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u896F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8970\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8971"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8972"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8973"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8974\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8975"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8EBC\u8EBD\u0000\u0000\u0000\u0000\u0000\u8EBE"+
- "\u0000\u9DD1\u0000\u0000\u0000\u0000\u94FD\u0000"+
- "\u0000\u0000\u8BD7\u8BDA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FE9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDA8"+
- "\u0000\u0000\u0000\u8AE7\u0000\u0000\u0000\u8EC2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EC4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9964\u0000"+
- "\u0000\u0000\u0000\u0000\u9965\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u954E\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98B3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8ECB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BDF\u0000\u0000\u0000\u0000\u0000"+
- "\u8ECE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8ECF\u0000\u0000"+
- "\u9968\u0000\u0000\u0000\u0000\u9969\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u996B\u8ED1"+
- "\u0000\u996C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8ED4\u8ED5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u996D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0BE\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED6\uA0BC\uA0B5\u0000\u0000\uA0B4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BE0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89B5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EDD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5D\u9971"+
- "\u0000\u0000\u0000\u0000\u89AE\u9DE8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9565\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9972\u0000\u0000\u8B5C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u89B1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0C0\u0000\u0000\u0000\u8EDF"+
- "\u0000\u9566\u0000\u0000\u9974\u0000\u9976\u0000"+
- "\u0000\u0000\u9977\u0000\u9979\u0000\u0000\u9DDA"+
- "\u0000\u0000\u8EE0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u935C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DE6\u0000\u8B5F\u0000\u0000\u9563"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9567\u0000\u0000\u0000\u0000\u0000"+
- "\u9DE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u997C\u0000"+
- "\u0000\u997D\u997E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8B5B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99A3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99A4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99A6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A8\u0000\u0000"+
- "\u0000\u0000\u8ABE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E61\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0C8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8EE8\u0000\uA0BA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD77\u0000"+
- "\u0000\u8EEE\u0000\u0000\u0000\u9EBF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u89C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99AC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u956B\u0000\u0000\u956C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99AF\u0000"+
- "\u0000\u994A\u8976\u8F48\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBEE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99AE\u0000"+
- "\u0000\u0000\u8EFB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B52\u0000\u0000\u0000"+
- "\u0000\u0000\u99B0\u0000\u0000\u0000\u0000\u8977"+
- "\u8F41\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99B1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8F49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFA4D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DE4"+
- "\u0000\u0000\u0000\u0000\uFBE9\u9B54\u0000\u99B2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9E68\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F4A\u0000\u8F42\u0000\u0000\u8F51\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9846\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99B4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8EF5\uFD55\u0000\u0000\u9CCD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8978"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8F53\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8F6F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8E63\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8F56\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE76\u0000\u0000\u0000\u0000\u9FC6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAAC\u0000\u0000"+
- "\u0000\u0000\u0000\u8F58\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9848\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9665\u0000\uFA6C\u0000"+
- "\u9DE7\u0000\u0000\u0000\u9E62\u0000\u0000\u0000"+
- "\u96CC\u8E67\u0000\u0000\uFC75\u0000\u987E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFDB9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97FC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F9\u0000\u8F66\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u956E\u0000\u9245\u0000\u0000"+
- "\u8F60\u0000\u0000\u0000\u9ED1\u0000\u0000\u0000"+
- "\u0000\u0000\uFECD\u0000\u99B9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8F62\u974C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91C7"+
- "\u955F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99BB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E6D\u8F71\u0000\u0000\u94CB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95B1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AF2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96C3\u99BD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0CF\u0000\u0000\u0000\u8F6D\u0000"+
- "\u0000\u99BE\u8EF4\u0000\u8F72\u95E4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99BF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9242\u0000\uFBA5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99C0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDB4\u8F77\u0000\u0000\u0000"+
- "\u99C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFAB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8F40\uFA44\u0000\u0000\u0000"+
- "\u0000\u0000\u99C2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8F5C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C4"+
- "\u99C5\u0000\u0000\u8F7B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FA3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99C6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96CD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96C7\u0000\u0000\u0000";
+ protected CoderResult encodeBufferLoop(CharBuffer src, ByteBuffer dst) {
+ int mark = src.position();
+ try {
+ while (src.hasRemaining()) {
+ int inSize = 1;
+ char c = src.get();
+ int bb = encodeChar(c);
+ if (bb == UNMAPPABLE_ENCODING) {
+ if (Character.isSurrogate(c)) {
+ int cp;
+ if ((cp = sgp().parse(c, src)) < 0)
+ return sgp.error();
+ bb = encodeSupp(cp);
+ if (bb == UNMAPPABLE_ENCODING)
+ return CoderResult.unmappableForLength(2);
+ inSize = 2;
+ } else {
+ return CoderResult.unmappableForLength(1);
+ }
+ }
+ if (bb > MAX_SINGLEBYTE) { // DoubleByte
+ if (dst.remaining() < 2)
+ return CoderResult.OVERFLOW;
+ dst.put((byte)(bb >> 8));
+ dst.put((byte)(bb));
+ } else {
+ if (dst.remaining() < 1)
+ return CoderResult.OVERFLOW;
+ dst.put((byte)bb);
+ }
+ mark += inSize;
+ }
+ return CoderResult.UNDERFLOW;
+ } finally {
+ src.position(mark);
+ }
+ }
- private final static String innerIndex6=
- "\u0000\u0000\u8FA5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFABB\u0000\u0000"+
- "\u9570\u0000\u0000\u0000\u9368\u0000\u8F7E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FAA\u0000\u0000\u0000\u0000\u0000\u0000\uA050"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90D3\u0000\u0000\u9556\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FB8\u0000\u0000\u0000"+
- "\u0000\u0000\u99C8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FAF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99C9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9579\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9F49\u0000\u0000"+
- "\u0000\u0000\u99CA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99CB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9DD5\u8FB0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFA7A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5F\u0000"+
- "\u0000\u0000\u0000\u99CD\uA0C9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9ADB\u0000\u0000"+
- "\u0000\uA0C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FB4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0C7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA043\u0000"+
- "\u0000\u0000\u8FB5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FB2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA061\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E5E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FB6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FE8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CB2"+
- "\u0000\u0000\u0000\u0000\u0000\u957C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FC7\u0000\u0000\u8FBB\u8FBC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FEC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FC0\u0000"+
- "\u936A\u0000\u0000\u0000\u8BE4\u9C7C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95A1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEEC\u0000\u0000\u95A3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC1\u0000\u0000\u0000"+
- "\uA052\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99D0\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC3\u8FC4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95A4"+
- "\u0000\u0000\u0000\u0000\u0000\u8FC6\u0000\u9E60"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uF9D8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95A5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CB3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99D1"+
- "\uFEF1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99D2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CC2\u0000\u0000\u0000\u99D3"+
- "\u0000\u0000\u0000\u0000\u0000\u95A7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95A9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95A6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98E2\u0000\u0000\u0000\u0000\u0000\u0000\u8FC9"+
- "\u0000\uA0C2\u8FCA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99D4\u0000\u0000\uA0B9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9B58\u0000\u8FCD"+
- "\u0000\uA0D4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FCE\u0000\u0000\u0000"+
- "\u0000\u8BE5\u0000\u0000\u0000\u0000\u8979\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FD0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95B6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99D6\u0000\u95E5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99D7\u0000\u0000\u0000\u0000\u95B5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0CA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FFD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA058\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FD6\u0000\u0000\u0000\u99D8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FD3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FE5\u0000\u0000\u0000\u0000\u0000\u8FE9"+
- "\u0000\u0000\u0000\u0000\u99D9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u927C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C45\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FDE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FDF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA04B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FE2"+
- "\u0000\u0000\u0000\uA0CC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FE3\u8FE4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BC4\u0000"+
- "\u0000\u0000\u9BFC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u964C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9AF6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FE8\u0000\u0000\u0000\u0000"+
- "\u8BE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u897B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99DA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FED\u0000\u0000\u0000\u95C0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0CB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E48\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99DB\u0000\u8FF3\u0000"+
- "\u0000\u0000\u0000\u8FF9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95C1\u0000\uA04E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99DC\u0000\u0000\u0000\u0000\uA064"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FF7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89B0\uA048\u0000\u0000\u0000"+
- "\u0000\u8FFB\u8FF6\u0000\u0000\u0000\u0000\u0000"+
- "\u9DDC\u0000\u0000\u0000\u99DD\u8BE8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92C1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0D2\u0000"+
- "\u0000\u9040\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8AC4\u0000\u0000\u99E0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FF0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FF3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DBF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FF6\u0000\u95C8\u0000\u0000\u9E5A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99E3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FF1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8AA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99E6\u0000\u0000\u0000\u9FF7\u0000\u9FED"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A5C\u0000"+
- "\u9DAE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95C9"+
- "\u0000\u0000\u0000\u0000\u0000\u9048\u0000\u0000"+
- "\u99E8\u0000\u0000\u0000\u0000\u0000\u9049\u0000"+
- "\u0000\u0000\u0000\u0000\u90B1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u904A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99EA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9BD1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99EB\u0000\u99EC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99ED\u0000\u0000"+
- "\u0000\u0000\u99EE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u904C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u904D\u0000\u0000"+
- "\u95CB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95CC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9F78\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897C\u897D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u995D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9B5A\u0000\u0000\u0000\u0000\u9050\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9054\u0000\uC6D6\u9AA8\u99EF"+
- "\uFEEB\u9DA3\u9DA1\u9943\u9945\u0000\u9D7D\u0000"+
- "\u0000\u99F0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99F1\u0000\u99F2\u0000\u0000\u0000"+
- "\u9D60\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0A3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u905B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9EDB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D79\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99F3\u0000\u0000\u0000\u9062"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9F55\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BF9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9065\u0000\u0000\u96E0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98BE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9068\u0000\u0000\u0000\u0000\u0000\u906C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95D8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u906A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FB2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FAE\u0000\u0000\u9FB0\u0000\u89AD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u906E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E71\u0000\u0000\u0000\u0000\u0000\u9E4A\u0000"+
- "\u0000\u0000\u0000\u0000\u9FDC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89AB\u0000\u9FB8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9070\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8B63\u0000"+
- "\u0000\u0000\u0000\u95DC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9071\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC5E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8949"+
- "\u0000\u0000\u0000\u0000\u0000\u965B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94A6\u0000\u0000\u0000\u8FD5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E73\u0000\u0000\u0000\u0000\u0000\u9075\u0000"+
- "\u0000\u0000\u0000\u99F7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99F9\u0000\u9663\u95B9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94D4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCFA\u0000\u0000\u0000"+
- "\u0000\u9077\u0000\u0000\u90AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9D4D\u0000\u0000"+
- "\u99FA\u0000\u0000\u0000\u0000\u92E3\u0000\u97BB"+
- "\u0000\u0000\u9078\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99FB\u0000\u0000\u97E0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96DC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9CA8\u0000\u0000\u9772\u0000\u0000\u0000"+
- "\u0000\u9440\u0000\u0000\u0000\u0000\u0000\u92F2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99FD\u0000"+
- "\u0000\u99FC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF9D7\u964A\u0000\u0000\u0000\u96D8\u99FE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u904B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFA41\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A40\u0000\u975B\u0000\u0000"+
- "\u0000\u0000\u0000\u9A41\u91DD\u0000\u0000\u0000"+
- "\u0000\u0000\u93FC\u9A42\u9A43\u0000\u9659\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A44\u0000\u0000"+
- "\u0000\u0000\u0000\u9051\u0000\u0000\u0000\u94BF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90A2\u0000\u0000\u0000"+
- "\u9CAB\u9776\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC55\uFE45\u94A8\u9A45\uFA4B\u9DE1\u0000\u0000"+
- "\u96D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9774"+
- "\u0000\u0000\uFDF5\u0000\u0000\u0000\u92E5\u0000"+
- "\u9645\u91DA\u0000\u90A3\u0000\u0000\uA05F\u0000"+
- "\u0000\u0000\u0000\u90AF\u97BF\u0000\u0000\u0000"+
- "\u914C\u0000\u0000\u0000\u0000\u967A\u0000\u0000"+
- "\u0000\u91DE\u0000\u0000\u9A46\uFEB0\u9779\u946C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9858\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9266\u0000\u0000\u0000"+
- "\u93FB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A47\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9749\u0000\u0000\u9748\u0000\u934A\u0000\u9CE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9264\u0000"+
- "\u0000\u0000\u0000\u91DF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB79\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96D7\u0000\u0000\u0000\u0000"+
- "\u9343\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFDCB\uFE7A\u0000\u91DB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97AF\u0000\u0000\u95DD\u0000\u0000\u0000"+
- "\u9348\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A4B"+
- "\u0000\u0000\u0000\uFC45\u0000\u9A4D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u91BC\u90E2\u90B4\u95E1"+
- "\u0000\u0000\u0000\u0000\u0000\u9A4E\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A4F\u0000"+
- "\u0000\u0000\uFE40\uFE43\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96DD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A51\u0000\u0000\u0000"+
- "\u96A7\u0000\u0000\u90B0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9C4E\u0000\u9443"+
- "\u0000\u0000\u0000\u0000\u8EBA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A52\u0000\uFCC1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BE9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CAF"+
- "\u0000\u0000\u8BFD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9ABC\u0000\u9AB8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9AA7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A53\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D74"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BEA\u0000\u0000\u0000\u0000\u0000\u0000\u8BEB"+
- "\u0000\u0000\u0000\u0000\u0000\u90B2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95E9\u95E8"+
- "\u0000\u95E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90B5\u0000\u9A54\u0000\u0000\u0000\u90B3\u95E7"+
- "\u0000\u0000\u8B50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A56\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
+ protected CoderResult encodeLoop(CharBuffer src, ByteBuffer dst) {
+ if (src.hasArray() && dst.hasArray())
+ return encodeArrayLoop(src, dst);
+ else
+ return encodeBufferLoop(src, dst);
+ }
+
+ static char[] C2B_UNMAPPABLE = new char[0x100];
+ static {
+ Arrays.fill(C2B_UNMAPPABLE, (char)UNMAPPABLE_ENCODING);
+ }
- private final static String innerIndex7=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
- "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
- "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
- "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BC4\u0000\u0000\u0000\u0000\u0000\u90DE"+
- "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
- "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
- "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
- "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
- "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
- "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
- "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
- "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
- "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
- "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
- "\u0000\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
- "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
- "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
- "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
- "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
- "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
- "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
- "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
- "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
- "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
- "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
- "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
- "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
- "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
- "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
- "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
- "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
- "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
- "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
- "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
- "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
- "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
- "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
- "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
- "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
- "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
- "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
- "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
- "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
- "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
- "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
- "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
- "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
- "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
- "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
- "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
- "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
- "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
- "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
- "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
- "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C8\u0000\u0000\u8BF8\u0000\u0000\u8DAA"+
- "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFA40\u0000\uFA42\uFA43\u0000\uFA45\u0000\u0000"+
- "\uFA48\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
- "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
- "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
- "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
- "\uFA68\u0000\u0000\uFA6B\u0000\uFA6D\uFA6E\u0000"+
- "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
- "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAA5\u0000\uFAA7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
- "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
- "\u0000\u0000\uFACC\uFACD\uFACE\u0000\uFAD0\u0000"+
- "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
- "\uFADA\u0000\u0000\u0000\u0000\uFADF\uFAE0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE8\uFAE9"+
- "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
- "\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFB40\uFB41\u0000"+
- "\uFB43\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
- "\uFB4B\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFB5D\uFB5E\uFB5F\u0000\uFB61\u0000"+
- "\u0000\u0000\uFB65\uFB66\u0000\uFB68\u0000\uFB6A"+
- "\uFB6B\u0000\uFB6D\u0000\u0000\uFB70\u0000\u0000"+
- "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\uFB7A"+
- "\u0000\u0000\uFB7D\u0000\uFBA1\u0000\u0000\uFBA4"+
- "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
- "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
- "\u0000\uFBB6\uFBB7\u0000\uFBB9\u0000\u0000\u0000"+
- "\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\u0000\u0000"+
- "\u0000\u0000\u0000\uFBC8\uFBC9\uFBCA\uFBCB\u0000"+
- "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\uFBD3\u0000"+
- "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\uFBDC"+
- "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
- "\u0000\uFBE6\u0000\u0000\u0000\uFBEA\uFBEB\uFBEC"+
- "\uFBED\u0000\uFBEF\uFBF0\u0000\u0000\u0000\u0000"+
- "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
- "\u0000\uFBFE\u0000\u0000\uFC42\u0000\u0000\u0000"+
- "\u0000\uFC47\uFC48\uFC49\uFC4A\uFC4B\u0000\uFC4D"+
- "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
- "\uFC56\u0000\u0000\uFC59\uFC5A\uFC5B\uFC5C\uFC5D"+
- "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\uFC64\uFC65"+
- "\uFC66\u0000\uFC68\u0000\uFC6A\u0000\u0000\u0000"+
- "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
- "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\uFCA6\uFCA7"+
- "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
- "\u0000\uFCB1\u0000\uFCB3\uFCB4\u0000\u0000\uFCB7"+
- "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
- "\u0000\u0000\uFCC2\u0000\uFCC4\u0000\u0000\uFCC7"+
- "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\uFCCF"+
- "\u0000\uFCD1\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
- "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
- "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
- "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\uFCEE\u0000"+
- "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\uFCF7"+
- "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
- "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
- "\uFD49\uFD4A\uFD4B\uFD4C\u0000\u0000\uFD4F\uFD50"+
- "\u0000\u0000\uFD53\uFD54\u0000\u0000\u0000\uFD58"+
- "\uFD59\u0000\uFD5B\u0000\uFD5D\u0000\u0000\uFD60"+
- "\uFD61\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
- "\uFD69\uFD6A\uFD6B\uFD6C\u0000\uFD6E\u0000\uFD70"+
- "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
- "\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\uFDA2"+
- "\uFDA3\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
- "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
- "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
- "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
- "\u0000\uFDC4\u0000\uFDC6\u0000\uFDC8\uFDC9\uFDCA"+
- "\u0000\u0000\u0000\uFDCE\u0000\uFDD0\uFDD1\u0000"+
- "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
- "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFDE8\uFDE9\u0000"+
- "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
- "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
- "\u0000\uFE4D\uFE4E\u0000\u0000\u0000\u0000\u0000"+
- "\uFE54\uFE55\uFE56\uFE57\u0000\u0000\u0000\u0000"+
- "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
- "\uFE64\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
- "\u0000\uFE6D\uFE6E\u0000\uFE70\u0000\uFE72\u0000"+
- "\u0000\u0000\u0000\u0000\uFE78\u0000\u0000\u0000"+
- "\u0000\uFE7D\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
- "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
- "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
- "\uFEB6\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\uFEC5"+
- "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
- "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
- "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
- "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
- "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
- "\uFEF6\u0000\u0000\u0000\uFEFA\uFEFB\u0000\uFEFD"+
- "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u8E45\u0000"+
- "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
- "\u0000\u0000\u0000\u0000\u0000\u8E54\u8E55\u0000"+
- "\u0000\u0000\u8E59\u0000\u8E5B\u0000\u0000\u0000"+
- "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
- "\u0000\u0000\u0000\u8E6A\u8E6B\u8E6C\u0000\u0000"+
- "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
- "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EA2\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u8EAF\u0000"+
- "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
- "\u8EB9\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
- "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u8EC7\u8EC8"+
- "\u8EC9\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u8ED8"+
- "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
- "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
- "\u8EE9\u0000\u8EEB\u8EEC\u8EED\u0000\u8EEF\u8EF0"+
- "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
- "\u8EF9\u8EFA\u0000\u0000\u8EFD\u8EFE\u0000\u0000"+
- "\u0000\u8F43\u8F44\u8F45\u8F46\u8F47\u0000\u0000"+
- "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u0000"+
- "\u0000\u0000\u8F54\u8F55\u0000\u0000\u0000\u8F59"+
- "\u8F5A\u0000\u0000\u8F5D\u8F5E\u8F5F\u0000\u8F61"+
- "\u0000\u8F63\u8F64\u0000\u0000\u8F67\u0000\u0000"+
- "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u8F70\u0000"+
- "\u0000\u8F73\u8F74\u8F75\u8F76\u0000\u0000\u8F79"+
- "\u8F7A\u0000\u8F7C\u0000\u0000\u8FA1\u8FA2\u0000"+
- "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u8FA9\u0000\u8FAB"+
- "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA\u0000"+
- "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u8FC2\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
- "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u8FDB"+
- "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
- "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u8FEB"+
- "\u0000\u0000\u8FEE\u8FEF\u8FF0\u8FF1\u8FF2\u0000"+
- "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
- "\u8FFC\u8FFD\u0000\u0000\u9041\u9042\u9043\u9044"+
- "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
- "\u9055\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
- "\u905D\u905E\u905F\u9060\u9061\u0000\u9063\u9064"+
- "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
- "\u0000\u0000\u906F\u0000\u0000\u0000\u9073\u9074"+
- "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
- "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
- "\u0000\u90A8\u90A9\u90AA\u0000\u90AC\u90AD\u90AE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90B7\u90B8\u90B9\u90BA\u90BB\u90BC\u0000\u0000"+
- "\u0000\u90C0\u0000\u90C2\u0000\u0000\u0000\u90C6"+
- "\u0000\u0000\u90C9\u90CA\u90CB\u90CC\u90CD\u90CE"+
- "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u90D5\u90D6"+
- "\u90D7\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
- "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
- "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u90F5\u0000"+
- "\u0000\u0000\u0000\u90FA\u90FB\u90FC\u90FD\u90FE"+
- "\u9140\u0000\u0000\u0000\u0000\u9145\u9146\u9147"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u914F"+
- "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
- "\u9158\u9159\u915A\u0000\u0000\u915D\u0000\u915F"+
- "\u0000\u0000\u9162\u0000\u0000\u9165\u9166\u9167"+
- "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
- "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
- "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
- "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
- "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u91B1"+
- "\u0000\u91B3\u91B4\u91B5\u0000\u91B7\u91B8\u0000"+
- "\u0000\u91BB\u0000\u91BD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u91CD\u91CE\u91CF\u0000\u91D1"+
- "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
- "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
- "\u0000\u91E3\u0000\u0000\u0000\u91E7\u91E8\u0000"+
- "\u91EA\u0000\u91EC\u91ED\u91EE\u91EF\u91F0\u91F1"+
- "\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7\u91F8\u91F9"+
- "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
- "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
- "\u924B\u924C\u924D\u924E\u924F\u0000\u9251\u9252"+
- "\u9253\u0000\u9255\u0000\u9257\u9258\u9259\u925A"+
- "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
- "\u9263\u0000\u9265\u0000\u0000\u0000\u9269\u926A"+
- "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
- "\u9273\u9274\u9275\u9276\u9277\u0000\u9279\u927A"+
- "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
- "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
- "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
- "\u92BD\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
- "\u0000\u92C6\u0000\u0000\u92C9\u0000\u92CB\u92CC"+
- "\u92CD\u92CE\u0000\u92D0\u0000\u92D2\u0000\u0000"+
- "\u0000\u0000\u92D7\u92D8\u92D9\u0000\u92DB\u0000";
-
- private final static String innerIndex8=
- "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92E9\u0000\u0000\u92EC"+
- "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92F6\u92F7\u92F8\u92F9\u92FA\u0000\u0000"+
- "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
- "\u0000\u9347\u0000\u9349\u0000\u934B\u0000\u0000"+
- "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
- "\u9356\u9357\u9358\u9359\u935A\u935B\u0000\u935D"+
- "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
- "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
- "\u0000\u936F\u9370\u9371\u9372\u9373\u0000\u9375"+
- "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
- "\u937E\u0000\u93A2\u93A3\u93A4\u93A5\u93A6\u93A7"+
- "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
- "\u0000\u93B1\u0000\u0000\u0000\u93B5\u93B6\u93B7"+
- "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
- "\u93C0\u93C1\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7"+
- "\u93C8\u0000\u93CA\u93CB\u93CC\u93CD\u93CE\u93CF"+
- "\u93D0\u0000\u93D2\u0000\u93D4\u0000\u93D6\u93D7"+
- "\u0000\u93D9\u93DA\u0000\u93DC\u93DD\u93DE\u93DF"+
- "\u93E0\u93E1\u93E2\u0000\u93E4\u0000\u93E6\u0000"+
- "\u0000\u93E9\u0000\u93EB\u93EC\u93ED\u0000\u0000"+
- "\u0000\u0000\u93F2\u0000\u0000\u0000\u93F6\u0000"+
- "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
- "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
- "\u9449\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
- "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
- "\u9461\u9462\u9463\u9464\u9465\u9466\u9467\u0000"+
- "\u9469\u0000\u0000\u0000\u0000\u946E\u946F\u9470"+
- "\u0000\u9472\u9473\u9474\u9475\u0000\u0000\u9478"+
- "\u9479\u0000\u947B\u947C\u947D\u947E\u94A1\u94A2"+
- "\u94A3\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
- "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
- "\u94B3\u94B4\u94B5\u94B6\u0000\u0000\u94B9\u94BA"+
- "\u94BB\u94BC\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u94C7\u94C8\u94C9\u0000"+
- "\u0000\u0000\u0000\u94CE\u0000\u0000\u94D1\u94D2"+
- "\u94D3\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
- "\u94DB\u0000\u94DD\u94DE\u94DF\u94E0\u0000\u0000"+
- "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
- "\u0000\u94EC\u0000\u0000\u94EF\u94F0\u94F1\u94F2"+
- "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
- "\u9544\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
- "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
- "\u9554\u0000\u0000\u0000\u0000\u9559\u955A\u955B"+
- "\u955C\u0000\u955E\u0000\u9560\u9561\u9562\u0000"+
- "\u9564\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
- "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u9573"+
- "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
- "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
- "\u95AE\u95AF\u95B0\u0000\u95B2\u95B3\u95B4\u0000"+
- "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
- "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
- "\u95C6\u95C7\u0000\u0000\u95CA\u0000\u0000\u95CD"+
- "\u0000\u0000\u95D0\u95D1\u0000\u0000\u95D4\u0000"+
- "\u95D6\u95D7\u0000\u0000\u0000\u95DB\u0000\u0000"+
- "\u95DE\u95DF\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95EA\u0000\u95EC\u95ED"+
- "\u95EE\u95EF\u95F0\u95F1\u0000\u95F3\u95F4\u95F5"+
- "\u95F6\u95F7\u95F8\u95F9\u0000\u0000\u95FC\u0000"+
- "\u95FE\u0000\u9641\u9642\u9643\u0000\u0000\u9646"+
- "\u9647\u9648\u9649\u0000\u0000\u0000\u964D\u0000"+
- "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
- "\u0000\u9658\u0000\u965A\u0000\u965C\u965D\u965E"+
- "\u965F\u0000\u9661\u9662\u0000\u9664\u0000\u0000"+
- "\u0000\u9668\u9669\u0000\u966B\u0000\u0000\u966E"+
- "\u966F\u0000\u0000\u0000\u0000\u9674\u9675\u9676"+
- "\u0000\u9678\u9679\u0000\u0000\u967C\u0000\u967E"+
- "\u96A1\u0000\u96A3\u96A4\u0000\u96A6\u0000\u96A8"+
- "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
- "\u96B9\u96BA\u0000\u96BC\u0000\u96BE\u96BF\u96C0"+
- "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u96C8"+
- "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
- "\u0000\u96D2\u96D3\u96D4\u96D5\u96D6\u0000\u0000"+
- "\u0000\u96DA\u0000\u0000\u0000\u0000\u96DF\u0000"+
- "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
- "\u96E9\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96F7\u96F8"+
- "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
- "\u0000\u9743\u9744\u9745\u9746\u9747\u0000\u0000"+
- "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
- "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
- "\u975A\u0000\u0000\u975D\u0000\u975F\u9760\u9761"+
- "\u9762\u0000\u0000\u0000\u9766\u9767\u9768\u9769"+
- "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
- "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
- "\u977A\u977B\u977C\u977D\u0000\u97A1\u97A2\u0000"+
- "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
- "\u97AC\u97AD\u97AE\u0000\u97B0\u97B1\u97B2\u0000"+
- "\u97B4\u97B5\u97B6\u0000\u97B8\u97B9\u97BA\u0000"+
- "\u0000\u97BD\u97BE\u0000\u97C0\u97C1\u97C2\u97C3"+
- "\u0000\u97C5\u97C6\u97C7\u0000\u97C9\u97CA\u0000"+
- "\u97CC\u97CD\u0000\u97CF\u0000\u0000\u97D2\u97D3"+
- "\u97D4\u0000\u0000\u97D7\u97D8\u0000\u97DA\u97DB"+
- "\u97DC\u97DD\u97DE\u0000\u0000\u97E1\u0000\u97E3"+
- "\u97E4\u0000\u0000\u97E7\u97E8\u0000\u97EA\u97EB"+
- "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
- "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
- "\u0000\u97FD\u97FE\u9840\u9841\u9842\u9843\u0000"+
- "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
- "\u0000\u984E\u0000\u0000\u9851\u9852\u9853\u0000"+
- "\u9855\u9856\u0000\u0000\u0000\u985A\u0000\u0000"+
- "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
- "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
- "\u986D\u986E\u0000\u0000\u9871\u9872\u0000\u9874"+
- "\u9875\u0000\u0000\u0000\u9879\u0000\u987B\u987C"+
- "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
- "\u98A7\u98A8\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
- "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
- "\u0000\u0000\u98B9\u0000\u0000\u98BC\u98BD\u0000"+
- "\u0000\u98C0\u0000\u0000\u98C3\u0000\u98C5\u0000"+
- "\u0000\u0000\u0000\u0000\u98CB\u98CC\u98CD\u98CE"+
- "\u0000\u98D0\u98D1\u0000\u0000\u0000\u0000\u98D6"+
- "\u0000\u0000\u98D9\u0000\u98DB\u0000\u98DD\u0000"+
- "\u98DF\u0000\u0000\u0000\u0000\u98E4\u0000\u98E6"+
- "\u0000\u98E8\u98E9\u0000\u98EB\u98EC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98F4\u0000\u0000"+
- "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u98FE"+
- "\u9940\u0000\u0000\u0000\u0000\u0000\u9946\u0000"+
- "\u9948\u0000\u0000\u994B\u0000\u0000\u994E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9955\u9956\u0000"+
- "\u0000\u9959\u0000\u995B\u0000\u0000\u0000\u995F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u996E\u0000"+
- "\u0000\u0000\u0000\u9973\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u997A\u997B\u0000\u0000\u0000\u99A1"+
- "\u0000\u0000\u0000\u99A5\u0000\u99A7\u0000\u0000"+
- "\u0000\u0000\u0000\u99AD\u0000\u0000\u0000\u0000"+
- "\u0000\u99B3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99BC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99C3\u0000\u0000\u0000\u99C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99CE\u99CF\u0000\u0000"+
- "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99DE\u0000\u0000\u99E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99F5\u0000\u0000\u99F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A48\u9A49\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A50\u0000\u0000"+
- "\u0000\u0000\u9A55\u0000\u0000\u9A58\u0000\u9A5A"+
- "\u0000\u9A5C\u0000\u0000\u0000\u9A60\u0000\u0000"+
- "\u9A63\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A6E\u0000\u9A70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A79\u0000"+
- "\u9A7B\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
- "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
- "\u9ABD\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
- "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
- "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
- "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
- "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
- "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u9AEC"+
- "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
- "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
- "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
- "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u9B4D"+
- "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
- "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
- "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
- "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
- "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
- "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
- "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
- "\u9BA8\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
- "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
- "\u9BB8\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u9BBE\u9BBF"+
- "\u9BC0\u9BC1\u9BC2\u9BC3\u0000\u9BC5\u0000\u9BC7"+
- "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
- "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
- "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u9BDF"+
- "\u9BE0\u9BE1\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7"+
- "\u9BE8\u0000\u9BEA\u9BEB\u0000\u9BED\u9BEE\u9BEF"+
- "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
- "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
- "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
- "\u9C49\u9C4A\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
- "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
- "\u0000\u0000\u9C5B\u9C5C\u0000\u9C5E\u9C5F\u9C60"+
- "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
- "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u9C6F\u9C70"+
- "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
- "\u9C79\u9C7A\u0000\u0000\u9C7D\u0000\u9CA1\u9CA2"+
- "\u9CA3\u9CA4\u9CA5\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
- "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
- "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u9CBA"+
- "\u9CBB\u0000\u0000\u9CBE\u0000\u9CC0\u9CC1\u0000"+
- "\u9CC3\u9CC4\u0000\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA"+
- "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u9CD1\u9CD2"+
- "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
- "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
- "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
- "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
- "\u0000\u0000\u0000\u9CF6\u9CF7\u9CF8\u0000\u9CFA"+
- "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
- "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u0000\u9D4B"+
- "\u0000\u0000\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
- "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
- "\u9D5C\u9D5D\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
- "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
- "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u9D73"+
- "\u0000\u9D75\u0000\u9D77\u9D78\u0000\u9D7A\u9D7B"+
- "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u9DA5"+
- "\u0000\u0000\u0000\u0000\u9DAA\u9DAB\u9DAC\u9DAD"+
- "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u9DB5"+
- "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
- "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
- "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u9DCC\u9DCD"+
- "\u9DCE\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
- "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
- "\u9DEE\u0000\u0000\u0000\u9DF2\u9DF3\u0000\u0000"+
- "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
- "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E4F\u0000\u9E51\u0000\u9E53\u9E54\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E63\u9E64\u0000\u9E66"+
- "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
- "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
- "\u9E77\u0000\u9E79\u9E7A\u9E7B\u9E7C\u9E7D\u9E7E"+
- "\u0000\u0000\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
- "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
- "\u0000\u0000\u0000\u9EB4\u0000\u0000\u0000\u9EB8"+
- "\u9EB9\u0000\u9EBB\u9EBC\u0000\u9EBE\u0000\u0000"+
- "\u0000\u9EC2\u9EC3\u0000\u9EC5\u9EC6\u0000\u9EC8"+
- "\u9EC9\u0000\u9ECB\u9ECC\u9ECD\u9ECE\u9ECF\u9ED0"+
- "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
- "\u9ED9\u9EDA\u0000\u0000\u9EDD\u9EDE\u9EDF\u9EE0"+
- "\u0000\u0000\u9EE3\u0000\u9EE5\u0000\u9EE7\u0000"+
- "\u0000\u0000\u0000\u9EEC\u0000\u9EEE\u0000\u9EF0"+
- "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
- "\u9EF9\u0000\u9EFB\u9EFC\u0000\u0000\u0000\u0000"+
- "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
- "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
- "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FA5\u0000\u0000\u0000\u0000\u9FAA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
- "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
- "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
- "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
- "\u0000\u0000\u0000\u9FD7\u0000\u9FD9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
- "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
- "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA04F\u0000\u0000\u0000\uA053\u0000"+
- "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA068\u0000\uA06A\u0000\u0000"+
- "\uA06D\u0000\uA06F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA078\u0000\u0000\uA07B\u0000"+
- "\u0000\uA07E\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
- "\uA0A7\u0000\u0000\u0000\uA0AB\uA0AC\u0000\u0000"+
- "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
- "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D8\u0000\uA0DA\u0000\u0000\u0000\uA0DE"+
- "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\uA0E6"+
- "\u0000\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
- "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
- "\uA0F7\uA0F8\uA0F9\u0000\uA0FB\u0000\u0000\uA0FE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
- "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
- "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
- "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
- "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89B2\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
- "\u89BA\u89BB\u89BC\u0000\u89BE\u89BF\u0000\u0000"+
- "\u0000\u0000\u0000\u89C5\u0000\u0000\u0000\u0000"+
- "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89D5\u0000\u89D7\u0000\u0000"+
- "\u89DA\u89DB\u89DC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89E6\u0000\u89E8\u0000"+
- "\u89EA\u0000\u0000\u89ED\u89EE\u89EF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F9"+
- "\u0000\u89FB\u89FC\u0000\u89FE\u8A40\u0000\u0000"+
- "\u8A43\u8A44\u8A45\u0000\u8A47\u8A48\u8A49\u0000"+
- "\u8A4B\u8A4C\u8A4D\u8A4E\u0000\u8A50\u8A51\u8A52"+
- "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
- "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
- "\u0000\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u0000"+
- "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
- "\u0000\u0000\u0000\u8A76\u8A77\u0000\u0000\u8A7A"+
- "\u8A7B\u8A7C\u8A7D\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
- "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u8AAC"+
- "\u8AAD\u8AAE\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
- "\u8AB5\u8AB6\u0000\u8AB8\u8AB9\u0000\u8ABB\u8ABC"+
- "\u8ABD\u0000\u0000\u8AC0\u0000\u8AC2\u8AC3\u0000"+
- "\u0000\u0000\u8AC7\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
- "\u0000\u8ACE\u8ACF\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4"+
- "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u8ADA\u0000\u8ADC"+
- "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
- "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u8AEB\u8AEC"+
- "\u8AED\u8AEE\u8AEF\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4"+
- "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u8AFB\u8AFC"+
- "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
- "\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
- "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
- "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
- "\u8B5E\u0000\u8B60\u0000\u8B62\u0000\u8B64\u8B65"+
- "\u8B66\u8B67\u8B68\u8B69\u8B6A\u8B6B\u0000\u8B6D"+
- "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
- "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
- "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u8BA6\u8BA7"+
- "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
- "\u0000\u8BB1\u8BB2\u0000\u0000\u8BB5\u8BB6\u0000"+
- "\u8BB8\u0000\u0000\u8BBB\u8BBC\u0000\u8BBE\u0000"+
- "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
- "\u8BC8\u0000\u0000\u0000\u8BCC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
- "\u0000\u0000\u0000\u8BDB\u8BDC\u0000\u8BDE\u0000"+
- "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
- "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D63"+
- "\u8D64\u0000\u0000\u8D67\u8D68\u0000\u0000\u0000"+
- "\u0000\u8D6D\u8D6E\u8D6F\u8D70\u0000\u0000\u0000"+
- "\u8D74\u0000\u0000\u0000\u8D78\u0000\u0000\u0000"+
- "\u0000\u8D7D\u0000\u8DA1\u0000\u0000\u0000\u0000"+
- "\u8DA6\u0000\u0000\u0000\u0000\u8DAB\u0000\u8DAD"+
- "\u0000\u0000\u8DB0\u0000\u8DB2\u0000\u8DB4\u0000"+
- "\u0000\u8DB7\u0000\u0000\u8DBA\u8DBB\u8DBC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DC3\u0000\u8DC5"+
- "\u0000\u0000\u0000\u0000\u8DCA\u0000\u8DCC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DD6\u0000\u0000\u0000\u0000\u8DDB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DEB\u8DEC\u0000"+
- "\u0000\u8DEF\u8DF0\u0000\u0000\u8DF3\u0000\u8DF5"+
- "\u0000\u0000\u0000\u0000\u0000\u8DFB\u8DFC\u8DFD"+
- "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6CD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
- "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8D6\uC8D7\uC8D8\uC8D9\uC8DA\uC8DB\uC8DC\uC8DD"+
- "\uC8DE\uC8DF\uC8E0\uC8E1\uC8E2\uC8E3\uC8E4\uC8E5"+
- "\uC8E6\uC8E7\uC8E8\uC8E9\uC8EA\uC8EB\uC8EC\uC8ED"+
- "\uC8EE\uC8EF\uC8F0\uC8F1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static short index1[] = {
- 1, 2, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
- 0, 6, 0, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11,
- 12, 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 0,
- 0, 0, 0, 137, 138, 139, 140, 141, 142, 0, 0, 0, 0, 0, 0, 143
- };
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2,
- innerIndex3,
- innerIndex4,
- innerIndex5,
- innerIndex6,
- innerIndex7,
- innerIndex8
- };
-
- public Encoder(Charset cs) {
- super(cs,
- index1,
- index2);
+ static void initc2b(char[][] c2b, String[] b2cStr, String pua) {
+ // init c2b/c2bSupp from b2cStr and supp
+ int b2Min = 0x40;
+ Arrays.fill(c2b, C2B_UNMAPPABLE);
+ for (int b1 = 0; b1 < 0x100; b1++) {
+ String s = b2cStr[b1];
+ if (s == null)
+ continue;
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ int hi = c >> 8;
+ if (c2b[hi] == C2B_UNMAPPABLE) {
+ c2b[hi] = new char[0x100];
+ Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
+ }
+ c2b[hi][c & 0xff] = (char)((b1 << 8) | (i + b2Min));
+ }
+ }
+ if (pua != null) { // add the compatibility pua entries
+ char c = '\ue000'; //first pua character
+ for (int i = 0; i < pua.length(); i++) {
+ char bb = pua.charAt(i);
+ if (bb != UNMAPPABLE_DECODING) {
+ int hi = c >> 8;
+ if (c2b[hi] == C2B_UNMAPPABLE) {
+ c2b[hi] = new char[0x100];
+ Arrays.fill(c2b[hi], (char)UNMAPPABLE_ENCODING);
+ }
+ c2b[hi][c & 0xff] = (char)bb;
+ }
+ c++;
+ }
+ }
}
}
}
--- a/jdk/src/share/classes/sun/nio/cs/ext/HKSCS_2001.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7827 +0,0 @@
-/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/*
- */
-
-package sun.nio.cs.ext;
-
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CharsetEncoder;
-
-public abstract class HKSCS_2001 extends Charset
-{
-
- public HKSCS_2001() {
- super("HKSCS-2001", ExtendedCharsets.aliasesFor("HKSCS-2001"));
- }
-
- public CharsetDecoder newDecoder() {
- return new Decoder(this);
- }
-
- public CharsetEncoder newEncoder() {
- return new Encoder(this);
- }
-
-
- /**
- * These accessors are temporarily supplied while sun.io
- * converters co-exist with the sun.nio.cs.{ext} charset coders
- * These facilitate sharing of conversion tables between the
- * two co-existing implementations. When sun.io converters
- * are made extinct these will be unncessary and should be removed
- */
-
- public static short[] getDecoderIndex1() {
- return Decoder.index1;
- }
-
- public static String[] getDecoderIndex2() {
- return Decoder.index2;
-
- }
-
- public static short[] getEncoderIndex1() {
- return Encoder.index1;
-
- }
- public static String[] getEncoderIndex2() {
- return Encoder.index2;
-
- }
-
- protected static class Decoder extends DoubleByteDecoder {
-
- public Decoder(Charset cs) {
- super(cs, index1, index2, 0x40, 0xFE);
- }
-
- protected char decodeDouble(int c1, int c2) {
- char result = super.decodeDouble(c1, c2);
- int offset = (result - 0xD800);
-
- if (result >= '\uD800' && result <= '\uDFFF') {
- highSurrogate =
- SurrogateMappings.charAt(offset * 2);
- lowSurrogate =
- SurrogateMappings.charAt((offset *2) + 1);
- return '\uD800';
- } else {
- return result;
- }
- }
-
- private final static String innerIndex0=
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF303"+
- "\uF304\uF305\uF306\uF307\uD800\uF309\uD801\uD802"+
- "\uF30C\uF30D\uD803\uD804\uF310\uD805\uF312\uF313"+
- "\uF314\uF315\uD806\uF317\uF318\u0100\u00C1\u01CD"+
- "\u00C0\u0112\u00C9\u011A\u00C8\u014C\u00D3\u01D1"+
- "\u00D2\uF325\u1EBE\uF327\u1EC0\u00CA\u0101\u00E1"+
- "\u01CE\u00E0\u0251\u0113\u00E9\u011B\u00E8\u012B"+
- "\u00ED\u01D0\u00EC\u014D\u00F3\u01D2\u00F2\u016B"+
- "\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u01DC\u00FC\uF344\u1EBF\uF346\u1EC1\u00EA\u0261"+
- "\uF34A\uF34B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD807\uD808"+
- "\uFFFD\u650A\uFFFD\uFFFD\u4E3D\u6EDD\u9D4E\u91DF"+
- "\uFFFD\uFFFD\uD809\u6491\u4F1A\u4F28\u4FA8\u5156"+
- "\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1"+
- "\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66"+
- "\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804"+
- "\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7"+
- "\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6"+
- "\u8BBE\u8BE2\u8F66\u8F67\u8F6E\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u7411"+
- "\u7CFC\u7DCD\u6946\u7AC9\u5227\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u918C\u78B8\u915E\u80BC\uFFFD\u8D0B\u80F6"+
- "\uD80A\uFFFD\uFFFD\u809F\u9EC7\u4CCD\u9DC9\u9E0C"+
- "\u4C3E\uD80B\uD80C\u9E0A\uD80D\u35C1\uFFFD\u6E9A"+
- "\u823E\u7519\uFFFD\u4911\u9A6C\u9A8F\u9F99\u7987"+
- "\uD80E\uD80F\uD810\uD811\u4E24\u4E81\u4E80\u4E87"+
- "\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088"+
- "\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205"+
- "\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0"+
- "\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3"+
- "\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598"+
- "\u553F\u35A5\u35BF\u55D7\u35C5\uD812\u5525\uFFFD"+
- "\uD813\uD814\uD815\u5590\uD816\u39EC\uD817\u8E46"+
- "\uD818\uD819\u4053\uD81A\u777A\uD81B\u3A34\u47D5"+
- "\uD81C\uD81D\uD81E\u64DD\uD81F\uD820\uD821\uD822"+
- "\u648D\u8E7E\uD823\uD824\uD825\uD826\uD827\uD828"+
- "\uFFFD\uD829\uD82A\uD82B\u47F4\uD82C\uD82D\u9AB2"+
- "\u3A67\uD82E\u3FED\u3506\uD82F\uD830\uD831\uD832"+
- "\u9D6E\u9815\uFFFD\u43D9\uD833\u64B4\u54E3\uD834"+
- "\uD835\uD836\u39FB\uD837\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD838\uD839"+
- "\uD83A\u64EA\uD83B\uD83C\u8E68\uD83D\uD83E\uD83F"+
- "\uFFFD\u480B\uD840\u3FFA\u5873\uD841\uFFFD\uD842"+
- "\uD843\uD844\uD845\uD846\u5579\u40BB\u43BA\uFFFD"+
- "\u4AB4\uD847\uD848\u81AA\u98F5\uD849\u6379\u39FE"+
- "\uD84A\u8DC0\u56A1\u647C\u3E43\uFFFD\uD84B\uD84C"+
- "\uD84D\uD84E\uFFFD\uD84F\uD850\u3992\u3A06\uD851"+
- "\u3578\uD852\uD853\u5652\uD854\uD855\uD856\u34BC"+
- "\u6C3D\uD857\uFFFD\uFFFD\uD858\uD859\uD85A\uD85B"+
- "\uD85C\uD85D\uD85E\uD85F\u7F93\uD860\uD861\uD862"+
- "\u35FB\uD863\uD864\uD865\uD866\u3F93\uD867\uD868"+
- "\uD869\uD86A\uFFFD\uD86B\uD86C\uD86D\uD86E\uD86F"+
- "\u3FF9\uD870\u6432\uD871\uD872\uD873\uD874\uD875"+
- "\uD876\uD877\uD878\u3A18\uD879\uD87A\uD87B\uD87C"+
- "\uD87D\uD87E\uD87F\uD880\u95AA\u54CC\u82C4\u55B9"+
- "\uFFFD\uD881\u9C26\u9AB6\uD882\uD883\u7140\u816D"+
- "\u80EC\u5C1C\uD884\u8134\u3797\u535F\uD885\u91B6"+
- "\uD886\uD887\uD888\uD889\u35DD\uD88A\u3609\uD88B"+
- "\u56AF\uD88C\uD88D\uD88E\uD88F\uD890\uD891\uD892"+
- "\uD893\uD894\uD895\uD896\u5A54\uD897\uD898\uD899"+
- "\uD89A\u579C\uD89B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uD89C\uD89D\uD89E"+
- "\uD89F\uD8A0\u3703\uD8A1\uD8A2\uD8A3\uD8A4\uD8A5"+
- "\uD8A6\uD8A7\uD8A8\u5899\u5268\u361A\uD8A9\u7BB2"+
- "\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\uD8AA"+
- "\uD8AB\u55FB\u35F2\u5689\u4E28\u5902\uD8AC\uD8AD"+
- "\u9751\uD8AE\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4"+
- "\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B"+
- "\u4E2C\u72AD\uD8AF\u7F52\u793B\u7CF9\u7F53\uD8B0"+
- "\u34C1\uFFFD\uD8B1\u8002\u8080\uD8B2\uD8B3\u535D"+
- "\u8864\u89C1\uD8B4\u8BA0\u8D1D\u9485\u9578\u957F"+
- "\u95E8\uD8B5\u97E6\u9875\u98CE\u98DE\u9963\uD8B6"+
- "\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\uD8B7\u961D"+
- "\u6237\u94A2\uFFFD\u503B\u6DFE\uD8B8\uF57A\u3DC9"+
- "\u888F\uD8B9\u7077\u5CF5\u4B20\uD8BA\u3559\uD8BB"+
- "\u6122\uD8BC\u8FA7\u91F6\u7191\u6719\u73BA\uD8BD"+
- "\uD8BE\u3C8B\uD8BF\u4B10\u78E4\u7402\u51AE\uD8C0"+
- "\u4009\u6A63\uD8C1\u4223\u860F\uFFFD\u7A2A\uD8C2"+
- "\uD8C3\u9755\u704D\u5324\uD8C4\u93F4\u76D9\uD8C5"+
- "\uF5A4\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\uF5AB"+
- "\u5434\u7D8B\u5892\u58D0\uD8C6\u5E92\u5E99\u5FC2"+
- "\uD8C7\u658B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uD8C8\u6919\u6A43\uD8C9"+
- "\u6CFF\uFFFD\u7200\uD8CA\u738C\u3EDB\uD8CB\u5B15"+
- "\u74B9\u8B83\uD8CC\uD8CD\u7A93\u7BEC\u7CC3\u7E6C"+
- "\u82F8\u8597\uF5CC\u8890\uF5CE\u8EB9\uF5D0\u8FCF"+
- "\u855F\u99E0\u9221\uF5D5\uD8CE\uD8CF\u4071\u42A2"+
- "\u5A1A\uFFFD\uFFFD\uFFFD\u9868\u676B\u4276\u573D"+
- "\uFFFD\u85D6\uD8D0\u82BF\uD8D1\u4C81\uD8D2\u5D7B"+
- "\uD8D3\uD8D4\uF5EC\uF5ED\u5B96\uF5EF\uFFFD\u7E5B"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4"+
- "\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908"+
- "\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7"+
- "\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8"+
- "\u56B1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u3A03\u63E2\u63FB\u6407\u645A"+
- "\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD"+
- "\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4"+
- "\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909"+
- "\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD"+
- "\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB"+
- "\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA"+
- "\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1"+
- "\u6E15\u6E18\u6E29\u6E86\uD8D5\u6EBB\u6EE2\u6EDA"+
- "\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\uD8D6\u6F81"+
- "\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91"+
- "\u7050\u7054\u706F\u707F\u7089\uD8D7\u43C1\u35F1"+
- "\uD8D8\uD8D9\u57BE\uD8DA\u713E\uD8DB\u364E\u69A2"+
- "\uD8DC\u5B74\u7A49\uD8DD\uD8DE\u7A65\u7A7D\uD8DF"+
- "\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\uD8E0\u41CA\u7ADA"+
- "\u7ADD\u7AEA\u41EF\u54B2\uD8E1\u7B0B\u7B55\u7B29"+
- "\uD8E2\uD8E3\u7BA2\u7B6F\u839C\uD8E4\uD8E5\u7BD0"+
- "\u8421\u7B92\uFFFD\uD8E6\u3DAD\uD8E7\u8492\u7BFA"+
- "\uFFFD\u7C35\uD8E8\u7C44\u7C83\uD8E9\u7CA6\u667D"+
- "\uD8EA\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u7E67\u451D\uD8EB\u7D5D\uD8EC\u748D"+
- "\u7D89\u7DAB\u7135\u7DB3\uFFFD\uD8ED\uD8EE\u7DE4"+
- "\u3D13\u7DF5\uD8EF\u7DE5\uD8F0\uFFFD\uD8F1\uD8F2"+
- "\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47"+
- "\u7936\uD8F3\u99E1\u7F97\uD8F4\u7FA3\uD8F5\uD8F6"+
- "\u455C\uD8F7\u4503\uD8F8\u7FFA\uD8F9\uFFFD\u8008"+
- "\u801D\uFFFD\u802F\uD8FA\uD8FB\u803B\u803C\u8061"+
- "\uD8FC\u4989\uD8FD\uD8FE\uD8FF\u6725\u80A7\uD900"+
- "\u8107\u811A\u58B0\uD901\u6C7F\uD902\uD903\u64E7"+
- "\uD904\u8218\uD905\u6A53\uD906\uD907\u447A\u8229"+
- "\uD908\uD909\uD90A\u4FF9\uD90B\u84E2\u8362\uD90C"+
- "\uD90D\uD90E\uD90F\uD910\u82AA\u691B\uD911\u41DB"+
- "\u854B\u82D0\u831A\uD912\uD913\u36C1\uD914\uD915"+
- "\u827B\u82E2\u8318\uD916\uD917\uD918\uD919\uD91A"+
- "\u3DBF\u831D\u55EC\u8385\u450B\uD91B\u83AC\uFFFD"+
- "\u83D3\u347E\uD91C\u6A57\u855A\u3496\uD91D\uD91E"+
- "\u8458\uD91F\u8471\u3DD3\u44E4\u6AA7\u844A\uD920"+
- "\u7958\uFFFD\uD921\uD922\uD923\u84DE\uFFFD\u8391"+
- "\u44A0\u8493\u84E4\uD924\u4240\uD925\u4543\u8534"+
- "\u5AF2\uD926\u4527\u8573\u4516\u67BF\u8616\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uD927\uD928\u85C1\uD929\u8602\uD92A\uD92B"+
- "\uD92C\u456A\u8628\u3648\uD92D\u53F7\uD92E\u867E"+
- "\u8771\uD92F\u87EE\uD930\u87B1\u87DA\u880F\u5661"+
- "\u866C\u6856\u460F\u8845\u8846\uD931\uD932\uD933"+
- "\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777"+
- "\uD934\u8987\u898A\uFFFD\uFFFD\u89A7\u89BC\uD935"+
- "\u89E7\uD936\uD937\u8A9C\u7793\u91FE\u8A90\uD938"+
- "\u7AE9\uD939\uD93A\u4713\uD93B\u717C\u8B0C\u8B1F"+
- "\uD93C\uD93D\u8B3F\u8B4C\u8B4D\u8AA9\uD93E\u8B90"+
- "\u8B9B\u8AAF\uD93F\u4615\u884F\u8C9B\uD940\uD941"+
- "\uD942\u3725\uD943\u8CD6\uD944\uD945\u8D12\u8D03"+
- "\uD946\u8CDB\u705C\u8D11\uD947\u3ED0\uFFFD\u8DA9"+
- "\uD948\uD949\uD94A\u3B7C\uD94B\uD94C\u7AE7\u8EAD"+
- "\u8EB6\u8EC3\u92D4\u8F19\u8F2D\uD94D\uD94E\u8FA5"+
- "\u9303\uD94F\uD950\u8FB3\u492A\uD951\uD952\uD953"+
- "\u5EF8\uD954\u8FF9\uD955\uD956\uD957\uD958\u3980"+
- "\uD959\u9037\uD95A\uD95B\u9061\uD95C\uD95D\u90A8"+
- "\uD95E\u90C4\uD95F\u90AE\uFFFD\u9167\u3AF0\u91A9"+
- "\u91C4\u7CAC\uD960\uD961\u920E\u6C9F\u9241\u9262"+
- "\uD962\uFFFD\uD963\uD964\uD965\uD966\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uD967\u932C\u936B\uD968\uD969\u708F\u5AC3\uD96A"+
- "\uD96B\u4965\u9244\uD96C\uD96D\uD96E\u9373\u945B"+
- "\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\uD96F"+
- "\uD970\uD971\uD972\u49DF\u6C1C\u967B\u9696\u416C"+
- "\u96A3\uD973\u61DA\u96B6\u78F5\uD974\u96BD\u53CC"+
- "\u49A1\uD975\uD976\uD977\uD978\uD979\uD97A\uD97B"+
- "\uD97C\u9731\u8642\u9736\u4A0F\u453D\u4585\uD97D"+
- "\u7075\u5B41\u971B\uFFFD\uD97E\u9757\u5B4A\uD97F"+
- "\u975F\u9425\u50D0\uD980\uD981\u9789\u979F\u97B1"+
- "\u97BE\u97C0\u97D2\u97E0\uD982\u97EE\u741C\uD983"+
- "\uFFFD\u97F5\uD984\uD985\u4AD1\u9834\u9833\u984B"+
- "\u9866\u3B0E\uD986\u3D51\uD987\uD988\uD989\u98CA"+
- "\u98B7\u98C8\u98C7\u4AFF\uD98A\uD98B\u55B0\u98E1"+
- "\u98E6\u98EC\u9378\u9939\uD98C\u4B72\uD98D\uD98E"+
- "\u99F5\u9A0C\u9A3B\u9A10\u9A58\uD98F\u36C4\uD990"+
- "\uD991\u9AE0\u9AE2\uD992\u9AF4\u4C0E\u9B14\u9B2D"+
- "\uD993\u5034\u9B34\uD994\u38C3\uD995\u9B50\u9B40"+
- "\uD996\u5A45\uD997\u9B8E\uD998\u9C02\u9BFF\u9C0C"+
- "\uD999\u9DD4\uD99A\uD99B\uD99C\uD99D\uD99E\uD99F"+
- "\u9D7E\u9D83\uD9A0\u9E0E\u6888\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9DC4"+
- "\uD9A1\uD9A2\uD9A3\uD9A4\uD9A5\u9D39\uD9A6\uD9A7"+
- "\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\uD9A8"+
- "\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\uD9A9\u9F02"+
- "\u9F08\u4B96\u9424\uD9AA\u9F17\uFFFD\u9F39\u569F"+
- "\u568A\u9F45\u99B8\uD9AB\u97F2\u847F\u9F62\u9F69"+
- "\u7ADC\u9F8E\u7216\u4BBE\uD9AC\uD9AD\u7177\uD9AE"+
- "\uD9AF\uD9B0\u739E\uD9B1\uD9B2\u799F\uD9B3\uD9B4"+
- "\u9369\u93F3\uD9B5\u92EC\u9381\u93CB\uD9B6\uD9B7"+
- "\u7217\u3EEB\u7772\u7A43\u70D0\uD9B8\uD9B9\u717E"+
- "\uD9BA\u70A3\uD9BB\uD9BC\u3EC7\uD9BD\uD9BE\uD9BF"+
- "\u3722\uD9C0\uD9C1\u36E1\uD9C2\uD9C3\uD9C4\u3723"+
- "\uD9C5\u575B\uD9C6\uD9C7\uD9C8\uD9C9\uD9CA\u8503"+
- "\uD9CB\uFFFD\u8455\uD9CC\uD9CD\uD9CE\uD9CF\uD9D0"+
- "\uD9D1\u44F4\uD9D2\uD9D3\uD9D4\u67F9\u3733\u3C15"+
- "\u3DE7\u586C\uD9D5\u6810\u4057\uD9D6\uD9D7\uD9D8"+
- "\uD9D9\uD9DA\u54CB\u569E\uD9DB\u5692\uD9DC\uD9DD"+
- "\uD9DE\u93C6\uD9DF\u939C\u4EF8\u512B\u3819\uD9E0"+
- "\u4EBC\uD9E1\uD9E2\u4F4B\u4F8A\uD9E3\u5A68\uD9E4"+
- "\uD9E5\u3999\uD9E6\uD9E7\u3435\u4F29\uD9E8\uD9E9"+
- "\uD9EA\u8ADA\uD9EB\u4E98\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u50CD\u510D"+
- "\u4FA2\u4F03\uD9EC\uD9ED\u4F42\u502E\u506C\u5081"+
- "\u4FCC\u4FE5\u5058\u50FC\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u6E76\uD9EE\uD9EF\uD9F0\u6D72\uD9F1\uD9F2\u51A8"+
- "\u51C3\uD9F3\u44DD\uD9F4\uD9F5\uD9F6\u8D7A\uD9F7"+
- "\uD9F8\u5259\u52A4\uD9F9\u52E1\uFFFD\u467A\u718C"+
- "\uD9FA\uD9FB\uD9FC\uD9FD\u69D1\uD9FE\uFFFD\u3EDE"+
- "\u7499\u7414\u7456\u7398\u4B8E\uD9FF\uDA00\u53D0"+
- "\u3584\u720F\uDA01\u55B4\uDA02\u54CD\uDA03\u571D"+
- "\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB"+
- "\u5A99\uDA04\uDA05\uDA06\uDA07\u5A2C\u59B8\u928F"+
- "\u5A7E\u5ACF\u5A12\uDA08\uDA09\uDA0A\uDA0B\u36F5"+
- "\u6D05\u7443\u5A21\uDA0C\u5A81\uDA0D\uDA0E\u93E0"+
- "\u748C\uDA0F\u7105\u4972\u9408\uDA10\u93BD\u37A0"+
- "\u5C1E\u5C9E\u5E5E\u5E48\uDA11\uDA12\uDA13\u5ECD"+
- "\u5B4F\uDA14\uDA15\u3701\uDA16\u36DD\uDA17\u36D3"+
- "\u812A\uDA18\uDA19\uDA1A\uDA1B\u5F0C\u5F0E\uDA1C"+
- "\uDA1D\u5A6B\uDA1E\u5B44\u8614\uDA1F\u8860\u607E"+
- "\uDA20\uDA21\u5FDB\u3EB8\uDA22\uDA23\uDA24\uDA25"+
- "\u61C0\uDA26\uDA27\uDA28\u6199\u6198\u6075\uDA29"+
- "\uDA2A\uDA2B\uDA2C\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6471\uDA2D\uDA2E"+
- "\u3A29\uDA2F\uDA30\uDA31\uDA32\u6337\uDA33\u64B6"+
- "\u6331\u63D1\uDA34\uDA35\u62A4\uDA36\u643B\u656B"+
- "\u6972\u3BF4\uDA37\uDA38\uDA39\uDA3A\u550D\uDA3B"+
- "\uDA3C\uDA3D\u66CE\uDA3E\uDA3F\u3AE0\u4190\uDA40"+
- "\uDA41\uDA42\uDA43\uDA44\uDA45\u78EE\uDA46\uDA47"+
- "\uDA48\u3464\uDA49\uDA4A\uDA4B\u668E\uDA4C\u666B"+
- "\u4B93\u6630\uDA4D\uDA4E\u6663\uDA4F\uDA50\u661E"+
- "\uDA51\u38D1\uDA52\uDA53\u3B99\uDA54\uDA55\u74D0"+
- "\u3B96\u678F\uDA56\u68B6\u681E\u3BC4\u6ABE\u3863"+
- "\uDA57\uDA58\u6A33\u6A52\u6AC9\u6B05\uDA59\u6511"+
- "\u6898\u6A4C\u3BD7\u6A7A\u6B57\uDA5A\uDA5B\u93A0"+
- "\u92F2\uDA5C\uDA5D\u9289\uDA5E\uDA5F\u9467\u6DA5"+
- "\u6F0B\uDA60\uFFFD\uDA61\u3D8F\u6E04\uDA62\u5A3D"+
- "\u6E0A\u5847\u6D24\u7842\u713B\uDA63\uDA64\u70F1"+
- "\u7250\u7287\u7294\uDA65\uDA66\u5179\uDA67\uDA68"+
- "\u747A\uDA69\uDA6A\uDA6B\uDA6C\uDA6D\u3F06\u3EB1"+
- "\uDA6E\uDA6F\uDA70\u60A7\u3EF3\u74CC\u743C\u9387"+
- "\u7437\u449F\uDA71\u4551\u7583\u3F63\uDA72\uDA73"+
- "\u3F58\u7555\u7673\uDA74\u3B19\u7468\uDA75\uDA76"+
- "\uDA77\u3AFB\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u3DCD\uDA78\u3EFF\uDA79"+
- "\uDA7A\u91FA\u5732\u9342\uDA7B\uDA7C\u50DF\uDA7D"+
- "\uDA7E\u7778\uDA7F\u770E\u770F\u777B\uDA80\uDA81"+
- "\u3A5E\uDA82\u7438\u749B\u3EBF\uDA83\uDA84\u40C8"+
- "\uDA85\uDA86\u9307\uDA87\u781E\u788D\u7888\u78D2"+
- "\u73D0\u7959\uDA88\uDA89\u410E\uFFFD\u8496\u79A5"+
- "\u6A2D\uDA8A\u7A3A\u79F4\u416E\uDA8B\u4132\u9235"+
- "\u79F1\uDA8C\uDA8D\uDA8E\uDA8F\uDA90\u3597\u556B"+
- "\u3570\u36AA\uDA91\uDA92\u7AE2\u5A59\uDA93\uDA94"+
- "\uDA95\u5A0D\uDA96\u78F0\u5A2A\uDA97\u7AFE\u41F9"+
- "\u7C5D\u7C6D\u4211\uDA98\uDA99\uDA9A\u7CCD\uDA9B"+
- "\uDA9C\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3"+
- "\u7F4E\uDA9D\uDA9E\uDA9F\u7D97\uDAA0\u426A\uDAA1"+
- "\uDAA2\u67D6\uDAA3\uDAA4\u57C4\uDAA5\uDAA6\uDAA7"+
- "\u7FDD\u7B27\uDAA8\uDAA9\uDAAA\u7B0C\uDAAB\u99E6"+
- "\u8645\u9A63\u6A1C\uDAAC\u39E2\uDAAD\uDAAE\u9A1F"+
- "\uDAAF\u8480\uDAB0\uDAB1\u44EA\u8137\u4402\u80C6"+
- "\u8109\u8142\uDAB2\u98C3\uDAB3\u8262\u8265\uDAB4"+
- "\u8453\uDAB5\u8610\uDAB6\u5A86\u417F\uDAB7\u5B2B"+
- "\uDAB8\u5AE4\uDAB9\u86A0\uDABA\uDABB\u882D\uDABC"+
- "\u5A02\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u886E\u4F45\u8887\u88BF\u88E6"+
- "\u8965\u894D\uDABD\u8954\uDABE\uDABF\uDAC0\uDAC1"+
- "\uDAC2\uDAC3\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D"+
- "\u8A1C\uDAC4\u5F4D\u922B\uDAC5\u65D4\u7129\u70C4"+
- "\uDAC6\u9D6D\u8C9F\u8CE9\uDAC7\u599A\u77C3\u59F0"+
- "\u436E\u36D4\u8E2A\u8EA7\uDAC8\u8F30\u8F4A\u42F4"+
- "\u6C58\u6FBB\uDAC9\u489B\u6F79\u6E8B\uDACA\u9BE9"+
- "\u36B5\uDACB\u90BB\uFFFD\u5571\u4906\u91BB\u9404"+
- "\uDACC\u4062\uDACD\u9427\uDACE\uDACF\u84E5\u8A2B"+
- "\u9599\u95A7\u9597\u9596\uDAD0\u7445\u3EC2\uDAD1"+
- "\uDAD2\uDAD3\u3EE7\uDAD4\u968F\uDAD5\uDAD6\uDAD7"+
- "\u3ECC\uDAD8\uDAD9\uDADA\u7412\u746B\u3EFC\u9741"+
- "\uDADB\u6847\u4A1D\uDADC\uDADD\uFFFD\u9368\uDADE"+
- "\uDADF\uDAE0\uDAE1\u92BA\u5B11\u8B69\u493C\u73F9"+
- "\uDAE2\u979B\u9771\u9938\uDAE3\u5DC1\uDAE4\uDAE5"+
- "\u981F\uDAE6\u92F6\uDAE7\u91E5\u44C0\uDAE8\uDAE9"+
- "\uDAEA\u98DC\uDAEB\u3F00\u922A\u4925\u8414\u993B"+
- "\u994D\uDAEC\u3DFD\u999B\u4B6F\u99AA\u9A5C\uDAED"+
- "\uDAEE\u6A8F\u9A21\u5AFE\u9A2F\uDAEF\u4B90\uDAF0"+
- "\u99BC\u4BBD\u4B97\u937D\u5872\uDAF1\u5822\uDAF2"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uDAF3\u7844\uDAF4\uDAF5\u68C5\u3D7D"+
- "\u9458\u3927\u6150\uDAF6\uDAF7\u6107\u9C4F\u9C53"+
- "\u9C7B\u9C35\u9C10\u9B7F\u9BCF\uDAF8\u9B9F\uDAF9"+
- "\uDAFA\u9D21\u4CAE\uDAFB\u9E18\u4CB0\u9D0C\uDAFC"+
- "\uDAFD\uDAFE\uDAFF\u9DA5\u84BD\uDB00\uDB01\uDB02"+
- "\u85FC\u4533\uDB03\uDB04\uDB05\u8420\u85EE\uDB06"+
- "\uDB07\uDB08\u79E2\uDB09\uDB0A\u492D\uDB0B\u3D62"+
- "\u93DB\u92BE\u9348\uDB0C\u78B9\u9277\u944D\u4FE4"+
- "\u3440\u9064\uDB0D\u783D\u7854\u78B6\u784B\uDB0E"+
- "\uDB0F\uDB10\u369A\u4F72\u6FDA\u6FD9\uFFFD\u701E"+
- "\u5414\uDB11\u57BB\u58F3\u578A\u9D16\u57D7\u7134"+
- "\u34AF\uDB12\u71EB\uDB13\uDB14\uFFFD\uDB15\uDB16";
-
- private final static String innerIndex1=
- "\u610C\u5ACE\u5A0B\u42BC\uDB17\u372C\u4B7B\uDB18"+
- "\u93BB\u93B8\uDB19\uDB1A\u8472\uDB1B\uDB1C\uDB1D"+
- "\uDB1E\uDB1F\u5994\uDB20\uDB21\u7DA8\uDB22\uDB23"+
- "\uDB24\uDB25\uDB26\u92E5\u73E2\u3EE9\u74B4\uDB27"+
- "\uDB28\u3EE1\uDB29\u6AD8\u73F3\u73FB\u3ED6\uDB2A"+
- "\uDB2B\uDB2C\uDB2D\uDB2E\uDB2F\uDB30\u7448\uDB31"+
- "\u70A5\uDB32\u9284\u73E6\u935F\uDB33\u9331\uDB34"+
- "\uDB35\u9386\uDB36\uDB37\u4935\uDB38\u716B\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uDB39\uDB3A\u56A4\uDB3B\uDB3C\uDB3D\u5502"+
- "\u79C4\uDB3E\u7DFE\uDB3F\uDB40\uDB41\u452E\u9401"+
- "\u370A\uDB42\uDB43\u59B0\uDB44\uDB45\uDB46\u5AA1"+
- "\u36E2\uDB47\u36B0\u925F\u5A79\uDB48\uDB49\u9374"+
- "\u3CCD\uDB4A\u4A96\u398A\u50F4\u3D69\u3D4C\uDB4B"+
- "\u7175\u42FB\uDB4C\u6E0F\uDB4D\u44EB\u6D57\uDB4E"+
- "\u7067\u6CAF\u3CD6\uDB4F\uDB50\u6E02\u6F0C\u3D6F"+
- "\uDB51\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4"+
- "\u926E\u493E\u8F41\uDB52\uDB53\u5812\u57C8\u36D6"+
- "\uDB54\u70FE\uDB55\uDB56\uDB57\uDB58\uDB59\u68B9"+
- "\u6967\uDB5A\uDB5B\uDB5C\uDB5D\uDB5E\uDB5F\uDB60"+
- "\uDB61\u6A1A\uDB62\uDB63\u843E\u44DF\u44CE\uDB64"+
- "\uDB65\uDB66\uDB67\u6F17\uDB68\u833D\uDB69\u83ED"+
- "\uDB6A\uDB6B\uDB6C\u5989\u5A82\uDB6D\u5A61\u5A71"+
- "\uDB6E\uDB6F\u372D\u59EF\uDB70\u36C7\u718E\u9390"+
- "\u669A\uDB71\u5A6E\u5A2B\uDB72\u6A2B\uDB73\uDB74"+
- "\uDB75\uDB76\u711D\uDB77\uDB78\u4FB0\uDB79\u5CC2"+
- "\uDB7A\uDB7B\uDB7C\u6A0C\uDB7D\uDB7E\u70A6\u7133"+
- "\uDB7F\u3DA5\u6CDF\uDB80\uDB81\u7E65\u59EB\u5D2F"+
- "\u3DF3\u5F5C\uDB82\uDB83\u7DA4\u8426\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u5485\uDB84\uDB85\uDB86\u577E\uDB87\uDB88\u3FE5"+
- "\uDB89\uDB8A\u7003\uDB8B\u5D70\u738F\u7CD3\uDB8C"+
- "\uDB8D\u4FC8\u7FE7\u72CD\u7310\uDB8E\u7338\u7339"+
- "\uDB8F\u7341\u7348\u3EA9\uDB90\u906C\u71F5\uDB91"+
- "\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419"+
- "\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E"+
- "\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC"+
- "\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\uDB92\u7188"+
- "\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045"+
- "\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2"+
- "\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866"+
- "\u8448\uDB93\u7933\u6803\u7932\u4103\u4109\u7991"+
- "\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC"+
- "\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C"+
- "\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C"+
- "\u7CB8\u4294\u7CED\u8F93\u70C0\uDB94\u7DCF\u7DD4"+
- "\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025"+
- "\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7"+
- "\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114"+
- "\u4401\u3B39\u8156\u8159\u815A\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u4413"+
- "\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF"+
- "\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8"+
- "\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464"+
- "\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538"+
- "\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692"+
- "\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF"+
- "\u8924\u8947\u8991\uDB95\u8A29\u8A38\u8A94\u8AB4"+
- "\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED"+
- "\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837"+
- "\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA"+
- "\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228"+
- "\u9258\u926B\u92B1\u92AE\u92BF\u92E3\u92EB\u92F3"+
- "\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF"+
- "\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479"+
- "\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24"+
- "\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9"+
- "\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937"+
- "\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F"+
- "\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20"+
- "\u376F\uDB96\u9D49\u9C3A\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u9EFE\u5650"+
- "\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC"+
- "\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8"+
- "\u9F44\uDB97\uDB98\uDB99\u691A\u94C3\u59AC\uDB9A"+
- "\u5840\u94C1\u37B9\uDB9B\uDB9C\uDB9D\uDB9E\u5757"+
- "\u7173\uDB9F\uDBA0\uDBA1\u546A\uDBA2\uDBA3\u549E"+
- "\uDBA4\uDBA5\uDBA6\uDBA7\uDBA8\u60E7\uDBA9\u567A"+
- "\uDBAA\uDBAB\uDBAC\uDBAD\uDBAE\uDBAF\u6955\u9C2F"+
- "\u87A5\uDBB0\uDBB1\uDBB2\uDBB3\uDBB4\uDBB5\u5C20"+
- "\uDBB6\u5E0B\uDBB7\uDBB8\uDBB9\u671E\uDBBA\uDBBB"+
- "\uDBBC\u3647\uDBBD\uDBBE\uDBBF\uDBC0\u5364\u84AD"+
- "\uDBC1\uDBC2\uDBC3\u8B81\uDBC4\uDBC5\uDBC6\uDBC7"+
- "\u4E78\u70BB\uDBC8\uDBC9\uDBCA\uDBCB\uDBCC\uDBCD"+
- "\uDBCE\uDBCF\u62C3\uDBD0\uDBD1\u7198\u6855\uDBD2"+
- "\u69E9\u36C8\uDBD3\uDBD4\uDBD5\uDBD6\uDBD7\uDBD8"+
- "\u82FD\uDBD9\uDBDA\uDBDB\u89A5\uDBDC\u8FA0\uDBDD"+
- "\u97B8\uDBDE\u9847\u9ABD\uDBDF\uFFFD\uDBE0\uDBE1"+
- "\uDBE2\uDBE3\uDBE4\uDBE5\uDBE6\uDBE7\uDBE8\uDBE9"+
- "\uDBEA\uDBEB\uDBEC\uDBED\u5FB1\u6648\u66BF\uDBEE"+
- "\uDBEF\uDBF0\uFFFD\uDBF1\uFFFD\uDBF2\uDBF3\uFFFD"+
- "\uDBF4\u58B5\u670E\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u6918\uDBF5\uDBF6"+
- "\uDBF7\uDBF8\uDBF9\uDBFA\uDBFB\u48D0\u4AB8\uDBFC"+
- "\uDBFD\uDBFE\uDBFF\uDC00\uDC01\uDC02\uDC03\uDC04"+
- "\u51D2\uDC05\u599F\uDC06\u3BBE\uDC07\uDC08\uDC09"+
- "\u5788\uDC0A\u399B\uDC0B\uDC0C\uDC0D\u3762\uDC0E"+
- "\u8B5E\uDC0F\uFFFD\uDC10\uDC11\uDC12\u7209\uDC13"+
- "\uDC14\u5965\uDC15\uDC16\uDC17\u8EDA\uDC18\u528F"+
- "\u573F\u7171\uDC19\uDC1A\uDC1B\uDC1C\u55BC\uDC1D"+
- "\uDC1E\uDC1F\uFFFD\u3473\uDC20\uDC21\uDC22\u4718"+
- "\uDC23\uDC24\uDC25\uDC26\uDC27\u5066\u34FB\uDC28"+
- "\uFFFD\uDC29\u477C\uDC2A\uDC2B\uDC2C\uDC2D\uDC2E"+
- "\u57A1\u7151\uFFFD\uDC2F\uDC30\u9056\uDC31\uDC32"+
- "\u8B62\uDC33\uDC34\u5D5B\uDC35\uFFFD\uDC36\uDC37"+
- "\u8AEA\uDC38\uDC39\uDC3A\uDC3B\u4BC0\uDC3C\uDC3D"+
- "\uDC3E\u9465\uDC3F\u6195\u5A27\uDC40\uFFFD\u56B9"+
- "\uDC41\uDC42\u4E6A\uDC43\u9656\u6D8F\uDC44\u3618"+
- "\u8977\uDC45\uDC46\uDC47\uDC48\uFFFD\uDC49\u7B42"+
- "\uDC4A\uDC4B\uDC4C\uFFFD\uDC4D\u7A45\uFFFD\uDC4E"+
- "\u9A26\uDC4F\u365F\uDC50\uDC51\u7983\uDC52\uDC53"+
- "\u5D2C\uDC54\uFFFD\uDC55\u46D0\uDC56\u753B\u8865"+
- "\uDC57\u58B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\u371C\uDC58\uDC59\uDC5A"+
- "\u3C54\uDC5B\uDC5C\u9281\uDC5D\uDC5E\u9330\uDC5F"+
- "\uDC60\u6C39\u949F\uDC61\uDC62\u8827\u88F5\uDC63"+
- "\uDC64\uDC65\u6EB8\uDC66\uDC67\u39A4\u36B9\uFFFD"+
- "\uFFFD\u453F\u66B6\uDC68\uDC69\u8943\uDC6A\uDC6B"+
- "\u56D6\u40DF\uDC6C\u39A1\uDC6D\uDC6E\uDC6F\u71AD"+
- "\u8366\uDC70\uDC71\uFFFD\u4CB7\uDC72\uDC73\uDC74"+
- "\uDC75\uDC76\uDC77\uDC78\u7B43\u797E\uDC79\u6FB5"+
- "\uDC7A\u6A03\uDC7B\u53A2\uDC7C\u93BF\u6836\u975D"+
- "\uDC7D\uDC7E\uDC7F\uDC80\uDC81\uDC82\u5D85\uDC83"+
- "\uDC84\u5715\u9823\uDC85\u5DAB\uDC86\u65BE\u69D5"+
- "\u53D2\uDC87\uDC88\u3C11\u6736\uDC89\uDC8A\uDC8B"+
- "\uDC8C\uDC8D\uDC8E\uDC8F\uDC90\uDC91\uDC92\uDC93"+
- "\u35CA\uDC94\uDC95\u48FA\u63E6\uDC96\u7808\u9255"+
- "\uDC97\u43F2\uDC98\u43DF\uDC99\uDC9A\uDC9B\u59F8"+
- "\uDC9C\uFFFD\uDC9D\uDC9E\uFFFD\uDC9F\uDCA0\u3DF7"+
- "\uDCA1\uDCA2\u8FD0\u728F\u568B\uDCA3\uDCA4\uDCA5"+
- "\uDCA6\uDCA7\uDCA8\uDCA9\uDCAA\uDCAB\uDCAC\uDCAD"+
- "\uDCAE\uDCAF\u7E9F\uDCB0\uDCB1\u4CA4\u9547\uDCB2"+
- "\u71A2\uDCB3\u4D91\u9012\uDCB4\u4D9C\uDCB5\u8FBE"+
- "\u55C1\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u8FBA\uDCB6\u8FB9\uDCB7\u4509"+
- "\u7E7F\u6F56\u6AB1\u4EEA\u34E4\uDCB8\uDCB9\u373A"+
- "\u8E80\uDCBA\uDCBB\uDCBC\uDCBD\uDCBE\uDCBF\u3DEB"+
- "\uDCC0\uDCC1\uDCC2\uDCC3\u4E9A\uDCC4\uDCC5\u56BF"+
- "\uDCC6\u8E0E\u5B6D\uDCC7\uDCC8\u63DE\uFFFD\uDCC9"+
- "\uDCCA\u6530\u562D\uDCCB\u541A\uDCCC\u3DC6\uDCCD"+
- "\u4C7D\u5622\u561E\u7F49\uDCCE\u5975\uDCCF\u8770"+
- "\u4E1C\uDCD0\uDCD1\uDCD2\u8117\u9D5E\u8D18\u763B"+
- "\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625"+
- "\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\uDCD3"+
- "\u35CE\u5605\u55F1\u66F1\uDCD4\u362D\u7534\u55F0"+
- "\u55BA\u5497\u5572\uDCD5\uDCD6\u5ED0\uDCD7\uDCD8"+
- "\uDCD9\uDCDA\u9EAB\u7D5A\u55DE\uDCDB\u629D\u976D"+
- "\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569"+
- "\uDCDC\u9C72\uDCDD\u519A\u34DF\uDCDE\u51A7\u544D"+
- "\u551E\u5513\u7666\u8E2D\uDCDF\u75B1\u80B6\u8804"+
- "\u8786\u88C7\u81B6\u841C\uDCE0\u44EC\u7304\uDCE1"+
- "\u5B90\u830B\uDCE2\u567B\uDCE3\uDCE4\uDCE5\uDCE6"+
- "\uDCE7\uDCE8\u9170\uDCE9\u9208\uDCEA\uDCEB\uDCEC"+
- "\uDCED\u7266\uDCEE\u474E\uDCEF\uDCF0\uDCF1\u40FA"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\u9C5D\u651F\uDCF2\u48F3\uDCF3\uDCF4"+
- "\uDCF5\uDCF6\uFFFD\uDCF7\uDCF8\uFFFD\uDCF9\uDCFA"+
- "\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2"+
- "\u5367\u36AC\u39DC\u537D\u36A5\uDCFB\u589A\uDCFC"+
- "\u822D\u544B\u57AA\uDCFD\uDCFE\uFFFD\u3A52\uDCFF"+
- "\u7374\uDD00\u4D09\u9BED\uDD01\uDD02\u4C5B\uDD03"+
- "\uDD04\uDD05\u845C\uDD06\uDD07\uDD08\uDD09\u632E"+
- "\u7D25\uDD0A\uDD0B\u3A2A\u9008\u52CC\u3E74\u367A"+
- "\u45E9\uDD0C\u7640\u5AF0\uDD0D\u787A\u47B6\u58A7"+
- "\u40BF\u567C\u9B8B\u5D74\u7654\uDD0E\u9E85\u4CE1"+
- "\uFFFD\u37FB\u6119\uDD0F\uDD10\uFFFD\u565D\uDD11"+
- "\u57A7\uDD12\uDD13\u5234\uDD14\u35AD\uFFFD\u9D7C"+
- "\u7C56\u9B39\u57DE\uDD15\u5C53\u64D3\uDD16\uDD17"+
- "\uDD18\u86AD\uDD19\uDD1A\uDD1B\uDD1C\uFFFD\u51FE"+
- "\uDD1D\u5D8E\u9703\uDD1E\u9E81\u904C\u7B1F\u9B02"+
- "\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E"+
- "\uFFFD\u7C42\u7C86\u9C15\u7BFC\u9B09\uFFFD\u9C1B"+
- "\uDD1F\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260"+
- "\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB"+
- "\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980"+
- "\u50A6\u7546\uDD20\u99DA\u5273\uFFFD\u9159\u9681"+
- "\u915C\uFFFD\u9151\uDD21\u637F\uDD22\u6ACA\u5611"+
- "\u918E\u757A\u6285\uDD23\u734F\u7C70\uDD24\uDD25"+
- "\uFFFD\uDD26\u76D6\u9B9D\u4E2A\uDD27\u83BE\u8842"+
- "\uFFFD\u5C4A\u69C0\uFFFD\u577A\u521F\u5DF5\u4ECE"+
- "\u6C31\uDD28\u4F39\u549C\u54DA\u529A\u8D82\u35FE"+
- "\uFFFD\u35F3\uFFFD\u6B52\u917C\u9FA5\u9B97\u982E"+
- "\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14\uFFFD\u6BFA"+
- "\u8818\u7F78\uFFFD\u5620\uDD29\u8E77\u9F53\uFFFD"+
- "\u8DD4\u8E4F\u9E1C\u8E01\u6282\uDD2A\u8E28\u8E75"+
- "\u7AD3\uDD2B\u7A3E\u78D8\u6CEA\u8A67\u7607\uDD2C"+
- "\u9F26\u6CCE\u87D6\u75C3\uDD2D\u7853\uDD2E\u8D0C"+
- "\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\uDD2F\u862F"+
- "\u5FBA\u88A0\u44B7\uFFFD\uDD30\uDD31\uFFFD\u8A7E"+
- "\uDD32\uFFFD\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F"+
- "\u87F5\uFFFD\uFFFD\u8CF7\u732C\u9721\u9BB0\u35D6"+
- "\u72B2\u4C07\u7C51\u994A\uDD33\u6159\u4C04\u9E96"+
- "\u617D\uFFFD\u575F\u616F\u62A6\u6239\uFFFD\u3A5C"+
- "\u61E2\u53AA\uDD34\u6364\u6802\u35D2\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\u5D57\uDD35\u8FDA\uDD36\uFFFD\u50D9\uDD37\u7906"+
- "\u5332\u9638\uDD38\u4065\uFFFD\u77FE\uFFFD\u7CC2"+
- "\uDD39\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2"+
- "\u8994\u821A\u670C\u8062\uDD3A\u805B\u74F0\u8103"+
- "\u7724\u8989\uDD3B\u7553\uDD3C\u87A9\u87CE\u81C8"+
- "\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635"+
- "\u69B2\u8DA6\uFFFD\u89A9\uFFFD\u6DB9\u87C1\uDD3D"+
- "\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\uFFFD\u6077"+
- "\uFFFD\u7F71\uDD3E\uFFFD\u60E9\u4B7E\u5220\u3C18"+
- "\uDD3F\uDD40\uDD41\uDD42\uDD43\uDD44\uDD45\uDD46"+
- "\uDD47\u5CC1\uDD48\uDD49\uDD4A\uDD4B\uDD4C\uDD4D"+
- "\u4562\u5B1F\uDD4E\u9F50\u9EA6\uDD4F\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2460"+
- "\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468"+
- "\u2469\u2474\u2475\u2476\u2477\u2478\u2479\u247A"+
- "\u247B\u247C\u247D\u2170\u2171\u2172\u2173\u2174"+
- "\u2175\u2176\u2177\u2178\u2179\u4E36\u4E3F\u4E85"+
- "\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6"+
- "\u590A\u5B80\u5DDB\u2F33\u5E7F\uFFFD\u5F50\u5F61"+
- "\u6534\uFFFD\u7592\uFFFD\u8FB5\uFFFD\u00A8\u02C6"+
- "\u30FD\u30FE\u309D\u309E\uFFFD\uFFFD\u3005\u3006"+
- "\u3007\u30FC\uFF3B\uFF3D\u273D\u3041\u3042\u3043"+
- "\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B"+
- "\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053"+
- "\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B"+
- "\u305C\u305D\u305E\u305F\u3060\u3061\u3062\u3063"+
- "\u3064\u3065\u3066\u3067\u3068\u3069\u306A\u306B"+
- "\u306C\u306D\u306E\u306F\u3070\u3071\u3072\u3073"+
- "\u3074\u3075\u3076\u3077\u3078\u3079\u307A\u307B"+
- "\u307C\u307D\u307E\u307F\u3080\u3081\u3082\u3083"+
- "\u3084\u3085\u3086\u3087\u3088\u3089\u308A\u308B"+
- "\u308C\u308D\u308E\u308F\u3090\u3091\u3092\u3093"+
- "\u30A1\u30A2\u30A3\u30A4\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u30A5\u30A6"+
- "\u30A7\u30A8\u30A9\u30AA\u30AB\u30AC\u30AD\u30AE"+
- "\u30AF\u30B0\u30B1\u30B2\u30B3\u30B4\u30B5\u30B6"+
- "\u30B7\u30B8\u30B9\u30BA\u30BB\u30BC\u30BD\u30BE"+
- "\u30BF\u30C0\u30C1\u30C2\u30C3\u30C4\u30C5\u30C6"+
- "\u30C7\u30C8\u30C9\u30CA\u30CB\u30CC\u30CD\u30CE"+
- "\u30CF\u30D0\u30D1\u30D2\u30D3\u30D4\u30D5\u30D6"+
- "\u30D7\u30D8\u30D9\u30DA\u30DB\u30DC\u30DD\u30DE"+
- "\u30DF\u30E0\u30E1\u30E2\u30E3\u30E4\u30E5\u30E6"+
- "\u30E7\u30E8\u30E9\u30EA\u30EB\u30EC\u30ED\u30EE"+
- "\u30EF\u30F0\u30F1\u30F2\u30F3\u30F4\u30F5\u30F6"+
- "\u0410\u0411\u0412\u0413\u0414\u0415\u0401\u0416"+
- "\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E"+
- "\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426"+
- "\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E"+
- "\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0451"+
- "\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D"+
- "\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445"+
- "\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D"+
- "\u044E\u044F\u21E7\u21B8\u21B9\uF7E5\uDD50\u4E5A"+
- "\uDD51\u5202\uF7EA\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uF7EB\u5188\uF7ED"+
- "\uDD52\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121"+
- "\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A"+
- "\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA"+
- "\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC"+
- "\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3\uFFFD\uFFFD"+
- "\uFFFD\u0283\u0250\u025B\u0254\u0275\u0153\u00F8"+
- "\u014B\u028A\u026A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA"+
- "\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569"+
- "\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558"+
- "\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562"+
- "\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570"+
- "\u256F\uFFED\uDD53\u92DB\uDD54\uDD55\u854C\u42B5"+
- "\u73EF\u51B5\u3649\uDD56\uDD57\u9344\uDD58\u82EE"+
- "\uDD59\u783C\u6744\u62DF\uDD5A\uDD5B\uDD5C\uDD5D"+
- "\uDD5E\u4FAB\uDD5F\u5008\uDD60\uDD61\uDD62\uDD63"+
- "\uDD64\uFFFD\uDD65\u5FA4\uDD66\uDD67\u6EDB\uDD68"+
- "\uFFFD\u5101\u347A\u510E\u986C\u3743\u8416\uDD69"+
- "\uDD6A\u5160\uDD6B\u516A\uDD6C\uDD6D\uDD6E\uDD6F"+
- "\uDD70\uDD71\uDD72\u5B82\u877D\uDD73\uDD74\u51B2"+
- "\u51B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\u9D34\u51C9\u51CF\u51D1\u3CDC"+
- "\u51D3\uDD75\u51B3\u51E2\u5342\u51ED\u83CD\u693E"+
- "\uDD76\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294"+
- "\u52B9\u52C5\u7C15\u8542\u52E0\u860D\uDD77\uFFFD"+
- "\uDD78\u5549\u6ED9\uDD79\uDD7A\uDD7B\u5333\uFFFD"+
- "\uDD7C\u6CCB\uDD7D\u681B\u73D5\u604A\u3EAA\u38CC"+
- "\uDD7E\u71DD\u44A2\u536D\u5374\uDD7F\u537E\uFFFD"+
- "\uDD80\uDD81\u77E6\u5393\uDD82\u53A0\u53AB\u53AE"+
- "\u73A7\uDD83\u3F59\u739C\u53C1\u53C5\u6C49\u4E49"+
- "\u57FE\u53D9\u3AAB\uDD84\u53E0\uDD85\uDD86\u53F6"+
- "\uDD87\u5413\u7079\u552B\u6657\u6D5B\u546D\uDD88"+
- "\uDD89\u555D\u548F\u54A4\u47A6\uDD8A\uDD8B\u3DB4"+
- "\uDD8C\uDD8D\uDD8E\u5547\u4CED\u542F\u7417\u5586"+
- "\u55A9\uFFFD\uDD8F\uDD90\u4552\uDD91\u66B3\uDD92"+
- "\u5637\u66CD\uDD93\u66A4\u66AD\u564D\u564F\u78F1"+
- "\u56F1\u9787\u53FE\u5700\u56EF\u56ED\uDD94\u3623"+
- "\uDD95\u5746\uDD96\u6C6E\u708B\u5742\u36B1\uDD97"+
- "\u57E6\uDD98\u5803\uDD99\uDD9A\u5826\uDD9B\u585C"+
- "\u58AA\u3561\u58E0\u58DC\uDD9C\u58FB\u5BFF\u5743"+
- "\uDD9D\uDD9E\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uDD9F\u5A24\u5553\uDDA0\u8505\u59C9"+
- "\uDDA1\uDDA2\uDDA3\uDDA4\u59D9\uDDA5\uDDA6\uDDA7"+
- "\u6D71\uDDA8\uDDA9\u59F9\uDDAA\u5AAB\u5A63\u36E6"+
- "\uDDAB\uFFFD\u3708\u5A96\u7465\u5AD3\uDDAC\uDDAD"+
- "\u3D85\uDDAE\u3732\uDDAF\u5E83\u52D0\u5B76\u6588"+
- "\u5B7C\uDDB0\u4004\u485D\uDDB1\u5BD5\u6160\uDDB2"+
- "\uDDB3\uDDB4\u5BF3\u5B9D\u4D10\u5C05\uDDB5\u5C13"+
- "\u73CE\u5C14\uDDB6\uDDB7\u5C49\u48DD\u5C85\u5CE9"+
- "\u5CEF\u5D8B\uDDB8\uDDB9\u5D10\u5D18\u5D46\uDDBA"+
- "\u5CBA\u5DD7\u82FC\u382D\uDDBB\uDDBC\uDDBD\u8287"+
- "\u3836\u3BC2\u5E2E\u6A8A\uFFFD\u5E7A\uDDBE\uDDBF"+
- "\u53A6\u4EB7\uFFFD\u53A8\uDDC0\u5E09\u5EF4\uDDC1";
-
- private final static String innerIndex2=
- "\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\uDDC2"+
- "\uDDC3\u3ADE\u48AE\uDDC4\u5F3A\uDDC5\uDDC6\uFFFD"+
- "\uDDC7\u5F63\u97BD\uDDC8\u5F72\u9340\uDDC9\u5FA7"+
- "\u5DB6\u3D5F\uDDCA\uDDCB\uDDCC\uDDCD\u91D6\uDDCE"+
- "\uDDCF\u6031\u6685\uDDD0\u3963\u3DC7\u3639\u5790"+
- "\uDDD1\u7971\u3E40\u609E\uFFFD\u60B3\uDDD2\uDDD3"+
- "\uDDD4\u74A4\u50E1\u5AA0\u6164\u8424\u6142\uDDD5"+
- "\uDDD6\u6181\u51F4\uDDD7\u6187\u5BAA\uDDD8\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uDDD9\u61D3\uDDDA\uDDDB\u61D0\u3932\uDDDC"+
- "\uDDDD\u6023\u615C\u651E\u638B\uDDDE\u62C5\uDDDF"+
- "\u62D5\uDDE0\u636C\uDDE1\u3A17\u6438\u63F8\uDDE2"+
- "\uDDE3\uFFFD\u6F8A\uDDE4\u9814\uDDE5\uDDE6\u64E1"+
- "\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\uDDE7"+
- "\uDDE8\u6585\u656D\u655F\uDDE9\u65B5\uDDEA\u4B37"+
- "\u65D1\u40D8\uDDEB\u65E0\u65E3\u5FDF\uDDEC\u6618"+
- "\uDDED\uDDEE\u6644\uDDEF\uDDF0\u664B\uDDF1\u6667"+
- "\uDDF2\u6673\uFFFD\uDDF3\uDDF4\uDDF5\uDDF6\uDDF7"+
- "\u77C5\uDDF8\u99A4\u6702\uDDF9\uDDFA\u3B2B\u69FA"+
- "\uDDFB\uFFFD\u6767\u6762\uDDFC\uDDFD\u67D7\u44E9"+
- "\u6822\u6E50\u923C\u6801\uDDFE\uDDFF\u685D\uDE00"+
- "\u69E1\u6A0B\uDE01\u6973\u68C3\uDE02\u6901\u6900"+
- "\u3D32\u3A01\uDE03\u3B80\u67AC\u6961\uDE04\u42FC"+
- "\u6936\u6998\u3BA1\uDE05\u8363\u5090\u69F9\uDE06"+
- "\uDE07\u6A45\uDE08\u6A9D\u3BF3\u67B1\u6AC8\uDE09"+
- "\u3C0D\u6B1D\uDE0A\u60DE\u6B35\u6B74\uDE0B\u6EB5"+
- "\uDE0C\uDE0D\uDE0E\u3740\u5421\uDE0F\u6BE1\uDE10"+
- "\u6BDC\u6C37\uDE11\uDE12\uDE13\u6C5A\u8226\u6C79"+
- "\uDE14\u44C5\uDE15\uDE16\uDE17\uDE18\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uDE19\u36E5\u3CEB\uDE1A\u9B83\uDE1B\uDE1C\u7F8F"+
- "\u6837\uDE1D\uDE1E\uDE1F\u6D96\u6D5C\u6E7C\u6F04"+
- "\uDE20\uDE21\uDE22\u8533\uDE23\u51C7\uFFFD\uFFFD"+
- "\u842E\uDE24\uFFFD\uDE25\u7453\uDE26\u79CC\u6E4F"+
- "\u5A91\uDE27\u6FF8\u370D\u6F9D\uDE28\u6EFA\uDE29"+
- "\uDE2A\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\uDE2B"+
- "\u3D3B\u6F9F\uDE2C\u6FD3\uDE2D\uDE2E\uDE2F\uDE30"+
- "\uDE31\uDE32\u51DF\uDE33\uDE34\uDE35\uDE36\u704B"+
- "\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104"+
- "\u3DE8\u71B4\u7196\uDE37\u712B\u7145\u5A88\u714A"+
- "\uFFFD\u5C9C\uDE38\u714F\u9362\uDE39\u712C\uDE3A"+
- "\uDE3B\uDE3C\u71BA\uDE3D\u70BD\u720E\u9442\u7215"+
- "\u5911\u9443\u7224\u9341\uDE3E\u722E\u7240\uDE3F"+
- "\u68BD\u7255\u7257\u3E55\uDE40\u680D\u6F3D\u7282"+
- "\uFFFD\u732B\uDE41\uDE42\u48ED\uDE43\u7328\u732E"+
- "\u73CF\u73AA\uDE44\uDE45\u73C9\u7449\uDE46\uDE47"+
- "\uDE48\u6623\u36C5\uDE49\uDE4A\uDE4B\u73F7\u7415"+
- "\u6903\uDE4C\u7439\uDE4D\u3ED7\uFFFD\uDE4E\u7460"+
- "\uDE4F\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474"+
- "\u93F1\u6A2C\u7482\u4953\uDE50\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"+
- "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uDE51"+
- "\uDE52\uDE53\u5B46\uDE54\uDE55\u74C8\uDE56\u750E"+
- "\uFFFD\u751E\uDE57\uDE58\u5BD7\uDE59\u9385\u754D"+
- "\u754A\u7567\u756E\uDE5A\u3F04\uDE5B\u758E\u745D"+
- "\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676"+
- "\uDE5C\u7690\u81EF\u37F8\uDE5D\uDE5E\u76A1\u76A5"+
- "\u76B7\u76CC\uDE5F\u8462\uDE60\uDE61\uDE62\u771E"+
- "\u7726\u7740\u64AF\uDE63\u7758\uDE64\u77AF\uDE65"+
- "\uDE66\uDE67\u77F4\uFFFD\uDE68\uDE69\u68CA\u78AF"+
- "\u78C7\u78D3\u96A5\u792E\uDE6A\u78D7\u7934\u78B1"+
- "\uDE6B\u8FB8\u8884\uDE6C\uDE6D\uDE6E\u7986\u8900"+
- "\u6902\u7980\uDE6F\u799D\uDE70\u793C\u79A9\u6E2A"+
- "\uDE71\u3EA8\u79C6\uDE72\u79D4";
-
- private final static short index1[] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, 32, 33, 34, 0
- };
-
- private final String SurrogateMappings =
- "\ud840\udd0c\ud840\udcd1\ud840\udccd\ud840\udccb"+
- "\ud847\udfe8\ud840\udcca\ud840\udd0e\ud868\udfa9"+
- "\ud844\udd45\ud85d\udf35\ud842\udde7\ud867\uddf6"+
- "\ud85c\udc0e\ud868\udd33\ud861\udc6c\ud847\uddca"+
- "\ud841\uddd0\ud84a\udee6\ud85f\udd84\ud843\udc42"+
- "\ud843\udd15\ud854\udd2b\ud84b\udcc6\ud840\udf41"+
- "\ud853\uddb8\ud865\udce5\ud860\udcbe\ud84b\udc38"+
- "\ud860\udd5d\ud85a\uddf2\ud853\uddea\ud843\udd7c"+
- "\ud843\udfb4\ud843\udcd5\ud844\udcf4\ud843\ude96"+
- "\ud843\udc0b\ud843\udf64\ud84b\udca9\ud860\ude56"+
- "\ud851\udcd3\ud843\udd46\ud866\ude4d\ud860\udce9"+
- "\ud853\udea7\ud84b\udcc2\ud865\uddf4\ud854\udec7"+
- "\ud865\udfd4\ud85e\udcc8\ud84b\udd44\ud858\udca5"+
- "\ud84b\udd4c\ud84a\udfca\ud844\udc77\ud844\udc6f"+
- "\ud859\udeda\ud859\udf16\ud85e\udda0\ud854\udc52"+
- "\ud843\udc43\ud848\udda1\ud862\udf4c\ud841\udf31"+
- "\ud840\udda9\ud84b\udd8d\ud851\uddc8\ud841\udcfc"+
- "\ud858\udc97\ud843\udf4c\ud843\udd96\ud84a\ude66"+
- "\ud844\udc9d\ud843\udd9c\ud849\udf75\ud869\ude01"+
- "\ud843\ude09\ud84a\udecf\ud84b\udcc9\ud844\udcc8"+
- "\ud84e\uddc2\ud860\ude9b\ud857\ude49\ud848\udcc7"+
- "\ud843\udf31\ud84b\udcb2\ud865\udf20\ud853\ude3b"+
- "\ud85d\udd74\ud84b\ude8b\ud848\ude08\ud869\ude5b"+
- "\ud863\udccd\ud843\ude7a\ud843\udc34\ud85a\udc1c"+
- "\ud844\udccf\ud84a\udc03\ud84a\udd39\ud854\udde3"+
- "\ud843\ude8c\ud843\udf8d\ud843\udeaa\ud843\udf30"+
- "\ud843\udd47\ud844\udd4f\ud843\ude4c\ud843\udeab"+
- "\ud842\udfa9\ud843\udd48\ud844\udcc0\ud844\udd3d"+
- "\ud849\ude96\ud843\udfad\ud84c\udff4\ud85d\ude39"+
- "\ud84a\udfce\ud843\udd7e\ud843\udd7f\ud84b\udc51"+
- "\ud84b\udc55\ud843\ude98\ud844\udcc7\ud843\udf2e"+
- "\ud869\ude32\ud85a\udf50\ud863\udcd2\ud863\udd99"+
- "\ud863\udcca\ud867\udec3\ud85d\udf5e\ud84b\uddee"+
- "\ud859\udd72\ud860\udcbd\ud843\udefa\ud843\ude0f"+
- "\ud843\ude77\ud843\udefb\ud853\uddeb\ud843\udcd6"+
- "\ud849\udfb5\ud844\udcc9\ud843\ude10\ud843\ude78"+
- "\ud844\udc78\ud844\udd48\ud860\ude07\ud845\udc55"+
- "\ud843\ude79\ud853\ude50\ud84b\udda4\ud844\udc1d"+
- "\ud844\udc1e\ud844\udcf5\ud844\udcf6\ud843\ude11"+
- "\ud85d\ude94\ud860\udecd\ud843\udfb5\ud843\ude7b"+
- "\ud854\udd7e\ud843\udfb6\ud844\udd80\ud854\uded8"+
- "\ud868\udebd\ud852\uddda\ud846\udc3a\ud850\udd77"+
- "\ud860\ude7c\ud855\udf3d\ud856\udf74\ud84c\udd3d"+
- "\ud846\udfc1\ud87e\udc78\ud840\udc86\ud852\udce9"+
- "\ud858\ude6a\ud858\udf4b\ud859\ude12\ud85a\udd51"+
- "\ud85e\udcb2\ud863\ude0f\ud866\udc10\ud840\udc87"+
- "\ud867\udc73\ud850\udd4e\ud854\uddcd\ud857\udd30"+
- "\ud862\ude32\ud84c\ude81\ud868\udd07\ud846\udd80"+
- "\ud861\udf0f\ud868\udeba\ud866\udd47\ud862\udeea"+
- "\ud848\udc7e\ud862\udde3\ud847\uddb6\ud849\udf12"+
- "\ud84c\udff9\ud84f\udc63\ud851\udd05\ud852\ude13"+
- "\ud857\udca4\ud855\ude95\ud863\uddb9\ud845\udc3f"+
- "\ud852\udd7b\ud85c\udd0d\ud85b\udd74\ud85a\udf15"+
- "\ud85b\udfbe\ud862\uddc0\ud84f\udf41\ud840\udf25"+
- "\ud843\uded8\ud84f\uded7\ud85b\uded3\ud855\udfe0"+
- "\ud862\udfe9\ud856\udce1\ud865\udcd9\ud856\uddac"+
- "\ud859\udc8d\ud857\udc01\ud854\udf0e\ud857\udcfe"+
- "\ud856\udfb4\ud85b\udc7f\ud857\udd20\ud857\udc65"+
- "\ud857\udcc1\ud852\udc82\ud851\udd78\ud85b\ude44"+
- "\ud85b\uded6\ud850\udc57\ud858\udc29\ud845\udff9"+
- "\ud860\udf6d\ud858\udd21\ud858\udd5a\ud858\uded0"+
- "\ud858\udf51\ud845\ude61\ud840\udc68\ud84d\udf66"+
- "\ud860\udf3a\ud859\udc89\ud868\udc87\ud85b\udcc3"+
- "\ud849\udf14\ud859\ude26\ud84f\udde3\ud859\udee8"+
- "\ud862\ude48\ud849\udef6\ud859\udc98\ud853\udfb8"+
- "\ud845\udc8a\ud846\udc5e\ud852\ude65\ud852\ude95"+
- "\ud842\udf0d\ud85a\ude52\ud84f\udd7e\ud845\udcfd"+
- "\ud85a\udf0a\ud852\udda7\ud84d\udd30\ud845\udf73"+
- "\ud84f\uddf8\ud87e\udd94\ud843\ude16\ud845\udfb4"+
- "\ud84c\udd7d\ud84d\udd5a\ud84f\ude8b\ud85b\udda3"+
- "\ud85a\udf05\ud85a\udf97\ud84d\uddce\ud85b\udda5"+
- "\ud85b\uded4\ud85b\ude42\ud84b\udeef\ud856\udfe4"+
- "\ud84f\udcb5\ud85a\udf96\ud85b\ude77\ud85b\ude43"+
- "\ud857\udc91\ud857\udcc0\ud85b\ude99\ud861\ude25"+
- "\ud861\ude3b\ud85c\udc88\ud845\udd82\ud85c\udccd"+
- "\ud87e\uddb2\ud846\udca2\ud85c\udf9a\ud868\udcf8"+
- "\ud84b\udc27\ud85d\udde0\ud84f\uddb9\ud85d\udde4"+
- "\ud85d\udf0f\ud862\ude25\ud85e\udd24\ud85e\udebd"+
- "\ud85e\ude59\ud85e\udf3a\ud84f\udf8f\ud85e\udf38"+
- "\ud855\udc30\ud855\udd65\ud852\ude7a\ud845\udedf"+
- "\ud85f\udd54\ud85f\udd8f\ud87e\uddd4\ud85f\udd53"+
- "\ud85f\udd98\ud85f\uddbd\ud846\udd10\ud853\udcc9"+
- "\ud860\udc02\ud844\udc14\ud852\udd8a\ud860\uddbc"+
- "\ud85c\udd0c\ud860\udf65\ud861\udc12\ud868\ude9f"+
- "\ud842\ude50\ud862\uddde\ud861\udd3d\ud84f\uddbb"+
- "\ud84c\ude62\ud868\udc14\ud861\udebc\ud861\udd01"+
- "\ud848\udf25\ud85b\uded7\ud861\udd3c\ud85e\udebe"+
- "\ud861\udd6c\ud861\ude0b\ud861\udf13\ud861\udee6"+
- "\ud862\udd33\ud847\ude89\ud855\uddb9\ud862\udec6"+
- "\ud84f\udc9b\ud862\udf0c\ud855\udddb\ud843\udd31"+
- "\ud862\udee1\ud862\udfeb\ud862\udee2\ud862\udee5"+
- "\ud862\udfec\ud863\udc39\ud862\udfff\ud849\ude7a"+
- "\ud861\uded8\ud844\ude7c\ud84f\ude2e\ud85b\uded5"+
- "\ud862\udee0\ud85b\udcb8\ud840\ude74\ud859\udc10"+
- "\ud864\udcaf\ud864\udce5\ud852\uded1\ud846\udd15"+
- "\ud84c\udf0a\ud852\udee9\ud864\uddd5\ud864\uddeb"+
- "\ud84c\udcb7\ud84c\udcbc\ud855\udc6c\ud865\udc33"+
- "\ud865\udc1d\ud85e\udd7a\ud85c\udd75\ud841\ude30"+
- "\ud850\udd5c\ud855\udf06\ud85b\udd27\ud845\uded3"+
- "\ud852\ude29\ud866\udc57\ud866\udd05\ud855\udf25"+
- "\ud864\udcb1\ud866\udfd5\ud866\udf05\ud861\ude00"+
- "\ud85a\udda8\ud84c\udc7d\ud867\udd3e\ud846\udc63"+
- "\ud850\ude4b\ud867\ude68\ud867\udfb7\ud868\udd92"+
- "\ud868\uddab\ud868\udce1\ud868\udd23\ud868\udddf"+
- "\ud868\udd34\ud848\udd5b\ud868\udd93\ud868\ude20"+
- "\ud846\udd3b\ud868\ude33\ud868\udcb9\ud868\udeb4"+
- "\ud850\udf64\ud863\udc2b\ud85b\udda2\ud864\udc8b"+
- "\ud852\udd75\ud852\uddbb\ud852\uddf8\ud850\udf48"+
- "\ud852\ude51\ud862\udfda\ud846\udcfa\ud862\udd7e"+
- "\ud863\ude36\ud862\ude44\ud862\udd6c\ud851\udcb9"+
- "\ud851\udc73\ud850\udff8\ud845\udfef\ud846\udcbe"+
- "\ud84d\udd99\ud846\udc85\ud855\udc2f\ud845\udff8"+
- "\ud845\udefb\ud846\udc39\ud845\udf74\ud846\udcd1"+
- "\ud857\udf4b\ud845\udec0\ud852\ude25\ud844\udffe"+
- "\ud844\udea8\ud844\udfc6\ud845\udcb6\ud84d\udea6"+
- "\ud852\udd94\ud85c\udd65\ud84f\ude31\ud855\udd5c"+
- "\ud84f\udefb\ud85c\udc52\ud84d\udeee\ud866\udd9d"+
- "\ud85b\udf26\ud846\udd22\ud84d\udf3f\ud850\udce1"+
- "\ud850\udc8b\ud850\udd0f\ud85b\udc21\ud859\udeb1"+
- "\ud843\udfdf\ud842\udfa8\ud843\ude0d\ud862\udf13"+
- "\ud851\udc36\ud841\udc65\ud840\udf7f\ud855\ude51"+
- "\ud840\uddab\ud840\udfcb\ud840\udf0a\ud841\udc14"+
- "\ud840\udec0\ud863\udeb3\ud840\ude75\ud840\ude0c"+
- "\ud852\ude0e\ud84f\ude8a\ud84d\udd95\ud84f\ude39"+
- "\ud84f\udebf\ud846\udc84\ud84f\ude89\ud841\udde0"+
- "\ud841\udca3\ud841\udc92\ud841\udc91\ud862\ude9c"+
- "\ud841\udf0e\ud842\udc73\ud850\udf8c\ud843\udc20"+
- "\ud852\uddac\ud844\udce4\ud843\ude1d\ud852\udebc"+
- "\ud850\udc8d\ud850\udcc9\ud840\udf45\ud842\udfc6"+
- "\ud862\ude46\ud845\udefa\ud845\udf6f\ud845\udf10"+
- "\ud856\udd46\ud846\uddf3\ud846\udc61\ud850\ude95"+
- "\ud857\ude83\ud862\udfd7\ud841\udc13\ud844\udf03"+
- "\ud862\uddfb\ud846\udd96\ud846\udd7c\ud84e\udeee"+
- "\ud846\udd03\ud846\udd04\ud846\udca0\ud845\udefe"+
- "\ud862\ude47\ud847\uddba\ud84d\udc72\ud862\udda8"+
- "\ud846\udd27\ud845\udfab\ud845\udf3b\ud85d\uddfd"+
- "\ud84a\udc60\ud849\ude2b\ud849\uddaf\ud849\uddbe"+
- "\ud864\udc88\ud85b\udf73\ud840\udc3e\ud840\udc46"+
- "\ud849\ude1b\ud84b\udc9b\ud84b\udd07\ud851\uded4"+
- "\ud864\udd4d\ud851\ude65\ud84a\udf6a\ud84a\udf22"+
- "\ud84d\udc50\ud866\udcea\ud84b\ude78\ud869\udc5b"+
- "\ud852\udde3\ud84b\udd67\ud84b\udca1\ud84c\udc8e"+
- "\ud84c\udead\ud852\udd89\ud84c\udeab\ud84c\udee0"+
- "\ud846\udcd9\ud865\udc3f\ud84c\ude89\ud84c\uddb3"+
- "\ud855\udd84\ud862\udf22\ud855\udd8f\ud845\udefc"+
- "\ud855\udd5b\ud855\udc25\ud84c\udd03\ud846\udc2a"+
- "\ud84c\ude34\ud84c\ude0f\ud84c\udd82\ud850\udec9"+
- "\ud85b\udd24\ud85e\udc70\ud847\uddeb\ud84c\uded2"+
- "\ud84c\udee1\ud856\udc72\ud84e\udc3a\ud84d\udfbc"+
- "\ud84d\udfa2\ud84c\udffe\ud851\ude2a\ud84d\udfd5"+
- "\ud851\udc87\ud846\udd12\ud84f\udfc0\ud84f\udc9a"+
- "\ud862\udfea\ud862\udecb\ud860\udc1e\ud862\udddc"+
- "\ud852\uddec\ud84f\udf7f\ud850\udc3c\ud850\udf1a"+
- "\ud850\ude76\ud851\udf8f\ud851\udf25\ud852\udea4"+
- "\ud841\uddeb\ud84f\udef8\ud84d\ude5f\ud852\ude4a"+
- "\ud852\udd17\ud857\udfe1\ud852\udedf\ud863\udc23"+
- "\ud84f\udf35\ud85b\uddea\ud853\udcd9\ud853\udd06"+
- "\ud869\uddc6\ud862\udecc\ud852\uddab\ud852\udd8e"+
- "\ud852\ude4e\ud852\uddc5\ud852\udcf3\ud862\udee3"+
- "\ud846\udc64\ud854\ude21\ud854\udde7\ud84c\ude32"+
- "\ud851\ude97\ud84d\udf81\ud852\udcf0\ud852\udeba"+
- "\ud852\udec7\ud852\ude96\ud858\uddae\ud855\udd81"+
- "\ud85d\udf41\ud855\udee3\ud84f\udefa\ud845\udee6"+
- "\ud843\udd4c\ud852\udd8c\ud840\ude99\ud84f\uddba"+
- "\ud845\udf6e\ud840\uddd4\ud843\udc0d\ud849\udef5"+
- "\ud856\udeaf\ud856\ude9c\ud840\ude5b\ud856\udfc6"+
- "\ud856\udfb3\ud857\udebc\ud857\udea6\ud852\uddf9"+
- "\ud845\udfb0\ud858\ude61\ud858\udd5c\ud85e\udf48"+
- "\ud857\ude82\ud85a\udf75\ud842\udd16\ud840\udc4e"+
- "\ud84d\uddcf\ud859\udc12\ud858\udff8\ud852\udd62"+
- "\ud842\udc2c\ud856\udee9\ud857\udd43\ud857\ude0e"+
- "\ud84d\udc3f\ud852\uddf7\ud859\uddad\ud859\udda0"+
- "\ud85c\udd27\ud85b\udcd1\ud859\udfb4\ud85a\ude42"+
- "\ud85a\ude51\ud85b\udda7\ud85c\ude1b\ud846\udc40"+
- "\ud846\udca1\ud846\udcd8\ud87e\uddbc\ud84f\udd8f"+
- "\ud85d\udc22\ud855\ude83\ud85d\udf85\ud85d\udf84"+
- "\ud862\udff5\ud862\udfd9\ud862\udf9c\ud862\uddf9"+
- "\ud865\udc48\ud850\ude84\ud846\udc45\ud85f\udddc"+
- "\ud853\udc09\ud848\udf21\ud845\udfda\ud852\udd2f"+
- "\ud862\ude4b\ud862\udefc\ud863\udc1d\ud863\udc3b"+
- "\ud863\udd34\ud852\udcff\ud852\ude42\ud850\udfea"+
- "\ud84c\ude25\ud863\udee7\ud863\ude66\ud863\ude65"+
- "\ud852\udded\ud852\ude78\ud84f\udfee\ud864\udcb0"+
- "\ud864\udc93\ud855\udfdf\ud862\udd89\ud863\udc26"+
- "\ud862\udf2f\ud858\udfbe\ud850\ude1b\ud843\udf26"+
- "\ud862\udfc5\ud852\udeb2\ud865\udcda\ud865\uddd7"+
- "\ud862\udf50\ud852\ude67\ud862\udf64\ud862\ude45"+
- "\ud85e\udf06\ud862\udf65\ud856\udcc8\ud866\udcf1"+
- "\ud866\udd48\ud844\udf02\ud852\uddb8\ud845\udce8"+
- "\ud849\udf1f\ud84f\uddb8\ud849\udf81\ud84a\udd6b"+
- "\ud867\ude2d\ud868\uddf5\ud868\udcfe\ud850\udd04"+
- "\ud868\uddb4\ud868\udced\ud868\udcf3\ud866\udd2f"+
- "\ud85b\ude12\ud85b\udfdf\ud85a\udf82\ud85b\udda4"+
- "\ud85b\ude84\ud85b\uddf0\ud85b\ude00\ud84d\udfd7"+
- "\ud858\udc64\ud84d\udd9c\ud84d\ude40\ud852\uddde"+
- "\ud840\udebf\ud855\udd5d\ud845\udf57\ud84c\uddc9"+
- "\ud852\udd41\ud850\uddb5\ud850\uddac\ud85b\udc40"+
- "\ud853\udf97\ud845\udfb5\ud862\ude49\ud851\udc88"+
- "\ud862\uddfc\ud846\udcd6\ud843\udf1d\ud85b\udcc0"+
- "\ud845\udc13\ud850\udefa\ud84b\udc26\ud850\udfc1"+
- "\ud84f\uddb7\ud859\udf41\ud858\udd5b\ud858\udca4"+
- "\ud852\uddb9\ud852\udd8b\ud862\uddfa\ud862\udf63"+
- "\ud846\udc9f\ud852\udeb3\ud852\ude3e\ud852\ude94"+
- "\ud845\udfd9\ud852\ude66\ud840\udfa7\ud845\udc24"+
- "\ud852\udde5\ud852\udd16\ud852\udd76\ud841\udcfe"+
- "\ud862\udece\ud862\ude16\ud862\udfe7\ud855\uddd5"+
- "\ud862\ude82\ud852\udd43\ud843\udcff\ud841\ude1a"+
- "\ud842\udfeb\ud843\udcb8\ud845\udffa\ud845\udec2"+
- "\ud852\ude50\ud846\udc52\ud862\udec0\ud852\uddad"+
- "\ud846\udcbf\ud846\udc83\ud85d\udc84\ud84f\udd5b"+
- "\ud862\ude81\ud846\udc62\ud842\udeb4\ud844\udf9c"+
- "\ud860\ude18\ud864\udce4\ud85f\ude4f\ud84f\udfed"+
- "\ud84f\ude2d\ud840\udff5\ud863\udc1c\ud85a\udfc0"+
- "\ud845\udc52\ud850\udf62\ud852\ude71\ud84b\udfe3"+
- "\ud844\udeb0\ud848\udfbd\ud844\udf98\ud84d\udce5"+
- "\ud85e\udff4\ud84d\udedf\ud862\ude83\ud84d\udfd6"+
- "\ud84c\udffa\ud853\udc9f\ud84d\udead\ud85b\udcb7"+
- "\ud85b\udd26\ud85b\udd51\ud85b\udc82\ud85b\udfde"+
- "\ud85c\udd09\ud845\udf3a\ud85b\udc80\ud85c\udc53"+
- "\ud845\udfdb\ud845\udfb3\ud846\udd05\ud850\uddfc"+
- "\ud845\udf3c\ud850\udea5\ud850\ude93\ud84f\udef9"+
- "\ud85d\udf36\ud851\udc5b\ud850\udeca\ud850\ude59"+
- "\ud862\udde1\ud85b\udd28\ud851\udcce\ud85f\ude4d"+
- "\ud850\udfbd\ud850\ude56\ud844\udf04\ud850\udfe9"+
- "\ud87e\udc25\ud852\ude4f\ud852\ude5d\ud845\udfdf"+
- "\ud84e\udefa\ud84c\udf00\ud840\ude14\ud842\udcd5"+
- "\ud841\ude19\ud847\udf9e\ud868\udeb6\ud864\udd5b"+
- "\ud862\ude59\ud865\udc20\ud85e\udef4\ud855\udef6"+
- "\ud85e\udf18\ud852\udcf2\ud853\udf5c\ud855\udd35"+
- "\ud843\udccf\ud85e\udd67\ud846\udfc2\ud840\udc94"+
- "\ud840\udeb7\ud840\udfa0\ud841\udcd7\ud841\uddd5"+
- "\ud841\ude15\ud841\ude76\ud845\udeba\ud842\udec2"+
- "\ud842\udecd\ud842\udfbf\ud87e\udc3b\ud842\udfcb"+
- "\ud842\udffb\ud843\udc3b\ud843\udc53\ud843\udc65"+
- "\ud843\udc7c\ud843\udc8d\ud843\udcb5\ud843\udcdd"+
- "\ud843\udced\ud843\udd6f\ud843\uddb2\ud843\uddc8"+
- "\ud843\ude04\ud843\ude0e\ud843\uded7\ud843\udf90"+
- "\ud843\udf2d\ud843\ude73\ud843\udfbc\ud844\udc5c"+
- "\ud844\udc4f\ud844\udc76\ud844\udc7b\ud844\udc88"+
- "\ud844\udc96\ud844\udcbf\ud844\udcd3\ud844\udd2f"+
- "\ud844\udd3b\ud844\udee3\ud844\udf75\ud844\udf36"+
- "\ud845\udd77\ud845\ude19\ud845\udfc3\ud845\udfc7"+
- "\ud846\udc2d\ud846\udd6a\ud846\ude2d\ud846\ude45"+
- "\ud847\udc2a\ud847\udc70\ud847\udcac\ud847\udec8"+
- "\ud847\uded5\ud847\udf15\ud848\udc45\ud848\ude7c"+
- "\ud848\udfd7\ud848\udffa\ud849\udf2a\ud84a\udc71"+
- "\ud84a\udd4f\ud84a\udd67\ud84a\udd93\ud84a\uded5"+
- "\ud84a\udee8\ud84a\udf0e\ud84a\udf3f\ud84b\udc4c"+
- "\ud84b\udc88\ud84b\udcb7\ud856\udfe8\ud84b\udd08"+
- "\ud84b\udd12\ud84b\uddb7\ud84b\udd95\ud84b\ude42"+
- "\ud84b\udf74\ud84b\udfcc\ud84c\udc33\ud84c\udc66"+
- "\ud84c\udf1f\ud84c\udfde\ud85e\ude79\ud84d\udd67"+
- "\ud84d\uddf3\ud852\uddba\ud84d\ude1a\ud84d\udf16"+
- "\ud840\udf46\ud84e\udea7\ud85d\ude57\ud857\udfe2"+
- "\ud84f\ude11\ud84f\udeb9\ud85d\uddfe\ud848\udc9a"+
- "\ud850\udd19\ud862\ude9a\ud850\udeee\ud850\udf0d"+
- "\ud850\udc3b\ud850\udf34\ud850\udf96\ud852\ude45"+
- "\ud841\uddca\ud841\ude11\ud847\udea8\ud84f\udcff"+
- "\ud851\udc04\ud851\udcd6\ud851\ude74\ud851\udf2f"+
- "\ud861\udde8\ud866\uddc9\ud848\uddc3\ud862\udf4e"+
- "\ud852\udc12\ud852\udcfb\ud852\ude15\ud852\udec0"+
- "\ud843\udc78\ud853\udea5\ud853\udf86\ud841\udf79"+
- "\ud854\udc2c\ud854\ude99\ud855\udc19\ud84f\udf4a"+
- "\ud852\udea7\ud855\udc46\ud855\udc6e\ud85a\udf52"+
- "\ud855\udd3f\ud85d\ude32\ud855\udd5e\ud855\udd62"+
- "\ud855\udd66\ud855\udfc7\ud852\udd3f\ud856\udc5d"+
- "\ud84c\udfcc\ud856\udd03\ud862\udd48\ud856\udeae"+
- "\ud856\udf89\ud857\udc06\ud847\udd90\ud858\udd02"+
- "\ud85f\udc12\ud858\uddb2\ud853\udf9a\ud859\udc02"+
- "\ud859\udc4a\ud85a\udff7\ud859\udc84\ud846\udd1c"+
- "\ud852\uddf6\ud859\udc88\ud84f\udfef\ud859\udd12"+
- "\ud859\uddbf\ud859\udeb5\ud849\udf1b\ud855\udfe1"+
- "\ud87e\udccd\ud851\udd21\ud859\udefc\ud852\udd34"+
- "\ud85b\udcbd\ud859\udf99\ud85a\udc6e\ud859\udc11"+
- "\ud85a\udc5e\ud85a\udcc7\ud864\udcc0\ud842\ude11"+
- "\ud85a\udd26\ud85a\udd39\ud85a\uddfa\ud85a\ude2d"+
- "\ud859\udc69\ud840\udc21\ud85a\ude34\ud85a\udf5b"+
- "\ud84d\udd19\ud85a\udf9d\ud85b\udca4\ud85b\uddae"+
- "\ud849\udd8d\ud85c\udc4b\ud85c\uddcd\ud85c\ude80"+
- "\ud85c\ude85\ud848\udd7a\ud85c\ude8b\ud85c\udee6"+
- "\ud852\uddd0\ud85d\udc50\ud843\udef8\ud84a\udd26"+
- "\ud861\udc73\ud845\udfb1\ud852\ude2a\ud846\udc20"+
- "\ud867\udcad\ud866\udca4\ud85d\udfcc\ud85e\udc58"+
- "\ud845\ude0a\ud84d\udf2f\ud860\udce8\ud844\udfc5"+
- "\ud85e\udddd\ud864\udda8\ud85c\udcaf\ud862\uddab"+
- "\ud85e\uddfd\ud85e\ude0a\ud85e\udf0b\ud85f\udd66"+
- "\ud850\udd7a\ud860\udc09\ud868\udedf\ud860\udf18"+
- "\ud85b\ude07\ud860\udd6f\ud860\udc23\ud85a\uddb5"+
- "\ud844\udfed\ud84c\ude2f\ud860\udc48\ud863\udc30"+
- "\ud860\udc83\ud862\udd49\ud852\udd88\ud852\udea5"+
- "\ud84f\udf81\ud860\udc90\ud860\udcf4\ud860\udd2e"+
- "\ud847\udfa1\ud860\udd4f\ud860\udd89\ud860\uddaf"+
- "\ud860\ude1a\ud860\udf06\ud860\udf2f\ud860\udf8a"+
- "\ud861\udc68\ud861\udeaa\ud862\udd56\ud862\uddb8"+
- "\ud862\udde7\ud862\udde8\ud862\udf46\ud862\udfd4"+
- "\ud863\udc09\ud863\udfc5\ud864\udcec\ud864\udd10"+
- "\ud864\udd3c\ud864\udd5e\ud852\udeca\ud865\udce7"+
- "\ud865\udde9\ud865\uddb0\ud865\uddb8\ud865\udf32"+
- "\ud866\udcd1\ud866\udd49\ud866\udd6a\ud866\uddc3"+
- "\ud866\ude28\ud866\udf0e\ud867\udd5a\ud867\udd9b"+
- "\ud867\udef8\ud867\udf23\ud868\ude93\ud868\udeff"+
- "\ud869\uddcb\ud843\udc9c\ud849\udcb0\ud852\ude93"+
- "\ud862\udf2c\ud85e\udc9d\ud845\udff5\ud860\udc24"+
- "\ud862\udf6c\ud862\udf99\ud85e\ude3e\ud859\udeaf"+
- "\ud85d\ude55\ud84f\udcb7\ud855\ude35\ud856\udd56"+
- "\ud857\ude81\ud858\ude58\ud843\ude6d\ud84f\ude88"+
- "\ud853\udc9e\ud845\udff6\ud846\udc7b\ud857\udc4a"+
- "\ud854\udf11\ud867\udd98\ud857\uded8\ud84f\udd40"+
- "\ud843\udfea\ud843\udd49\ud84d\udeba\ud843\ude9d"+
- "\ud860\udee2\ud843\udc41\ud843\udc96\ud854\udd48"+
- "\ud843\ude76\ud84b\udc62\ud843\udea2\ud844\udc75"+
- "\ud84a\udf43\ud84b\udeb3\ud843\udda7\ud85a\udc8a"+
- "\ud844\udcc1\ud851\udf06\ud85a\udc93\ud849\udef4"+
- "\ud85f\udd2f\ud850\udda3\ud85f\udd73\ud85b\uded0"+
- "\ud85c\udeb6\ud844\uddd9\ud84f\udcfc\ud869\udea9"+
- "\ud843\udeac\ud843\udef9\ud847\udca2\ud853\udfc2"+
- "\ud85f\udff9\ud843\udfeb\ud84b\udda0\ud851\udfe0"+
- "\ud867\udd7c\ud843\udfec\ud843\ude0a\ud85d\udda3"+
- "\ud843\udfed\ud858\udc48\ud844\udd87\ud851\ude18"+
- "\ud852\udf6e\ud856\ude95\ud842\udd79\ud849\udc65"+
- "\ud867\udeac\ud84f\udcfe\ud867\udf30\ud853\udfa9"+
- "\ud865\udd9e\ud867\udfde\ud84f\uddb6\ud85c\udeb2"+
- "\ud859\udfb3\ud84d\udf20\ud84f\udef7\ud84f\ude2c"+
- "\ud841\udc8e\ud843\udeb6\ud869\udc34\ud84c\udcda"+
- "\ud850\udff2\ud844\udea9\ud852\udd63\ud867\ude06"+
- "\ud85c\udcae\ud845\udf6c\ud865\udcd0\ud858\udf35"+
- "\ud85c\udd64\ud843\udd28\ud85b\udd22\ud852\udee2"+
- "\ud843\udd71\ud847\udf0f\ud847\uddd1\ud852\udd3e"+
- "\ud845\udf6d\ud863\ude97\ud85b\udd23\ud840\udffc"+
- "\ud857\udc21\ud84f\udcfd\ud852\udd19\ud843\udcd4"+
- "\ud840\uddf2\ud869\ude4a\ud860\udf7d\ud852\ude77"+
- "\ud862\ude5a\ud868\udeb2\ud87e\udc40\ud852\udebb"+
- "\ud846\udc3b\ud85b\ude05\ud849\udd1b\ud858\udd59"+
- "\ud84c\udff5\ud862\udfc2\ud863\ude39\ud847\udd46"+
- "\ud843\udf3b\ud857\udf1a\ud85d\udc86\ud859\udfcc"+
- "\ud85b\uded1\ud850\udc11\ud862\udf2d\ud84f\udcc7"+
- "\ud857\uded7\ud85d\ude56\ud855\udd31\ud846\udd44"+
- "\ud844\udefe\ud866\udd03\ud85b\udddc\ud85c\udcad"+
- "\ud858\uddad\ud862\ude0f\ud84d\ude77\ud840\udcee"+
- "\ud85a\udc46\ud853\udf0e\ud858\udf4c\ud858\ude6b"+
- "\ud840\udccc\ud840\udc8a\ud85d\ude07\ud841\udd47"+
- "\ud841\udddf\ud84f\udfc5\ud852\udd42\ud862\udde4"+
- "\ud846\udddb\ud84f\udcc8\ud852\udd33\ud862\uddaa"+
- "\ud840\udea0\ud85a\udfb3\ud844\udf05\ud849\udced"+
- "\ud85b\udd29\ud85e\ude84\ud84d\ude00\ud852\udeb1"+
- "\ud849\udd13\ud840\udf7e\ud840\udf80\ud840\udf47"+
- "\ud841\udc1f\ud852\udda4\ud841\udc87\ud84c\udfb4"+
- "\ud842\udfff\ud848\udcfc\ud840\udee5\ud849\udd30"+
- "\ud841\udd8e\ud84c\ude33\ud846\udd83\ud841\uddb3"+
- "\ud84f\udc99\ud852\udea6\ud84d\udf2d\ud85a\udf13"+
- "\ud862\udede\ud84f\udf80\ud842\udd54\ud84f\udfec"+
- "\ud842\udfe2\ud845\udf26\ud845\udee8\ud861\udeab"+
- "\ud845\udd96\ud845\ude13\ud862\ude9b\ud855\udf72"+
- "\ud842\udf8f\ud84f\udfeb\ud84b\udda3\ud843\udc77"+
- "\ud85a\udf53\ud843\udd74\ud845\udf0d\ud843\udedd"+
- "\ud843\udd4d\ud862\uddbc\ud849\ude98\ud846\udcd7"+
- "\ud850\udc3a\ud851\udc35\ud844\udcb4\ud84c\ude8a"+
- "\ud862\udf66\ud844\ude4f\ud850\udda5\ud85b\udc7e"+
- "\ud845\udc16\ud845\udc54\ud850\udf63\ud852\udff5"+
- "\ud844\ude3c\ud868\udd50\ud850\ude78\ud845\ude3e"+
- "\ud845\ude92\ud843\udd4e\ud85b\udc81\ud85b\udd2a"+
- "\ud845\udfdc\ud845\udffb\ud845\udfb2\ud85b\udda6"+
- "\ud846\udc28\ud845\uded5\ud85b\ude45\ud852\udda9"+
- "\ud85b\udfa1\ud849\udd54\ud846\udd11\ud845\udeb8"+
- "\ud85e\ude0e\ud840\ude04\ud846\ude34\ud856\uddcc"+
- "\ud841\udda5\ud846\udf44\ud847\udca5\ud85a\udf28"+
- "\ud847\uddf9\ud847\ude37\ud847\udea4\ud852\udd01"+
- "\ud848\udc49\ud848\udd73\ud851\udcbc\ud843\udcd3"+
- "\ud845\udf71\ud861\udc82\ud840\uddc1\ud87e\udc94"+
- "\ud844\udf3a\ud85a\udc88\ud848\udfd0\ud849\udc71"+
- "\ud85b\ude6e\ud862\ude36\ud854\ude50\ud847\udf6a"+
- "\ud85c\udcf8\ud849\ude68\ud840\ude9e\ud862\ude29"+
- "\ud846\udc77\ud849\udfb4\ud852\udd82\ud852\udd8f"+
- "\ud85e\ude53\ud87e\udca6\ud85b\uded2\ud841\ude56"+
- "\ud84f\udfb7\ud84a\udc5f\ud862\udf9d\ud866\udd5d"+
- "\ud84a\udd80\ud84a\udcc1\ud840\udd18\ud845\udf70"+
- "\ud84b\ude0d\ud852\udddf\ud844\udf8e\ud845\udffc"+
- "\ud84b\ude36\ud850\udc8c\ud855\udf1d\ud852\ude28"+
- "\ud852\ude23\ud84c\udc7e\ud852\udd40\ud846\udc29"+
- "\ud84d\udc00\ud84c\uddf7\ud84c\uddf8\ud84c\udda4"+
- "\ud84c\udda5\ud843\ude75\ud854\udde6\ud847\ude3d"+
- "\ud84c\ude31\ud861\uddf4\ud84c\uddc8\ud854\udf13"+
- "\ud84a\udcf7\ud850\udf9c\ud852\ude21\ud84d\udfc2"+
- "\ud850\uddcd\ud864\udced\ud84c\udfe6\ud85b\udda0"+
- "\ud84d\udc6f\ud862\udedf\ud84d\uddcd\ud84d\ude3c"+
- "\ud862\ude4a\ud840\udfc9\ud84d\ude59\ud848\udd2a"+
- "\ud84d\udf03\ud864\udd9c\ud842\udd23\ud849\udfcd"+
- "\ud84e\udedb\ud840\udfb5\ud846\udd58\ud84e\udf5a"+
- "\ud84f\udefc\ud849\udc8b\ud852\udcf1\ud85a\udf51"+
- "\ud84f\uddbc\ud84f\uddbd\ud850\udda4\ud852\udd0c"+
- "\ud852\udd00\ud84f\udcc9\ud843\udd32\ud84c\uddf9"+
- "\ud849\udc91\ud85b\udd25\ud85b\udda1\ud85b\uddeb"+
- "\ud852\udd7f\ud850\udc85\ud85b\ude72\ud85b\udf74"+
- "\ud862\udf21\ud84f\ude2f\ud84f\udf82\ud84c\udc4b"+
- "\ud84f\ude30\ud845\udc97\ud850\udc3d\ud864\udd70"+
- "\ud850\udd44\ud850\udc91\ud850\udd55\ud850\udc39"+
- "\ud84f\udff0\ud84f\udfb4\ud850\udd3f\ud850\udd56"+
- "\ud850\udd57\ud850\udd40\ud858\udddd\ud850\ude77"+
- "\ud850\udf65\ud850\udec1\ud851\udc5a\ud852\ude27"+
- "\ud852\ude22\ud862\udfe8\ud855\ude05\ud852\udd74"+
- "\ud84c\udc44\ud852\udc23\ud862\udc2b\ud862\udc04"+
- "\ud843\udc3a\ud85a\ude2e\ud850\udde2\ud845\udee7"+
- "\ud852\ude24\ud852\uddb7\ud852\udd8d\ud852\uddfb"+
- "\ud852\ude26\ud841\uddc3\ud84a\udcad\ud863\udeb2"+
- "\ud852\ude8c\ud850\udd5f\ud852\ude79\ud862\udf8f"+
- "\ud863\udc03\ud846\udc9e\ud846\udd88\ud863\uded9"+
- "\ud846\ude4b\ud863\udeac\ud853\udf82\ud853\udd13"+
- "\ud858\udff5\ud85a\udd11\ud85a\udd0e\ud85b\udf9f"+
- "\ud854\udc9d\ud854\udd7d\ud847\ude1c\ud854\ude20"+
- "\ud84c\udeac\ud862\udd64\ud862\udd68\ud845\udec1"+
- "\ud844\udf76\ud852\ude12\ud855\udde0\ud85d\ude0c"+
- "\ud862\udf2b\ud858\udc83\ud849\ude1c\ud856\udc57"+
- "\ud85e\udf39\ud85c\udd26\ud864\udd0d";
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2
- };
- }
-
- protected static class Encoder extends DoubleByteEncoder {
-
- private byte[] encoded = new byte[2];
-
- public Encoder(Charset cs) {
- super(cs,
- index1,
- index2);
- }
-
- protected byte[] encodeSurrogate(char high, char low) {
- int index = searchTabSurr(high, low, unicodeSearchTab);
-
- if (index >= 0) {
- int val = (int)nativeSupplementary.charAt(index / 2);
-
- encoded[0] = (byte)((val & 0x0000ff00)>>8);
- encoded[1] = (byte) (val & 0xff);
- return encoded;
- } else {
- // Surrogate pair cannot be mapped
- return null;
- }
- }
-
- /**
- * Perform a binary search within the sorted array of
- * surrogate values to locate the position of the native
- * two byte value equivalent encoded using Shift_JIS encoding
- * scheme
- */
- protected int searchTabSurr(char code1, char code2, String table) {
- int i = 0, l, h;
- for (l = 0, h = table.length() - 2; l < h; ) {
- if (table.charAt(l) == code1 && table.charAt(l+1) == code2) {
- i = l;
- break;
- }
- if (table.charAt(h) == code1 && table.charAt(h+1) == code2) {
- i = h;
- break;
- }
- i = (l + h) / 2;
- i = (i%2 != 0)? i - 1 : i;
-
- if (table.charAt(i) == code1 && table.charAt(i+1) == code2)
- break;
-
- int sum = (int)(table.charAt(i+2) - 0xd800) * 0x400
- + (int)(table.charAt(i+3) - 0xdc00) + 0x10000;
- int sum2 = (int)(code1 - 0xd800) * 0x400
- + (int)(code2 - 0xdc00) + 0x10000;
- if (sum == sum2)
- return (i + 2);
-
- if (sum < sum2)
- l = i + 2;
- else
- h = i - 2;
- }
- if (code1 == table.charAt(i) && code2 == table.charAt(i+1)) {
- return i;
- } else {
- return -1;
- }
- }
- private final static String innerIndex0=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6D8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8859\u8857\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u885D\u885B\u8866\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8861\u885F\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u886A\u8868\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u886F\u886D\u88A7\u0000\u8873\u8871\u0000\u0000"+
- "\u0000\u0000\u8877\u8875\u0000\u0000\u0000\u0000"+
- "\uC8FB\u887B\u8879\u0000\u88A2\u0000\u0000\u0000"+
- "\u8856\u8867\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u885A\u886C\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u885C\u886E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8870\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8FC\u885E\u8874\u0000\u0000"+
- "\u0000\u0000\u0000\uC8FA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8878\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8858\u8869\u0000"+
- "\u8872\u8860\u8876\u0000\u887A\u0000\u887C\u0000"+
- "\u887D\u0000\u887E\u0000\u88A1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8F6\u886B\u0000\u0000\uC8F8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8F7\u0000\u0000\u0000\u0000"+
- "\u0000\u88A8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8FE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8F9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8F5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8FD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6D9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC7F9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC7F3\uC7F4\uC7F5\uC7F6\uC7F7\uC7F8\uC7FA\uC7FB"+
- "\uC7FC\uC7FD\uC7FE\uC840\uC841\uC842\uC843\uC844"+
- "\uC845\uC846\uC847\uC848\uC849\uC84A\uC84B\uC84C"+
- "\uC84D\uC84E\uC84F\uC850\uC851\uC852\uC853\uC854"+
- "\uC855\uC856\uC857\uC858\uC859\uC85A\uC85C\uC85D"+
- "\uC85E\uC85F\uC860\uC861\uC862\uC863\uC864\uC865"+
- "\uC866\uC867\uC868\uC869\uC86A\uC86B\uC86C\uC86D"+
- "\uC86E\uC86F\uC870\uC871\uC872\uC873\uC874\uC875"+
- "\u0000\uC85B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8863\u88A4"+
- "\u8865\u88A6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8D2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC8D3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6B5\uC6B6\uC6B7\uC6B8\uC6B9\uC6BA\uC6BB\uC6BC"+
- "\uC6BD\uC6BE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC877\uC878\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uC876"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC6A1\uC6A2\uC6A3\uC6A4\uC6A5\uC6A6\uC6A7\uC6A8"+
- "\uC6A9\uC6AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC6AB\uC6AC\uC6AD\uC6AE"+
- "\uC6AF\uC6B0\uC6B1\uC6B2\uC6B3\uC6B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uF9F9\uF9F8\uF9E6\uF9EF\uF9DD\uF9E8\uF9F1\uF9DF"+
- "\uF9EC\uF9F5\uF9E3\uF9EE\uF9F7\uF9E5\uF9E9\uF9F2"+
- "\uF9E0\uF9EB\uF9F4\uF9E2\uF9E7\uF9F0\uF9DE\uF9ED"+
- "\uF9F6\uF9E4\uF9EA\uF9F3\uF9E1\uF9FA\uF9FB\uF9FD"+
- "\uF9FC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6E6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8D6\u0000\u0000\u0000\uC8D7\u0000\uC8D8\uC8D9"+
- "\uC8DA\u0000\uC8DB\u0000\uC8DC\uC8DD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8DE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uC8DF\uC8E0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC8E1\u0000\uC8E2"+
- "\u0000\u0000\uC8E3\u0000\uC8E4\u0000\uC8E5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E6\u0000"+
- "\u0000\u0000\u0000\u0000\uC8E7\u0000\uC8E8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8E9\u0000"+
- "\u0000\u0000\uC8EA\u0000\uC8EB\uC8EC\u0000\uC8ED"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8EE\uC8EF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC8F0\u0000"+
- "\u0000\u0000\u0000\uC8F1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC6CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6E0\uC6E1\uC6E2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC6E7\uC6E8\uC6E9\uC6EA\uC6EB\uC6EC\uC6ED"+
- "\uC6EE\uC6EF\uC6F0\uC6F1\uC6F2\uC6F3\uC6F4\uC6F5"+
- "\uC6F6\uC6F7\uC6F8\uC6F9\uC6FA\uC6FB\uC6FC\uC6FD"+
- "\uC6FE\uC740\uC741\uC742\uC743\uC744\uC745\uC746"+
- "\uC747\uC748\uC749\uC74A\uC74B\uC74C\uC74D\uC74E"+
- "\uC74F\uC750\uC751\uC752\uC753\uC754\uC755\uC756"+
- "\uC757\uC758\uC759\uC75A\uC75B\uC75C\uC75D\uC75E"+
- "\uC75F\uC760\uC761\uC762\uC763\uC764\uC765\uC766"+
- "\uC767\uC768\uC769\uC76A\uC76B\uC76C\uC76D\uC76E"+
- "\uC76F\uC770\uC771\uC772\uC773\uC774\uC775\uC776"+
- "\uC777\uC778\uC779\uC77A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC8D4\uC8D5\uC6DC\uC6DD\u0000"+
- "\u0000\uC77B\uC77C\uC77D\uC77E\uC7A1\uC7A2\uC7A3"+
- "\uC7A4\uC7A5\uC7A6\uC7A7\uC7A8\uC7A9\uC7AA\uC7AB"+
- "\uC7AC\uC7AD\uC7AE\uC7AF\uC7B0\uC7B1\uC7B2\uC7B3"+
- "\uC7B4\uC7B5\uC7B6\uC7B7\uC7B8\uC7B9\uC7BA\uC7BB"+
- "\uC7BC\uC7BD\uC7BE\uC7BF\uC7C0\uC7C1\uC7C2\uC7C3"+
- "\uC7C4\uC7C5\uC7C6\uC7C7\uC7C8\uC7C9\uC7CA\uC7CB"+
- "\uC7CC\uC7CD\uC7CE\uC7CF\uC7D0\uC7D1\uC7D2\uC7D3"+
- "\uC7D4\uC7D5\uC7D6\uC7D7\uC7D8\uC7D9\uC7DA\uC7DB"+
- "\uC7DC\uC7DD\uC7DE\uC7DF\uC7E0\uC7E1\uC7E2\uC7E3"+
- "\uC7E4\uC7E5\uC7E6\uC7E7\uC7E8\uC7E9\uC7EA\uC7EB"+
- "\uC7EC\uC7ED\uC7EE\uC7EF\uC7F0\uC7F1\uC7F2\u0000"+
- "\u0000\u0000\u0000\u0000\uC6E3\uC6DA\uC6DB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC8D1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9277\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89D5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93CD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9BDF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFA68\u0000\u0000\u89DA\u8F59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89DB\u0000\u0000\u8F5D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89DC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8ADA\u0000\u0000\u0000"+
- "\u0000\u8BDC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u97DB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E53"+
- "\u0000\u0000\u0000\u0000\u9DAA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9BEA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A6E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8BC8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89E8\u0000\u89EA\u0000\u0000\u0000\u0000"+
- "\u0000\u8C4B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB70\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89ED\u0000\u0000"+
- "\u94DD\u0000\u89EE\u0000\u0000\u0000\u0000\u9EB4"+
- "\u8AD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92DB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94DB"+
- "\u89F9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB7A\u0000\u0000\u0000\u89FB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EFC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FC"+
- "\u0000\u89BF\u0000\u0000\u0000\u89FE\u0000\u89E6"+
- "\u0000\u0000\u9D46\u0000\u0000\u0000\u9DEE\u0000"+
- "\u0000\u0000\uA07E\u0000\u0000\u0000\uA068\u0000"+
- "\u0000\u0000\u0000\u98E9\u0000\u8B68\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFD\u8BBE\u9FD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AEB\u0000\u0000\u9FD7\u0000";
-
- private final static String innerIndex1=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8B6A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9C5C\u0000\u8BB1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB5E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DF3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0D0\u0000\u0000"+
- "\u0000\uFC66\u0000\u0000\u0000\u0000\u92E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AEC"+
- "\u8FAB\uFA48\u0000\u0000\u0000\u0000\u8E45\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C6F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EDE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89EF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96E9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EBB\u0000\u0000"+
- "\u0000\u0000\u94DE\u0000\u9EB8\u0000\u0000\u0000"+
- "\u97BA\uFB65\u0000\u0000\u0000\u95D6\u0000\u0000"+
- "\u0000\u9CBB\u0000\u0000\u97DA\u0000\u0000\u0000"+
- "\u0000\u8F45\u0000\uFB7D\u9158\uFE64\u0000\u9856"+
- "\u9B4D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u935B\u95C7\u0000\u97E7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9359\u0000\u0000"+
- "\u0000\u91F5\u97B8\u0000\u0000\uFDA2\uFBB6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92FA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9357\u0000\u8BA6\u0000\u0000\u0000\u0000"+
- "\uFBB9\u0000\u97B0\u0000\u0000\uFDC4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9CA1\u0000\u0000\u0000"+
- "\u0000\u0000\u91F2\u91F9\u0000\u8FF1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9745\u9853\u0000\u0000"+
- "\uFE78\u0000\uFBC1\u9251\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DAD\u0000\u0000\u0000\u0000\u0000"+
- "\uFD6C\u0000\u0000\uFA6B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9BC2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A7B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B60"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u934B\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9ABD\u0000\u0000\u0000\u0000\u91B7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95B4\u0000\u0000\u0000\u0000\u0000"+
- "\uFEC5\u0000\u0000\u9EF0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D64"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9269\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBEA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBEF\u0000"+
- "\u8D68\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93EB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC42\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9166\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFACD\u0000\u0000\u0000"+
- "\u0000\u93DD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BCC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D6D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D6E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96A8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCA6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D6F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFC64\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9060\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8D74\u97C3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AD0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9274\u0000\u9BBE\u0000\u0000\u0000\u0000"+
- "\u0000\u9CC8\u0000\u0000\u9CBA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EB9\u0000\u0000\u0000"+
- "\u0000\u0000\u955A\u0000\u0000\u91B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A48\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7D\u0000\u0000\u8A7D\u0000\u0000\u8AC2\u0000"+
- "\u0000\uFD4A\u0000\u8DA1\u0000\u0000\u8AD1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCB4"+
- "\u8B47\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93A4\u9EDA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A51\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DA6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EC5\u0000\u0000\u0000\u0000\uFCC4"+
- "\u0000\u0000\u0000\u0000\uA078\u0000\u94B5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC2\u8A6B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAE8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DAD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC49\u0000"+
- "\u93C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u906F\u0000\u8DB0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u947E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90FA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9479\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DB2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCEE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u997B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DB4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DB7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91B3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DBB\u8DBA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DBC\u9044\u0000\u0000\u0000"+
- "\uFD4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93E4\u0000"+
- "\u0000\u93E0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DC3\u0000\u9BB8\u0000"+
- "\u0000\u0000\uFBF0\u0000\u93E9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93F6"+
- "\u0000\u0000\u0000\u0000\u0000\u8DC5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DCA\u0000\u0000\u0000"+
- "\u0000\u0000\u8DCC\uFD5D\u93B5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD61\u0000\u0000"+
- "\u0000\u9CF8\u0000\u0000\u0000\u9252\u0000\u0000"+
- "\uA0E8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9CA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C56\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DD6\u0000\u97C0\u0000\u0000"+
- "\u0000\uA0DE\u0000\u0000\u0000\u0000\u97D2\u0000"+
- "\u0000\u0000\u0000\u0000\uFAA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDA3\u0000\u0000\u0000\u8DDB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u91B5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFD49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDD1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEB\u0000"+
- "\u0000\u0000\u0000\u0000\u97C6\u0000\uFDCE\u0000"+
- "\u0000\u90FC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFC59"+
- "\u0000\u0000\u96D6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97C5\u8DEF\u0000\u0000\u0000\u0000\u97D7"+
- "\u0000\u0000\u0000\u0000\u0000\u8DF0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96A6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBBF\u0000\u0000"+
- "\u0000\u0000\u8DF3\u0000\u0000\u0000\u0000\u9449"+
- "\u0000\u8DF5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9872\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E6B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAFD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F50"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DCC\uFC65"+
- "\u0000\u8C44\u0000\u0000\u996E\u94A1\u0000\u0000"+
- "\u0000\u0000\u0000\u8F63\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0DA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9253"+
- "\uFDE9\u0000\u0000\u9DB5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9879\u0000\u0000\u0000\u9D5D"+
- "\u0000\u0000\u0000\u0000\u8D63\u9669\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC6A\u0000\u0000\u8AC7\u0000\u0000\u0000\u0000"+
- "\u89D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE4D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EDD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEFB\u98BC\uFACC\u0000\u0000\u95B0\u0000\u0000"+
- "\u0000\u9464\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u936F\u0000\u0000\u0000\u0000\u0000\u0000\u94B9"+
- "\u0000\u0000\u95EC\u0000\u0000\u0000\u0000\u91EE"+
- "\u0000\u0000\u98C3\u0000\u95F6\u0000\u0000\u0000"+
- "\u8FFD\u98C5\u0000\u0000\u0000\u0000\u9766\uFE6E"+
- "\u0000\u0000\u97DD\u8CAA\u0000\u0000\u92D2\u0000"+
- "\u0000\u9761\u98CB\u0000\u0000\u0000\u0000\u95F0"+
- "\u0000\u975D\u0000\u91E3\u0000\u0000\u0000\u0000"+
- "\u98CC\u0000\u0000\u9469\u98CD\u0000\u0000\u0000"+
- "\u0000\u0000\u98CE\u0000\u95FC\u0000\u0000\u94A3"+
- "\u9662\u0000\u0000\u0000\uFEB6\u0000\u9463\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98D0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98D1\u0000\u0000\u0000\u0000"+
- "\u9475\uFAE0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9472\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98D6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AF0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98DB"+
- "\u0000\u0000\u0000\u0000\u98DD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98A8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A6D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8AFB\u8AAE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBC9\u0000\u0000\u0000"+
- "\u0000\u8C5D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98E4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98E8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8A4D\u0000\u0000\u0000\u9257"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95DF\u0000\u0000\uA0AC\u0000\u0000"+
- "\u0000\u0000\u98EB\u0000\u0000\u0000\u0000\u98EC"+
- "\u0000\u8CC3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AB8\u0000\u0000\u0000\u9EE7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u94BC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD1\u0000\u0000\u0000\u0000\u0000\u0000\u9CC6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98FE\uFDE8\u0000\u0000\u0000"+
- "\u0000\u9940\u0000\u0000\u0000\u0000\u94C9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94D3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9946"+
- "\u0000\u0000\u0000\u0000\u90C0\u0000\u94D1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9573"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93C2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9948\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u994B\u0000\u0000\u0000"+
- "\u0000\u0000\u8E55\u0000\u0000\u0000\u0000\u994E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EFE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8E59"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94EC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94EF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C60\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F74\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9955\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9544\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8CCB\u0000"+
- "\u0000\u0000\u9956\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9959\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u995B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8CC4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFA45\u0000\u0000"+
- "\u0000\u90B7\u0000\u0000\u9743\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95CD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u97C9\uFD50\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EB9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95C6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8A76\u0000\u0000\u0000\u0000\u0000\u9D51"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9973\u0000\u0000"+
- "\u0000\u0000\u9D4F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u997A\u9564\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99A1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8EED\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99AD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946E"+
- "\u8F70\u0000\uFAD0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99B3\u0000\u0000\u0000\u0000\u0000\u0000\uA053"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u965C\u0000\u0000\u0000\u0000\uFD7A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97FE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92BD\u0000\u97FD"+
- "\u0000\u0000\u0000\u0000\u8F64\u0000\u0000\u0000"+
- "\u0000\uFCF7\u9562\u97CD\u9E64\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u924C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EC9\u99BC\u0000\u0000\u0000"+
- "\u0000\u9DA5\u0000\u8F54\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8F7C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EA2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97AE\u0000"+
- "\u0000\u0000\u0000\u96C8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99C3\u0000\u90D6\u0000\u9CBE"+
- "\u0000\u0000\u0000\u8F76\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9470\uFB4B\u0000\u0000\uFDCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8EC7\u0000\u0000\u0000"+
- "\u0000\u0000\uA0F9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8FA9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90D7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EDF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex2=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99CE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA"+
- "\u0000\u0000\u0000\u0000\u0000\u8FEB\u0000\u99CF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FC2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92C9\u0000\u0000\u0000\u0000\u0000"+
- "\u97DC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95B3"+
- "\u9C79\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95B2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FDB\u0000\u0000\u0000\u0000"+
- "\u9BE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E7A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9BEE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99DE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAFA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9EE5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A52\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99E1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8A67\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BB5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8AAC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97DE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95D1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99F5\uFC4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BA9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBDC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE56\u0000\u0000"+
- "\u0000\u0000\u0000\u9EA4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95DB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9664\u0000\u0000"+
- "\u0000\u0000\u9055\u0000\u0000\u96D4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u977C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u964D\u0000\u97E1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A48\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A49\u0000\uFE7D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90AA\u0000\u0000"+
- "\u0000\u0000\u9A50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9347\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90C9\u0000\u0000\u0000\u0000\u0000\u9A55"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90BC"+
- "\u0000\u0000\u0000\u0000\u0000\u9A58\u0000\u8BB8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u90D5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9641\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A5A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A5C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8ABB\u0000\u0000\u0000"+
- "\u9BAA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90F5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A60\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9145"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8C58\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A63\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8C49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8BB6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u966B"+
- "\u9A6E\u0000\u914F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9746\u0000\u0000\uA0E6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92D7\u0000"+
- "\u9675\u0000\u0000\u93D4\u0000\u0000\u91BB\u9679"+
- "\u0000\u0000\u0000\u0000\u0000\u9A70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9678\u91CD\u0000"+
- "\u9C4A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA06F\u0000\u0000\uA06A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u915F\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9FA5\u0000\u0000\u89BA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9ECD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A79\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DCE\u0000\u0000"+
- "\u0000\u8CD2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9D73\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96B9\u0000"+
- "\u96BC\u0000\u0000\u0000\u0000\u0000\u0000\u9CD1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EEE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB43\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EC9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFBD3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9D78\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9D7B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EB3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EB2\u0000\u9DD6\u0000\u0000\u0000"+
- "\u0000\u994F\u0000\u0000\u89CE\u0000\u0000\u0000"+
- "\u8BC0\u0000\u9FC4\u0000\u8BD4\u0000\u0000\u8C72"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6BF\u8BF9"+
- "\u0000\u0000\u0000\u0000\u0000\u8946\u0000\uC6C0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC87B\u8BC6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C57\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9AFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89D0\u89CF\u0000\u0000\u0000\uC6C1\u0000\u89D1"+
- "\u0000\u89E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u927E\u0000\u9DBA\u0000\u0000\u0000\u0000\u0000"+
- "\uC6C2\u0000\u0000\u8C6F\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBF8"+
- "\u0000\u0000\u0000\u8BC7\u926B\u0000\u0000\u89D2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FCF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DA9\u89D3\u0000\u0000\u99E2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9267\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92A4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8C73"+
- "\u0000\u0000\u894E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u894F\u9278\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91B6\u0000\u0000\u0000\u0000\u89D4"+
- "\u0000\u9FD2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92A7\u0000\u0000\u95A2\u0000\u0000"+
- "\u0000\u0000\u0000\u926E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96EA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u926F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92A3\u0000\u0000\u0000\u0000\u0000"+
- "\u8950\u0000\u0000\uFA57\u0000\u0000\u0000\u0000"+
- "\u9866\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89D6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B2\u0000\u0000\u0000\u92AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96DE\u92AC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8C70\u0000\u9F6E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EF2\u0000\u0000\u0000\u9F6C\u0000\u0000"+
- "\u0000\u0000\u0000\u89D8\u0000\u0000\u0000\u0000"+
- "\uFA59\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92A8\u0000"+
- "\u0000\u0000\u0000\u0000\u9163\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C40\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F73\u0000"+
- "\u92AD\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BE9\u0000"+
- "\u0000\u0000\u0000\u0000\u92A9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD56\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FA8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8C71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92A1\u0000\u0000"+
- "\u90E3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0A6\u0000\u0000\u0000\u0000\u0000\u94AB"+
- "\u0000\uFC72\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97C4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92AE\u0000\u0000\u0000"+
- "\u0000\uFA67\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92A2\uFA69\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9268\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8951\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFA6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFA71\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8952\u0000\u0000\u0000"+
- "\u0000\u945A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC6C3\u0000\u0000\u0000\u89DD\u0000"+
- "\uC8A2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uC6C4\u0000"+
- "\u0000\u0000\u9E52\u0000\u8953\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9E55"+
- "\u92BA\u0000\u0000\uC6C5\u0000\u0000\u8C5B\u0000"+
- "\u0000\u0000\uFA7D\uFAA8\u9A68\uFA47\u0000\u0000"+
- "\uFA7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92BB\u0000\u0000\u0000\uFDB6"+
- "\u0000\uFAA2\u0000\u0000\u0000\u0000\u0000\uFAA3"+
- "\u0000\uFAA4\u9BB4\uFAA6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89DF\u0000\u0000\u0000\uFDDB"+
- "\u0000\u0000\uFAA9\u0000\u8954\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAAB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFC7A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89E0\u0000\u9F4F\u0000"+
- "\u0000\u0000\uC87D\u0000\u0000\u89E1\u0000\u0000"+
- "\u0000\u0000\u0000\uFAB0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FCD"+
- "\uA0E7\u0000\u0000\u0000\u0000\u0000\uFAB1\u89A6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EFA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAB2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAB4"+
- "\u0000\u92C4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F6F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BB0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9FAC\u0000\u0000\u0000\u0000"+
- "\u0000\u89E3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9BD3"+
- "\u89E4\u0000\u0000\u0000\uFAB5\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8955\u0000\u0000\u92C5\u0000\u0000\u0000"+
- "\u8956\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAB3\u0000\u0000"+
- "\u0000\uFAB6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAB7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EDC\u0000\u0000\u0000"+
- "\uFBC4\u9F71\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFABA\u92C7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uC6C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8C68\u0000\u0000\u89E5"+
- "\u0000\u0000\u0000\u0000\u9F7D\u0000\u0000\u0000"+
- "\u0000\u0000\uA0A9\uFAC4\u0000\u0000\u0000\u0000"+
- "\uC6C7\u0000\u0000\u8957\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFAAA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8958\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BE3\u0000\u8B61"+
- "\u0000\u0000\u0000\u0000\u9AF1\u0000\u0000\u9EB7"+
- "\u0000\uC6C8\u0000\u0000\u0000\uFAD1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAD2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EBA\uFAD4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFADB\u0000\u9CE0\u0000\u0000\u0000\uFBF7\u0000"+
- "\uFBFA\u89E7\uA07A\uFADC\u0000\u0000\uFADD\u0000"+
- "\u89E9\u0000\u0000\u0000\u0000\u0000\uC6C9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE2\u89EB\u0000\u0000\uFAE3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90C8\u0000\u0000\u0000"+
- "\u92DA\u8959\u9CF5\u0000\u0000\u0000\u0000\u0000"+
- "\u895A\uFAE7\u9FA2\u0000\u0000\u0000\u0000\u0000"+
- "\uFAEA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAED\u8FAD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAEF\u96EF\u0000\u9DEC\u0000"+
- "\u0000\u0000\u9DCA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD6D\u0000\u89EC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB44"+
- "\u0000\u0000\u9DE2\u0000\u8C75\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EC0\u0000\u9E56\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F79\u9AC7\u0000\u0000\uFAF4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98A1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAF8"+
- "\u0000\u0000\u0000\u89F0\u9E47\u0000\u0000\u9DF7"+
- "\u0000\u0000\u0000\u0000\u9FD3\u0000\u9ACA\u0000"+
- "\u0000\u0000\u0000\u89F1\uFAF9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E5A\u0000\u89F2\u0000\u0000\u0000"+
- "\u0000\u89F3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u925D\u8B51\u92E0\u0000\u0000"+
- "\u89F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8A79\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97A7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u93BA\u0000\u0000"+
- "\u0000\u0000\u0000\u9E58\u0000\u0000\u0000\u0000"+
- "\u89F6\u0000\u0000\u0000\u0000\u0000\u9E57\u0000"+
- "\u0000\u0000\u0000\u89F7\u0000\u8A41\u0000\u0000"+
- "\u89F8\u0000\u0000\uFAF1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB42"+
- "\u0000\uFABF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBA3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAF7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E4E\u0000\u94DC\u0000\u0000\u0000\u0000"+
- "\u0000\u95DA\u9DF8\u9F6A\u0000\u0000\u0000\u0000"+
- "\u0000\u8AB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB46\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8A46\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB47\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9148\u0000\u0000\u0000\u92DE\u0000\u0000\u0000"+
- "\u0000\u8B53\u9DF6\u0000\u9BDA\u0000\u0000\u0000"+
- "\u0000\u9D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89FD"+
- "\u99E4\u0000\u0000\u0000\u0000\u0000\u9E43\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DE9\u0000\u8F52\u0000\u0000\u0000"+
- "\u9DF5\u9DF0\u0000\u0000\u0000\u99E7\u0000\u0000"+
- "\u0000\u0000\u0000\u8BBD\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex3=
- "\u0000\u0000\u0000\u0000\u0000\u9DEF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DD0\u0000"+
- "\u9FEB\u8DA9\u9DCF\u98E1\u0000\u9DE5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DC8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB4F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9DEB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB54\u0000\uFB55"+
- "\u9AA2\u0000\u8AD6\u0000\u9A5F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EF5\u0000\u0000"+
- "\u0000\u8FB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9AD2\u9E6A\u9EE8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BBF\u91C2\u9D62\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9260\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u925E\u91C1"+
- "\u0000\u8AC5\u0000\u0000\u97A3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8B6C"+
- "\u0000\u8D7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9C54\u0000\u0000\u0000\u0000\u0000\u9DBD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CC5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u895B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB5C\u0000\uFB5B"+
- "\u0000\uFB57\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98C7\u0000\u0000"+
- "\uFB5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CEE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u92E2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94A7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8CCC\u0000\u9BD4"+
- "\u0000\u0000\uFB64\uFB76\u0000\u0000\uFB60\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99E5\u0000\u0000\u9AC2"+
- "\u0000\u0000\u0000\u91FB\u0000\u0000\u0000\uA073"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F72"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FCC\u0000\u0000\u0000\u98A5\u92E8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BBC\u0000\u96F3\u0000\u0000\u92E7\u0000\u0000"+
- "\uFC67\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B7D\u0000\u0000\u0000"+
- "\u0000\u9BF4\u0000\u0000\u0000\u0000\u0000\u9EF7"+
- "\u0000\u0000\u9EC1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u996F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96F1\u0000\u0000\u8E41\u0000"+
- "\u0000\u0000\u0000\u0000\u954A\u0000\u0000\u0000"+
- "\u97E6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F5"+
- "\u0000\u0000\u0000\u0000\u0000\u92E6\u9F42\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB67\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99A9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE6\u0000"+
- "\u0000\u0000\u0000\uFB69\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97E5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u967D\u0000\u0000\u0000\uFB6C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99A2\u0000\u0000\u0000\u0000\u0000"+
- "\u9ABB\u0000\u0000\u0000\u9A65\u0000\u0000\u944E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB6E\u0000\u0000\u99DF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E3\u0000\u0000\u9254\u0000\u0000\u0000"+
- "\u0000\u0000\u967B\u8AAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C77\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BAF\u9EBD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9EE6"+
- "\u0000\u0000\uFB6F\u0000\u0000\u0000\u0000\u0000"+
- "\u8EE1\u0000\u0000\u0000\u0000\u9B7D\u9C7E\u0000"+
- "\u0000\u0000\u0000\uF9D9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92EA\u0000\u0000\u0000\u0000"+
- "\u8C78\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB72\u0000\u0000\u0000"+
- "\uFB71\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u895C\u0000\u98F0\u96F2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB74\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BC1\u0000\u895D\u89DE\u0000\u895E"+
- "\u0000\u0000\uC6CA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE42\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB7B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u895F\u0000\u8960\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9BCD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DD3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u984C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9752\u0000\u0000\u0000"+
- "\u0000\u0000\u95C3\u0000\u0000\u0000\u0000\u9BB6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AB9\u0000\u0000\u0000"+
- "\u97B3\u0000\u0000\u0000\u0000\u0000\u0000\u9F74"+
- "\u92F1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97DF\u0000\u0000\u0000"+
- "\u0000\uFBA6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBAB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9877\u0000\u0000\u0000\u9854"+
- "\u95C5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9D55\uFBB2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u957E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9742\u0000\u94E6\u0000\u0000"+
- "\u0000\u0000\u92F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8CC5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92FD\u0000\u0000\uFBA2\u0000\u0000\u9C51"+
- "\u0000\u0000\u94E9\u985C\u92F0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u944C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u916B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B78\u0000\u0000\u0000"+
- "\u0000\u94E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u984F\u0000\uFBB5\u0000\u0000\u0000\u0000"+
- "\u9271\u0000\u0000\u9365\u0000\u0000\u985B\u0000"+
- "\u0000\u9850\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97BC\u0000\u0000\u0000\u0000\u92F3\u0000"+
- "\u0000\u9340\u984D\u0000\u0000\u0000\u9572\u0000"+
- "\uFDEF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFDC1\u0000\u0000\u0000\u0000\uFBBA\u0000"+
- "\u0000\u92EB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC73\u97B7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBB4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90A7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9741\u92F4"+
- "\u0000\u0000\u0000\uFBBC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9577\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9EE2\u0000\u8F78\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uF9DC\u0000\u0000\u0000\u9672\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EB5\u0000\u0000"+
- "\u0000\u964B\u0000\u0000\u0000\u8CAC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0FA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9575\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90DA\u0000\u0000\u9367\u0000\uFEA4\u0000"+
- "\u0000\u0000\u90DF\u0000\u0000\u0000\u0000\u9354"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8961\u0000"+
- "\u8BB4\u0000\u0000\u0000\u0000\u9DC0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8E48\u0000\uFBC5\u0000"+
- "\u0000\u0000\u0000\u0000\uFBC7\u0000\u0000\u0000"+
- "\uC6CB\u0000\uFA79\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E67\u0000\u0000\u0000\u0000\u0000\u8CD9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBD2\u8962\u8963"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC7D\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F6B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBCC\u0000\uFEAE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBD1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB75"+
- "\u0000\u0000\u0000\u0000\u0000\uFBD4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFBD6\uFBD8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8B5D\u0000\u934C\u0000"+
- "\u9AE2\u0000\u0000\u8BC9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBDB\u9FC9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F44\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98ED\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFBDD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DF2\u8964\u0000\uFDF2\u0000\u934D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBE7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0F2\u9868\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F58\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D73\u0000\u0000"+
- "\u0000\uFBDE\u0000\u0000\u0000\u0000\u0000\uFBDF"+
- "\u0000\u0000\u0000\u0000\u0000\u8C48\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFBE3\u0000\u0000\u0000\u0000\u8DA8\u0000\u0000"+
- "\uFBE4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9C75\u0000\u0000\u9878"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8D60\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBE5\u0000"+
- "\u8D61\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8D62\uA0A1"+
- "\u0000\u0000\u0000\u9C40\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98AD\u0000\u0000\u0000\u9EEA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8CD4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CEB\u0000\u0000"+
- "\u0000\u0000\u0000\uFBE0\u0000\u0000\u9F51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D65\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CF1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC58\u0000"+
- "\u0000\u8D66\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9654\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBE8"+
- "\u0000\u0000\u0000\uC6CC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9FCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBFC\u0000\u9AE4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F75\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFBF1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8D69\u0000\u0000\u0000\u0000\u0000"+
- "\u934F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u934E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBF4\u0000\u0000\u0000\u0000\uC6CE"+
- "\u0000\u0000\u0000\uFBC3\u0000\u0000\u8965\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C7A\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8C7B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D6A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9353\u0000\u0000"+
- "\u9DFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBFD\u0000\u0000\u0000"+
- "\u9059\uFC40\u0000\uFC41\uFC43\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9361\uFC46\u9362\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D6B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC4C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95B8\u0000\u0000"+
- "\uC6D0\u8BCA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u987A\u0000\u0000\u0000"+
- "\u0000\uC6D1\u0000\uFC51\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFC54\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8D6C\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFA61\u0000\u0000\uFC57"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9B70\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA051\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C7C\u0000\u8BCB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u936E\u0000\u0000\u0000\uFCD5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCA9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC61\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8966\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFACB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uF9DA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u937A\u0000\uA0E0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u936B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC6B\u0000"+
- "\u0000\u0000\u0000\u0000\uA0DC\u0000\u0000\u9468"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFC6D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D71"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD64\u0000"+
- "\u0000\u0000\u0000\u99BA\u0000\u0000\u0000\u9AD0"+
- "\u9A61\uA0E5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA05B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AC"+
- "\u0000\u0000\u0000\u0000\u9740\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9EF1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C4D\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F7E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8D72\u0000\u0000"+
- "\u0000\u0000\uFC76\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96A9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA06E\u0000\u0000\uFCAA\u0000\u0000\u0000"+
- "\uFBCD\u0000\u0000\u0000\uFC74\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA074"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA071\u0000\u0000"+
- "\u0000\uFC79\u0000\u0000\u0000\u0000\u0000\uFC7C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9C50\u0000\u0000"+
- "\u9379\u9378\u0000\u0000\uA0DD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D75"+
- "\u0000\u8D76\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9374\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D77"+
- "\uFCA5\u0000\u0000\uFCA2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90C3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA079\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8D79\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BFC"+
- "\u0000\uA076\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8BCD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9F5A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FF4\u0000\u0000\u9FBA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E45\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93B0\u0000\uA075\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9B46\u0000\uFCAE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA51"+
- "\u0000\u0000\u0000\u0000\u0000\u8D7B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8D7C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9ED6\u0000"+
- "\u0000\u93AC\u0000\u0000\u0000\u9F5B\u0000\u93A9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA07C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCB2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8AC1\u0000\u0000\u0000\u0000\u0000\u9FB4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCAC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93AD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DC3\u0000"+
- "\u0000\u0000\u8DA2\u0000\u0000\u0000\u9D4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCB6\u0000\u0000\u8DA3\u9E4B\u0000\u9E4D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DA4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8AFD\u0000\u0000\u0000\u0000\u0000"+
- "\uFCB5\u0000\uFCC3\u93B2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DA5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93A1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8AC6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A5B\u0000\u0000"+
- "\u0000\u894D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED4"+
- "\u0000\u0000\u0000\u0000\u8A78\u0000\u93AB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F45\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A56\u0000\u0000"+
- "\u0000\uFCBF\u0000\u0000\u0000\uFCC0\u0000\u8EE6"+
- "\u0000\u0000\u8AA4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8943\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93F3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCAB\u9EA2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9DC7\u0000\u0000\u0000\uC6D2\u8BCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCC5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCCB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93B3\u0000\uFCCA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCC9\u8DAC\u0000"+
- "\uFBC6\u8967\u0000\u8C7E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCCD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF3\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFCD0\u0000\u0000\u95BB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD3\u0000\u0000\uFCD4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DAE";
-
- private final static String innerIndex4=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFCD7\u0000\u0000\u0000\u0000\u0000\u93DB\u0000"+
- "\u0000\u0000\u0000\uFE63\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93D5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCDA\u0000\u0000\u0000"+
- "\u9B71\u0000\u0000\uFCDD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8DAF\u0000\u0000\u0000\uFAF2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u93D8\u0000\u0000\u0000\uFCDF"+
- "\u0000\u0000\u0000\u93D3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFCE1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E76\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFC62\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93D1\u0000"+
- "\u0000\u0000\u8DB1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9859\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFB52\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB53\u0000\u0000"+
- "\u0000\u0000\u0000\uFB4D\u0000\u0000\u9CBF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B72"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFB50\u93BE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9DF1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCEB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA0BB\u0000\u9B7E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DB3\u0000"+
- "\u0000\u8C52\u0000\u0000\u0000\u0000\u9AE8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EDC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CF9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFA50\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98E7\uFCF3\u0000\u0000\u0000\u0000\uFCF2"+
- "\u0000\u0000\u0000\u8CCA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u93E5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9A59\u0000\u0000\u0000\u8DB5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFD4D\u0000\u0000\u0000"+
- "\u0000\uFD5E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F7D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9547\uFCF6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9250\u0000\u0000\u0000\u0000\u8968\u0000"+
- "\u8DB6\uFCFB\uA07D\u98FC\u8969\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE4F\u0000\u0000"+
- "\u9256\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAC9\u0000\u0000\u93E8\u0000"+
- "\u0000\u0000\uFCF8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CE3\uFDA9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC44\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9640"+
- "\u0000\u0000\u8DB8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9B4A\u8FB9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFCFE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u896A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DB9\u0000\u0000\u0000"+
- "\u917E\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u93F4\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB7C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93E7\u0000"+
- "\u0000\u97EF\u0000\u0000\u0000\uFE4A\u0000\u0000"+
- "\u0000\u0000\u0000\uFD45\u0000\u96A5\u0000\u0000"+
- "\u0000\u0000\uFEE0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD48\uFD47\uFEF2\uFE6A\u0000\u0000\u0000\u0000"+
- "\u0000\u8DBD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9BA1\u8CA2\u9AB7\u8EFC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FA1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAAD\u0000"+
- "\u0000\u0000\u0000\u8DBE\u0000\u0000\u89A4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AD9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD4E\u0000\u0000\u8DC0\u0000\u0000\u97F0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u93B4\uFD44\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FA7\u0000\u0000\u0000\u0000\u8DC2\u0000\u0000"+
- "\u0000\u0000\u99B6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD52\u0000\u0000\u0000\u0000\u0000\u0000\u8DC1"+
- "\u0000\u0000\u8E46\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0D1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FCA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92CF\u0000\u0000\u0000\u9CF4\u8DC4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD41\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9B4C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFD57\uFCEF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CDE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFD42\u986C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u97F9\u0000\u9558\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u985E\uFE7B\u94CD\u0000\u0000"+
- "\u0000\u0000\u0000\u93EE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8CA3\u0000\uFD5A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u93F5\u0000\u0000\u0000"+
- "\u0000\u0000\u93EF\u8EEA\u0000\u0000\u0000\u8F5B"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C5E\u0000\u8DC6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DC8\u0000\u0000\u8DC7\u0000\u0000\u0000"+
- "\u0000\u0000\u93F7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DC9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFBF2\u0000\u0000\u0000\u0000\u9670"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DCB\u0000\u0000\u0000\uFD5C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8F65"+
- "\u0000\u0000\u0000\u8DCD\u0000\u0000\u0000\u0000"+
- "\u0000\u9DA8\u94F9\u0000\u0000\u8DCE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93EA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFD5F\u93F0\u9FB6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DCF\u0000\u0000\u0000"+
- "\u9763\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DD0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u93F1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD62\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD65\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FDB\u0000\u0000\u0000\u0000\u93F8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF7"+
- "\u0000\u0000\u0000\u0000\uFD66\u0000\u0000\u0000"+
- "\u0000\u0000\u8BCF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DD1\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DD2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFD71\u0000\u0000\u0000"+
- "\u0000\uFD6F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DD3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FE7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FD0\u0000\u0000\u0000\u8BD0\u0000\uFD72"+
- "\u0000\u9CAE\u8BD1\u0000\u0000\u8ADB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAE4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u95CE\u0000\uFD76\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB62\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DD4\u0000\u0000"+
- "\u0000\uFD78\u0000\u0000\u0000\u0000\u0000\u8EE3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9076"+
- "\u0000\u0000\u98C6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8DD5\u0000\u0000\u0000\u0000\u97D1"+
- "\u0000\u0000\u9EB6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAC7\u0000\u0000\uA042\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9873"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FFC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CA5"+
- "\u0000\u0000\u8DD7\u0000\u0000\u92FB\u8DD8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u944F\u0000\u8DD9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u896B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97CE"+
- "\u0000\u0000\u0000\uFAF3\uFDAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFBAF\u92B7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DDA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5A"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFDAD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DDC\u9444\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DDD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8C41\u0000"+
- "\u0000\u0000\u97D5\u0000\u944A\u0000\u0000\u0000"+
- "\u0000\u0000\u944D\u0000\u0000\u0000\u0000\u97CB"+
- "\u0000\u0000\u0000\u0000\u0000\u8DDE\u0000\u0000"+
- "\u8DDF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DE0\uFEF9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDC0"+
- "\uFCF9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFB7E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u92B3\u0000"+
- "\u0000\u0000\u0000\u0000\uFDAF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DE1\u0000"+
- "\u0000\u0000\u0000\u95D3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u89C1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFD68\u0000\u0000"+
- "\u9CB7\u0000\u0000\u8DE3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFAC0\u8DE5\uFA64\u0000\u8947\u0000\u0000"+
- "\u0000\u0000\u8DE4\u0000\u0000\u0000\u0000\u0000"+
- "\u8DE7\u8DE8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFDC7\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDB0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9445\u97D6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFCC6\u9844"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DE9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DEA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFE50\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DA7\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDCF\u0000\u0000\u0000"+
- "\u0000\u95D2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DED\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFCBA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFDC5\u0000\uFDD2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CDC\u0000\u0000"+
- "\u0000\u0000\u0000\u95CF\u0000\u0000\u8DEE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDD4\u0000\u0000\u0000\u0000"+
- "\u0000\u96EC\u96EB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90B6\u0000"+
- "\uFDC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98AB\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96EE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDE0\u0000\u8C67\u0000\u0000"+
- "\u8DF6\u0000\u0000\u0000\u8DF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FFA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97D0"+
- "\u0000\u0000\u0000\u0000\u8BD2\u0000\u0000\u8DF8"+
- "\u0000\u0000\u0000\u0000\u0000\u90D9\u0000\u8C47"+
- "\u0000\uFAF0\u0000\u0000\u0000\u0000\uFDE1\u8DF9"+
- "\u0000\uFDE3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8DFA\u0000\uFB63\u0000\u0000\u0000\u90A6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9970\u0000\u0000\u91EB\u0000\u9770\u986F\uFDE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98F2\u0000\u9AFC\u896C\uFDFD\u0000\u0000"+
- "\u995E\u0000\u0000\u0000\u95BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDE4\u0000\u0000\u0000"+
- "\u91E6\u0000\u0000\u0000\u0000\uFDE5\uFDE6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDE7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9454\u0000\u0000\u0000\u99B8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9346\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9863\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95BC\u0000\uFDED\uFDF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9870\u96F6\u8EA9\u0000\u0000"+
- "\u0000\u0000\u0000\u9451\u0000\u0000\u8E43\u0000"+
- "\u8B5A\u0000\u0000\u0000\u0000\uFDEE\u0000\u0000"+
- "\u0000\u0000\uFDF0\u0000\u0000\u0000\u0000\uFDF4"+
- "\u0000\u9BF5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u977E\u0000\u0000\u0000\u0000"+
- "\u0000\u9BD5\u0000\u9AC3\u0000\u97C8\uA0DB\u91D0"+
- "\u0000\u0000\u9FE4\u0000\u8FDD\u0000\u91E9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98E0\u0000\u0000\u0000\u92CA\u0000\u9857\u0000"+
- "\u0000\u8C51\u0000\u0000\u0000\u0000\uFDEB\u0000"+
- "\u9B49\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D76\u9EAF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CCC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFDEA\u0000\u0000\u8DF1"+
- "\u0000\u0000\uFDFB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8E53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFACF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96F9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98BF\u9E49\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8CA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9BCA\u0000\u0000\u0000\u0000\uFDFE\u92DC"+
- "\u0000\u0000\u0000\u0000\u0000\uFE41\u91CC\u91E2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFE44\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8BD3\u0000\u0000\uFE47\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFE48\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9455\u0000\u0000\u0000\u0000\uFE4B\u0000\uFE4C"+
- "\u0000\u0000\u0000\u0000\u8DBF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E78\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE51\u0000\u0000\u0000\u0000\u9456"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D61"+
- "\u0000\u0000\u0000\u0000\u9457\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9966"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BD5\u0000\u0000"+
- "\u0000\u0000\uA069\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98B4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA049\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA04C\u0000\u9E65\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B5\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFE58\u0000\u9975\uFE53\uA065\u0000\uFE59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98B7\u98B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98BA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98BB\u0000\u0000\u0000\u0000\u0000\u0000\u9FBC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA04A\u0000\u0000\u9EC7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CA9\u0000\u0000\u98AE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u92D6\u0000\u0000\u0000\uFAE1\u0000\u91D4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFADE"+
- "\u0000\u0000\uFE5B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C53\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE5E\u0000\u0000\u0000\u0000\uFBD7\uFE5A"+
- "\u94C5\u0000\u0000\u0000\u0000\uFACA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98C1\u975C\u0000\uFE74\u0000\u9773\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFA46"+
- "\u0000\u0000\u0000\u9764\u0000\u0000\u0000\uFE68"+
- "\u0000\u964E\u0000\u9765\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C5A\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89A1\u95FA\u0000\u92D4\uFE69\u0000\uFB45"+
- "\u0000\u98C8\u0000\u0000\u90EF\u0000\u98C9\u98CA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u946D"+
- "\u94B7\uFE6C\u0000\u0000\u946B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92FC\u0000\u95EB\u0000\uFE73"+
- "\u976E\uFE5F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDBD\u0000\u0000\u92D5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFEB9\u0000\u0000"+
- "\uFE71\u0000\u0000\u0000\u0000\uFBBB\u0000\u0000"+
- "\u947A\u0000\u0000\u95FB\uFE77\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFE79\u0000\uFE75\u0000"+
- "\u0000\u0000\u945D\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE7C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9344\u8EA6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92D3\u0000\u94B8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFC71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u975E\u0000\u0000\u0000"+
- "\u0000\u8CAD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEA7\u0000\u0000\u0000\u946A\u0000\u0000\u0000"+
- "\u93E3\u0000\u0000\u98CF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA0D9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0BF\uA04D\uA0B8\u0000\u0000\u0000\u0000\u0000"+
- "\uA0CE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEA9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C3\u0000\u0000\u0000\u0000\uFEAB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9DF4\u896D\u0000\u0000"+
- "\u0000\u0000\u0000\u9C7B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u98D2\u0000\u0000\u0000\u9FA9\u0000"+
- "\u0000\u0000\uFEB2\u0000\u0000\uFEB1\u0000\u0000"+
- "\u0000\u97D9\u0000\uA0C4\u0000\u9476\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9978\u0000\u0000\u0000\u0000\u0000\u0000\uFEB3"+
- "\u0000\u0000\u0000\u0000\u0000\u98D3\uFEB4\u0000"+
- "\u0000\u0000\u98D4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9471\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98D5\uFEB8\u0000"+
- "\u0000\u0000\uC6D4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEBA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9E5C\u0000\u0000\uFEBB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA044\u0000\u0000\u0000\u0000"+
- "\u98D7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98D8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static String innerIndex5=
- "\u0000\u0000\uFEBC\u0000\u0000\u0000\u0000\u9FFE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEBD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9DDD\u0000\u0000\u0000\u0000"+
- "\u9EE1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98DA\u9DDF\uFEBF"+
- "\u0000\uFEBE\u0000\u0000\u9EEB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E59\uA05C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC0"+
- "\u0000\u0000\u0000\u9477\u98DC\u0000\uFEC1\u0000"+
- "\u0000\u0000\u98DE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEC3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFEC8\u0000\u0000\u0000\uFEC9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFECA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFECB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FC2\u0000"+
- "\u0000\u8C6B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98C4\u0000\u94B0\u94B1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFED1\u0000"+
- "\u0000\u0000\u0000\u0000\uA0C1\u0000\uFED2\u0000"+
- "\u0000\u0000\u0000\uA0CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFED3\u0000\u0000\u98E5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFED6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91E4\u0000\u0000\u0000\u0000\u8FC7"+
- "\u94AE\u0000\u8A4F\u94B2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FD4\u0000\u0000\u0000\u0000"+
- "\u98EA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFED8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9DE0\u0000\u0000\u0000\u0000\u98EE\u0000"+
- "\u0000\u0000\u0000\u95C4\u0000\uFCE8\u0000\u0000"+
- "\u0000\u0000\u0000\u98EF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8C6E\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAD8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEDC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0AE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9D4C\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F1\u0000\u0000\u0000\u98F3\u0000\u94C1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u98F5\u0000\u0000\uFA4F\u96E2\u0000\u0000"+
- "\u0000\u0000\u9450\u0000\u96A2\u0000\u0000\u98F6"+
- "\u0000\u0000\u0000\u96E5\u0000\u0000\u0000\u0000"+
- "\u0000\u98F7\u0000\uA046\u96E3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9EE4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF9D6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u94C3\u0000\u0000\u0000\u0000\u94C2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE1"+
- "\u0000\uFEE9\u0000\u0000\u0000\u0000\u96E4\u0000"+
- "\u89AC\u96DB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94C4\uFEE3\u0000\u0000\u0000\uFEE7"+
- "\u9FFB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8C59\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u93C9\u0000"+
- "\u94E8\uFB56\u0000\u0000\u0000\u90C5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0A8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFEE5\u0000"+
- "\u0000\u0000\u98FD\u98FB\uFEE8\u0000\u8EBF\u0000"+
- "\u0000\u0000\u0000\u8BD8\uFEF7\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F68\u94C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DEA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC69\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9CDA\u0000"+
- "\uFEF3\u0000\u0000\u9C72\u0000\u0000\uFEF0\u89C9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9941\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9942\u0000\u0000\u0000\uFEF5\u0000\u91D7"+
- "\u0000\u0000\u0000\u0000\u0000\u94CC\u0000\u0000"+
- "\u0000\uFEF8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u97A8\u0000\uFEFC\u0000"+
- "\u0000\u0000\u0000\u0000\uFDBF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEFE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u96D1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u94D5\u0000\u0000\u94D0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9944\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8C63\u0000\u0000\uA0B3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u94CF\u0000\u0000\u0000\u9FFA\u0000"+
- "\u0000\u0000\u0000\u91E5\u0000\u9C6A\u0000\u0000"+
- "\u0000\u8E49\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E4C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E4D\u0000\u0000"+
- "\u0000\u0000\u0000\u9A73\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9947\u0000\u8CB1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8E50\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8E4F\u9949\u0000\u0000\u0000"+
- "\u0000\u0000\u8E51\u8E52\u0000\u0000\u0000\u0000"+
- "\u9AB2\u89A5\u0000\u0000\u0000\u0000\u0000\u994C"+
- "\u0000\u0000\u0000\u9FF8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E56\u994D\u91CA\u8E57\u0000\u0000"+
- "\u0000\u0000\u94E1\u0000\u0000\u0000\u0000\u9047"+
- "\u0000\u8FD8\u8E58\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u94EB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8E5C\u9553\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FE5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F56"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u954F"+
- "\u0000\u8E5E\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u996A\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C64\u9CD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E5D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9950\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9951\u0000\u0000\u8E62"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9952\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E68\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E61\u9F59\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BB3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5D"+
- "\u8E66\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CB2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E6E\u0000\u9F64\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9953\u0000\u0000\uFAB8\u0000\u0000"+
- "\u0000\u0000\u0000\u9954\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8E70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F61\u0000\u8E72\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA06B\u0000\u0000\u0000\u0000\u9F40\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94ED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94EE\u0000\u0000"+
- "\u9FBD\u0000\u0000\u0000\u8E7B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9957\u94F7\u0000\u9F5F\u0000"+
- "\u0000\u0000\u0000\u8E73\u0000\u0000\u9F62\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u94F6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9958\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8E75\uF9DB"+
- "\u0000\u0000\u0000\u0000\u9072\u0000\u94F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u995A\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0B0\u8CB3\u0000\u0000\u0000\u8E79"+
- "\u0000\u8E78\u0000\u0000\u0000\u94F3\u0000\u0000"+
- "\u0000\u0000\u0000\u98AF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0B2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8E7A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u995C\u0000\u0000"+
- "\u0000\u0000\u0000\u8E7C\u0000\u8E7D\u0000\u0000"+
- "\u0000\u8BD9\u0000\u0000\u89A2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9ED7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0B6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E42\u0000\u0000\u8EA4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EA7\u0000\u8C76\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9542"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u987D\u0000\u0000\u0000"+
- "\u9755\u0000\u0000\u8EA8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u89A3\u0000\u9960"+
- "\u9962\u0000\u0000\u94FC\u9961\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u94FA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8EAE\u8EB2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8EB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9963\u97AA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u94FB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EBB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8CDC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9876\u0000\u8EA1"+
- "\u0000\u0000\u0000\u0000\u8CB4\u0000\u8EB7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DA6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9EB0\u0000"+
- "\u0000\u0000\u8EB8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D70"+
- "\u0000\u0000\u0000\u0000\u896E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u896F\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8970\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8971"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8972"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8973"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8974\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8975"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8EBC\u8EBD\u0000\u0000\u0000\u0000\u0000\u8EBE"+
- "\u0000\u9DD1\u0000\u0000\u0000\u0000\u94FD\u0000"+
- "\u0000\u0000\u8BD7\u8BDA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FE9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFDA8"+
- "\u0000\u0000\u0000\u8AE7\u0000\u0000\u0000\u8EC2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EC4\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9964\u0000"+
- "\u0000\u0000\u0000\u0000\u9965\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u954E\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u98B3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8ECB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BDF\u0000\u0000\u0000\u0000\u0000"+
- "\u8ECE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8ECF\u0000\u0000"+
- "\u9968\u0000\u0000\u0000\u0000\u9969\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u996B\u8ED1"+
- "\u0000\u996C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8ED4\u8ED5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u996D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0BE\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED6\uA0BC\uA0B5\u0000\u0000\uA0B4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BE0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89B5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EDD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5D\u9971"+
- "\u0000\u0000\u0000\u0000\u89AE\u9DE8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9565\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9972\u0000\u0000\u8B5C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u89B1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA0C0\u0000\u0000\u0000\u8EDF"+
- "\u0000\u9566\u0000\u0000\u9974\u0000\u9976\u0000"+
- "\u0000\u0000\u9977\u0000\u9979\u0000\u0000\u9DDA"+
- "\u0000\u0000\u8EE0\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u935C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9DE6\u0000\u8B5F\u0000\u0000\u9563"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9567\u0000\u0000\u0000\u0000\u0000"+
- "\u9DE3\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u997C\u0000"+
- "\u0000\u997D\u997E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8B5B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99A3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99A4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99A6\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99A8\u0000\u0000"+
- "\u0000\u0000\u8ABE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E61\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99AA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0C8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFEC4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u98C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8EE8\u0000\uA0BA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFD77\u0000"+
- "\u0000\u8EEE\u0000\u0000\u0000\u9EBF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u89C2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99AC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u956B\u0000\u0000\u956C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99AF\u0000"+
- "\u0000\u994A\u8976\u8F48\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFBEE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99AE\u0000"+
- "\u0000\u0000\u8EFB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CD0"+
- "\u0000\u0000\u0000\u0000\u8B52\u0000\u0000\u0000"+
- "\u0000\u0000\u99B0\u0000\u0000\u0000\u0000\u8977"+
- "\u8F41\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99B1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8F49\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFA4D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DE4"+
- "\u8CB5\u0000\u0000\u0000\uFBE9\u9B54\u0000\u99B2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9E68\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8F4A\u0000\u8F42\u0000\u0000\u8F51\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9846\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99B4"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8EF5\uFD55\u0000\u0000\u9CCD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8978"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8F53\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8F6F\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8E63\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8F56\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFE76\u0000\u0000\u0000\u0000\u9FC6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAAC\u0000\u0000"+
- "\u0000\u0000\u0000\u8F58\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9848\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99B7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9665\u0000\uFA6C\u0000"+
- "\u9DE7\u0000\u0000\u0000\u9E62\u0000\u0000\u0000"+
- "\u96CC\u8E67\u0000\u0000\uFC75\u0000\u987E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFDB9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u97FC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98F9\u0000\u8F66\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u956E\u0000\u9245\u0000\u0000"+
- "\u8F60\u0000\u0000\u0000\u9ED1\u0000\u0000\u0000"+
- "\u0000\u0000\uFECD\u0000\u99B9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8F62\u974C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91C7"+
- "\u955F\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99BB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8E6D\u8F71\u0000\u0000\u94CB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95B1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AF2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96C3\u99BD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0CF\u0000\u0000\u0000\u8F6D\u0000"+
- "\u0000\u99BE\u8EF4\u0000\u8F72\u95E4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99BF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9242\u0000\uFBA5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99C0\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFDB4\u8F77\u0000\u0000\u0000"+
- "\u99C1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFAB9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8F40\uFA44\u0000\u0000\u0000"+
- "\u0000\u0000\u99C2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8F5C\u0000\u0000\u0000\u0000\u8CBD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99C4"+
- "\u99C5\u0000\u0000\u8F7B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8CB6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FA3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8CCE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99C6\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96CD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96C7\u0000\u0000\u0000";
-
- private final static String innerIndex6=
- "\u0000\u0000\u8FA5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFABB\u0000\u8C61"+
- "\u9570\u0000\u0000\u0000\u9368\u0000\u8F7E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FAA\u0000\u0000\u0000\u0000\u0000\u0000\uA050"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90D3\u0000\u0000\u9556\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FB8\u0000\u0000\u0000"+
- "\u0000\u0000\u99C8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FAF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99C9\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9579\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9F49\u0000\u0000"+
- "\u0000\u0000\u99CA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99CB"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9DD5\u8FB0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFA7A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9E5F\u0000"+
- "\u0000\u0000\u0000\u99CD\uA0C9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9ADB\u0000\u0000"+
- "\u0000\uA0C6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FB4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0C7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA043\u0000"+
- "\u0000\u0000\u8FB5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FB2\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA061\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E5E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FB6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FE8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CB2"+
- "\u0000\u0000\u0000\u0000\u0000\u957C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FC7\u0000\u0000\u8FBB\u8FBC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FEC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FC0\u0000"+
- "\u936A\u0000\u0000\u0000\u8BE4\u9C7C\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95A1\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEEC\u0000\u0000\u95A3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8C45"+
- "\u8CB8\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC1\u0000\u0000\u0000"+
- "\uA052\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99D0\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC3\u8FC4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95A4"+
- "\u0000\u0000\u0000\u0000\u0000\u8FC6\u0000\u9E60"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uF9D8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95A5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CB3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99D1"+
- "\uFEF1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99D2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9CC2\u0000\u0000\u0000\u99D3"+
- "\u0000\u0000\u0000\u0000\u0000\u95A7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95A9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95A6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9C5D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98E2\u0000\u0000\u0000\u0000\u0000\u0000\u8FC9"+
- "\u0000\uA0C2\u8FCA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99D4\u0000\u0000\uA0B9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9B58\u0000\u8FCD"+
- "\u0000\uA0D4\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FCE\u0000\u0000\u0000"+
- "\u0000\u8BE5\u0000\u0000\u0000\u0000\u8979\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FD0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95B6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99D6\u0000\u95E5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99D7\u0000\u0000\u0000\u0000\u95B5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0CA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FFD"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA058\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FD6\u0000\u0000\u0000\u99D8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FD3\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FE5\u0000\u0000\u0000\u0000\u0000\u8FE9"+
- "\u0000\u0000\u0000\u0000\u99D9\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u927C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9C45\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FDE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FDF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA04B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8FE2"+
- "\u0000\u0000\u0000\uA0CC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FE3\u8FE4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BC4\u0000"+
- "\u0000\u0000\u9BFC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u964C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9AF6\u0000\u8CAE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8FE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FE8\u0000\u0000\u0000\u0000"+
- "\u8BE7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u897B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99DA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FED\u0000\u0000\u0000\u95C0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uA0CB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E48\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99DB\u0000\u8FF3\u0000"+
- "\u0000\u0000\u0000\u8FF9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95C1\u0000\uA04E\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99DC\u0000\u0000\u0000\u0000\uA064"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FF7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89B0\uA048\u0000\u0000\u0000"+
- "\u0000\u8FFB\u8FF6\u0000\u0000\u0000\u0000\u0000"+
- "\u9DDC\u0000\u0000\u0000\u99DD\u8BE8\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u92C1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FD6\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0D2\u0000"+
- "\u0000\u9040\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8AC4\u0000\u0000\u99E0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FF0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FF3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DBF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FF6\u0000\u95C8\u0000\u0000\u9E5A\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99E3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A4A\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FF1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8AA7\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99E6\u0000\u0000\u0000\u9FF7\u0000\u9FED"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8A5C\u0000"+
- "\u9DAE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95C9"+
- "\u0000\u0000\u0000\u0000\u0000\u9048\u0000\u0000"+
- "\u99E8\u0000\u0000\u0000\u0000\u0000\u9049\u0000"+
- "\u0000\u8CBA\u0000\u0000\u90B1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u904A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99EA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9BD1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99EB\u0000\u99EC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u99ED\u0000\u0000"+
- "\u0000\u0000\u99EE\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u904C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u904D\u0000\u0000"+
- "\u95CB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97E2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95CC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9F78\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897C\u897D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u897E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u995D\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9B5A\u0000\u0000\u0000\u0000\u9050\u0000\u8C4F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9054\u0000\uC6D6\u9AA8\u99EF"+
- "\uFEEB\u9DA3\u9DA1\u9943\u9945\u0000\u9D7D\u0000"+
- "\u0000\u99F0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99F1\u0000\u99F2\u0000\u0000\u8CBC"+
- "\u9D60\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA0A3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u905B\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9EDB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9D79\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99F3\u0000\u0000\u0000\u9062"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9F55\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9BF9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9065\u0000\u0000\u96E0\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u98BE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9068\u0000\u0000\u0000\u0000\u0000\u906C\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u95D8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u906A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FB2\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FAE\u0000\u0000\u9FB0\u0000\u89AD\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u906E"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E71\u0000\u0000\u0000\u0000\u0000\u9E4A\u0000"+
- "\u0000\u0000\u0000\u0000\u9FDC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89AB\u0000\u9FB8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9070\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8B63\u0000"+
- "\u0000\u0000\u0000\u95DC\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9071\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFC5E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8949"+
- "\u0000\u0000\u0000\u0000\u0000\u965B\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8C50\u0000"+
- "\u0000\u0000\u94A6\u0000\u0000\u0000\u8FD5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E73\u0000\u0000\u0000\u0000\u0000\u9075\u0000"+
- "\u0000\u0000\u0000\u99F7\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8CBF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u99F9\u0000\u9663\u95B9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u94D4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCFA\u0000\u0000\u0000"+
- "\u0000\u9077\u0000\u0000\u90AB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9D4D\u0000\u0000"+
- "\u99FA\u0000\u0000\u0000\u0000\u92E3\u0000\u97BB"+
- "\u0000\u0000\u9078\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99FB\u0000\u0000\u97E0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96DC"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9CA8\u0000\u0000\u9772\u0000\u0000\u0000"+
- "\u0000\u9440\u0000\u0000\u0000\u0000\u0000\u92F2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u99FD\u0000"+
- "\u0000\u99FC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uF9D7\u964A\u0000\u0000\u0000\u96D8\u99FE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u904B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFA41\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A40\u0000\u975B\u0000\u0000"+
- "\u0000\u0000\u0000\u9A41\u91DD\u0000\u0000\u0000"+
- "\u0000\u0000\u93FC\u9A42\u9A43\u0000\u9659\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A44\u0000\u0000"+
- "\u0000\u0000\u0000\u9051\u0000\u0000\u0000\u94BF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90A2\u0000\u0000\u0000"+
- "\u9CAB\u9776\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFC55\uFE45\u94A8\u9A45\uFA4B\u9DE1\u0000\u0000"+
- "\u96D9\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9774"+
- "\u0000\u0000\uFDF5\u0000\u0000\u0000\u92E5\u0000"+
- "\u9645\u91DA\u0000\u90A3\u0000\u0000\uA05F\u0000"+
- "\u0000\u0000\u0000\u90AF\u97BF\u0000\u0000\u0000"+
- "\u914C\u0000\u0000\u0000\u0000\u967A\u0000\u0000"+
- "\u0000\u91DE\u0000\u0000\u9A46\uFEB0\u9779\u946C"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9858\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9266\u0000\u0000\u0000"+
- "\u93FB\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A47\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9749\u0000\u0000\u9748\u0000\u934A\u0000\u9CE2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9264\u0000"+
- "\u0000\u0000\u0000\u91DF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFB79\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96D7\u0000\u0000\u0000\u0000"+
- "\u9343\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFDCB\uFE7A\u0000\u91DB\u8C6A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u97AF\u0000\u0000\u95DD\u0000\u0000\u0000"+
- "\u9348\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A4B"+
- "\u0000\u0000\u0000\uFC45\u0000\u9A4D\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u91BC\u90E2\u90B4\u95E1"+
- "\u0000\u0000\u0000\u0000\u0000\u9A4E\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A4F\u0000"+
- "\u0000\u0000\uFE40\uFE43\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96DD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A51\u0000\u0000\u0000"+
- "\u96A7\u0000\u0000\u90B0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9C4E\u0000\u9443"+
- "\u0000\u0000\u0000\u0000\u8EBA\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A52\u0000\uFCC1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BE9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9CAF"+
- "\u0000\u0000\u8BFD\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9ABC\u0000\u9AB8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9AA7\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A53\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9D74"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BEA\u0000\u0000\u0000\u0000\u0000\u0000\u8BEB"+
- "\u0000\u0000\u0000\u0000\u0000\u90B2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u95E9\u95E8"+
- "\u0000\u95E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90B5\u0000\u9A54\u0000\u0000\u0000\u90B3\u95E7"+
- "\u0000\u0000\u8B50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8BEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9A56\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
-/*
- private final static String innerIndex7=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
- "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
- "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
- "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BC4\u0000\u0000\u0000\u8C66\u0000\u90DE"+
- "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
- "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
- "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
- "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
- "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
- "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
- "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
- "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
- "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
- "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
- "\u8CC9\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
- "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
- "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
- "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
- "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
- "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
- "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
- "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
- "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
- "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
- "\u8CBE\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
- "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
- "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
- "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
- "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
- "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
- "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
- "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
- "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
- "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
- "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
- "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
- "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
- "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
- "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
- "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
- "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
- "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
- "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
- "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
- "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
- "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
- "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
- "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
- "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
- "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
- "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
- "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
- "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
- "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
- "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
- "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C8\u0000\u0000\u0000\u0000\u0000\u8DAA"+
- "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFA40\u0000\uFA42\uFA43\u0000\u0000\u0000\u0000"+
- "\u0000\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
- "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
- "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
- "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFA6D\uFA6E\u0000"+
- "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
- "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFAA7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
- "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
- "\u0000\u0000\u0000\u0000\uFACE\u0000\u0000\u0000"+
- "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
- "\uFADA\u0000\u0000\u0000\u0000\uFADF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFAE9"+
- "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
- "\u0000\uFAFB\uFAFC\u0000\uFAFE\uFB40\uFB41\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
- "\u0000\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFB5D\u0000\uFB5F\u0000\uFB61\u0000"+
- "\u0000\u0000\u0000\uFB66\u0000\uFB68\u0000\uFB6A"+
- "\uFB6B\u0000\uFB6D\u0000\u0000\u0000\u0000\u0000"+
- "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBA1\u0000\u0000\uFBA4"+
- "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
- "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
- "\u0000\u0000\uFBB7\u0000\u0000\u0000\u0000\u0000"+
- "\uFBBD\uFBBE\u0000\uFBC0\u0000\uFBC2\u0000\u0000"+
- "\u0000\u0000\u0000\uFBC8\u0000\u0000\uFBCB\u0000"+
- "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\u0000\u0000"+
- "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
- "\u0000\uFBE6\u0000\u0000\u0000\u0000\uFBEB\uFBEC"+
- "\uFBED\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
- "\u0000\uFBFE\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC47\uFC48\u0000\u0000\uFC4B\u0000\uFC4D"+
- "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
- "\uFC56\u0000\u0000\u0000\uFC5A\uFC5B\uFC5C\uFC5D"+
- "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\u0000\u0000"+
- "\u0000\u0000\uFC68\u0000\u0000\u0000\u0000\u0000"+
- "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
- "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\u0000\uFCA7"+
- "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
- "\u0000\uFCB1\u0000\uFCB3\u0000\u0000\u0000\uFCB7"+
- "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFCC7"+
- "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\u0000"+
- "\u0000\u0000\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
- "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
- "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
- "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\u0000\u0000"+
- "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
- "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
- "\u0000\u0000\uFD4B\u0000\u0000\u0000\uFD4F\u0000"+
- "\u0000\u0000\u0000\uFD54\u0000\u0000\u0000\uFD58"+
- "\uFD59\u0000\uFD5B\u0000\u0000\u0000\u0000\uFD60"+
- "\u0000\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
- "\uFD69\uFD6A\uFD6B\u0000\u0000\uFD6E\u0000\uFD70"+
- "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
- "\uFD79\u0000\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\u0000"+
- "\u0000\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
- "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
- "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
- "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
- "\u0000\u0000\u0000\uFDC6\u0000\uFDC8\uFDC9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFDD0\u0000\u0000"+
- "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
- "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
- "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
- "\u0000\u0000\uFE4E\u0000\u0000\u0000\u0000\u0000"+
- "\uFE54\uFE55\u0000\uFE57\u0000\u0000\u0000\u0000"+
- "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
- "\u0000\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
- "\u0000\uFE6D\u0000\u0000\uFE70\u0000\uFE72\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
- "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
- "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
- "\u0000\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\u0000"+
- "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
- "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
- "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
- "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
- "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
- "\uFEF6\u0000\u0000\u0000\uFEFA\u0000\u0000\uFEFD"+
- "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u0000\u0000"+
- "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
- "\u0000\u0000\u0000\u0000\u0000\u8E54\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8E5B\u0000\u0000\u0000"+
- "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
- "\u0000\u0000\u0000\u8E6A\u0000\u8E6C\u0000\u0000"+
- "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
- "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u0000\u0000"+
- "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
- "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u0000\u8EC8"+
- "\u0000\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u0000"+
- "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
- "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
- "\u8EE9\u0000\u8EEB\u8EEC\u0000\u0000\u8EEF\u8EF0"+
- "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
- "\u8EF9\u8EFA\u0000\u0000\u8EFD\u0000\u0000\u0000"+
- "\u0000\u8F43\u8F44\u0000\u8F46\u8F47\u0000\u0000"+
- "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u0000\u0000"+
- "\u0000\u0000\u0000\u8F55\u0000\u0000\u0000\u0000"+
- "\u8F5A\u0000\u0000\u0000\u8F5E\u8F5F\u0000\u8F61"+
- "\u0000\u0000\u0000\u0000\u0000\u8F67\u0000\u0000"+
- "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8F73\u0000\u8F75\u0000\u0000\u0000\u8F79"+
- "\u0000\u0000\u0000\u0000\u0000\u8FA1\u8FA2\u0000"+
- "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u0000\u0000\u0000"+
- "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
- "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u0000"+
- "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
- "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u0000"+
- "\u0000\u0000\u8FEE\u8FEF\u8FF0\u0000\u8FF2\u0000"+
- "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
- "\u8FFC\u0000\u0000\u0000\u9041\u9042\u9043\u0000"+
- "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
- "\u0000\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
- "\u905D\u905E\u905F\u0000\u9061\u0000\u9063\u9064"+
- "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9073\u9074"+
- "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
- "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
- "\u0000\u90A8\u90A9\u0000\u0000\u90AC\u90AD\u90AE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90B8\u90B9\u90BA\u90BB\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90C2\u0000\u0000\u0000\u90C6"+
- "\u0000\u0000\u0000\u90CA\u90CB\u90CC\u90CD\u90CE"+
- "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
- "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
- "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u90FB\u0000\u90FD\u90FE"+
- "\u9140\u0000\u0000\u0000\u0000\u0000\u9146\u9147"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u0000"+
- "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
- "\u0000\u9159\u915A\u0000\u0000\u915D\u0000\u0000"+
- "\u0000\u0000\u9162\u0000\u0000\u9165\u0000\u9167"+
- "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
- "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
- "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
- "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91B1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u91B8\u0000"+
- "\u0000\u0000\u0000\u91BD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u91CE\u91CF\u0000\u91D1"+
- "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
- "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
- "\u0000\u0000\u0000\u0000\u0000\u91E7\u91E8\u0000"+
- "\u91EA\u0000\u91EC\u91ED\u0000\u91EF\u91F0\u91F1"+
- "\u0000\u91F3\u91F4\u0000\u91F6\u91F7\u91F8\u0000"+
- "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
- "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
- "\u924B\u0000\u924D\u924E\u924F\u0000\u0000\u0000"+
- "\u0000\u0000\u9255\u0000\u0000\u9258\u9259\u925A"+
- "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
- "\u9263\u0000\u9265\u0000\u0000\u0000\u0000\u926A"+
- "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
- "\u9273\u0000\u9275\u9276\u0000\u0000\u9279\u927A"+
- "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
- "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
- "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
- "\u0000\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
- "\u0000\u92C6\u0000\u0000\u0000\u0000\u92CB\u92CC"+
- "\u92CD\u92CE\u0000\u92D0\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u92D8\u92D9\u0000\u0000\u0000";
- */
- private final static String innerIndex7=
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BFB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A57\u0000\u0000\u0000\u0000"+
- "\uA0AA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FA6\u0000\u0000\u0000\u99CC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9C59\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99B5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90BE\u0000\u0000\u0000\u0000"+
- "\u0000\u9FAF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u95F2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90BF\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90C1\u0000\uFEE4\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90C4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u90C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92E4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9F52\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u90DB\u0000\u0000\u0000\u0000"+
- "\u0000\uA066\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90D2\u0000\u0000\u0000\u0000\u90D4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9A5B\u95FD\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8BC4\u0000\u0000\u0000\u8C66\u0000\u90DE"+
- "\u0000\u0000\u0000\u0000\u0000\u9CE4\u0000\u90E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9E46\u0000\u0000"+
- "\u0000\u9651\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uFB58"+
- "\u0000\u90E6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9650\u0000\u0000\u0000\u90E7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u90E8\u9A5D\u0000\u9F7A\u0000\u0000\u0000"+
- "\u9B5C\u0000\u9F7C\u0000\u0000\uFC52\u90E9\u0000"+
- "\u90EA\u0000\u9A5E\u0000\u0000\u0000\u0000\u0000"+
- "\u9F76\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u90EB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90EC\u0000\u0000\u0000\u0000\u0000\u8BEE\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90EE\u0000"+
- "\u0000\u0000\u91C6\u0000\u0000\u90F2\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCBC\u8A74\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9657"+
- "\u0000\u0000\u0000\u9CEF\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FDF\u0000"+
- "\u0000\u0000\u0000\u90F7\u90F6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9B5E"+
- "\u0000\u0000\u0000\u90F8\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90F9\u0000"+
- "\u8CC9\u0000\u0000\u0000\uFA6A\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BEF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9FE0\u0000\u0000\u9142"+
- "\u0000\u9A62\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9569\u0000\u0000\u0000\u9144"+
- "\u9143\u0000\u9141\u0000\u0000\u0000\u8BF0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9660\u0000\u8BF1\u0000"+
- "\u99F6\u9149\u0000\u0000\u0000\u0000\u914A\u0000"+
- "\u0000\u0000\u0000\u0000\u914B\u0000\u0000\u0000"+
- "\u0000\u9A64\u0000\u0000\u0000\u8ABF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A66\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A67\u0000\u0000\u9A69\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9A6A"+
- "\u9652\u914D\u0000\u9666\u0000\u0000\u0000\u0000"+
- "\u9F7B\u0000\u9A6B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA06C\u0000\u0000\u9667\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A6C\u0000\u0000"+
- "\u0000\u0000\u9A6D\u8BF2\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u966A\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFCEA\u0000\u0000\u0000"+
- "\u0000\u0000\u966C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91C4\u0000\u0000\u0000\u9677\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99F4\u9A6F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FAB\u0000\u0000\u0000\u0000\u0000"+
- "\u8CBE\u8EC1\u0000\u0000\u0000\u0000\u9555\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9152\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9153\u0000\u0000\u0000"+
- "\u9155\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u955D"+
- "\u0000\u9671\u0000\u0000\u0000\u0000\u9C6D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9673"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9154\u9A71\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9156\u0000\u0000\u0000\u966D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9557\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89C6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89C7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8A6A\u0000\u0000\u0000\u8B57\u0000"+
- "\u0000\u0000\u9FE1\u0000\u0000\u9B5F\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\uA05D"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u915B\u0000\u915C\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u915E\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9F5C"+
- "\u0000\u0000\u9F57\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F65\u0000\u0000\u0000\u0000\u0000\u9A72"+
- "\u0000\u0000\u0000\u0000\u9160\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F5E\u0000\u0000\u9161\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9164\u0000\u0000\u0000"+
- "\u0000\u9F41\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9169\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9168\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A74\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B2"+
- "\u0000\u9A75\u0000\uFDA5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EE9\u0000\u8BBA\u916D\uA060"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FDE"+
- "\u0000\u0000\u0000\u0000\u0000\u9FC3\u0000\u96B5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA067\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96B3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A76\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95D5\u0000\u0000\u0000\u9ECA\u0000\u0000"+
- "\u0000\u9A77\u0000\u0000\u9A78\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9170"+
- "\u0000\u0000\u916F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA3\u0000\u9171\u0000\u0000\u0000"+
- "\u96B1\u0000\u0000\u0000\u0000\u9F63\u0000\u0000"+
- "\u0000\u0000\u0000\u9F67\u0000\u0000\u0000\u8BB9"+
- "\u9A7A\u0000\u0000\u0000\u0000\u0000\u8B56\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9ADA"+
- "\u0000\u0000\u0000\u0000\u0000\u96B0\u0000\u0000"+
- "\u0000\u0000\u9A7E\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DDE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96AD"+
- "\u0000\u0000\u0000\u96AE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9EA1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9E50\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96AF\u8BF4\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9FA4\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u96BD\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96F4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u96B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAA1\u0000\u0000\u0000"+
- "\u0000\u91A7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA05E\u0000\u0000\u0000"+
- "\u0000\u9A7D\u0000\u0000\u0000\u0000\u8948\u0000"+
- "\u9EB1\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9DDB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u95BF\u8A73\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9EFE\u0000\u917A\u0000"+
- "\u0000\u0000\u0000\u917B\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u96C2\u0000\u0000"+
- "\u0000\u0000\u0000\u9F77\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AA4\u0000\u0000"+
- "\u9AA5\u0000\u0000\u0000\u91A1\u0000\u0000\u0000"+
- "\u0000\u89B8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9173\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AA6\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u89BD\u0000\u89B9\u0000\u917D\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96BB\u0000\u0000\u0000\u9FF2\u0000\u0000\u8BF5"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9AA9\u0000\u0000\u0000\u0000"+
- "\u0000\u9F54\u0000\u0000\u9FE3\u9EED\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u91AA\u0000\u0000\u0000\u0000\u91AB\uA070\u0000"+
- "\u9F6D\u0000\u0000\u0000\u0000\u0000\u91AC\u0000"+
- "\u0000\u0000\u91AD\u0000\u0000\u0000\uA0FD\u0000"+
- "\u9FE2\u0000\u91AF\u9E41\u9AAA\u0000\u0000\u91B0"+
- "\u0000\u9AAB\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9AAC\u0000\u9A4A"+
- "\u0000\u91B2\u0000\u0000\u8BF6\u0000\u9AAD\u89B6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9AAF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9AB0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9AB1\u0000\u0000\u0000\u0000\u0000\u9AA1\u0000"+
- "\u0000\u0000\u91B9\u0000\u0000\u0000\u0000\u0000"+
- "\u91BA\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u91BE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA041\u8BB7"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9AB3\u91C3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA0FC\u0000\u0000\u9FEE\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9F69\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u91C8\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u91C9\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8DE6"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u91CB\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89C8\u0000\u0000\uC074\u0000\u0000\u8DAA"+
- "\u0000\u0000\u0000\u0000\u0000\u9FDD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFA40\u0000\uFA42\uFA43\u0000\uFA45\u0000\u0000"+
- "\uFA48\uFA49\uFA4A\u0000\uFA4C\u0000\uFA4E\u0000"+
- "\u0000\u0000\uFA52\uFA53\uFA54\uFA55\uFA56\u0000"+
- "\uFA58\u0000\uFA5A\uFA5B\uFA5C\uFA5D\uFA5E\u0000"+
- "\uFA60\u0000\uFA62\uFA63\u0000\uFA65\u0000\u0000"+
- "\uFA68\u0000\u0000\uFA6B\u0000\uFA6D\uFA6E\u0000"+
- "\uFA70\u0000\uFA72\uFA73\uFA74\uFA75\uFA76\uFA77"+
- "\uFA78\u0000\u0000\uFA7B\uFA7C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAA5\u0000\uFAA7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFAAE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFABC\u0000\uFABE\u0000\u0000\uFAC1"+
- "\uFAC2\uFAC3\u0000\u0000\uFAC6\u0000\uFAC8\u0000"+
- "\u0000\u0000\uFACC\uFACD\uFACE\u0000\uFAD0\u0000"+
- "\u0000\uFAD3\u0000\u0000\uFAD6\uFAD7\u0000\u0000"+
- "\uFADA\u0000\u0000\u0000\u0000\uFADF\uFAE0\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uFAE8\uFAE9"+
- "\u0000\uFAEB\uFAEC\u0000\uFAEE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uFAF5\uFAF6\u0000\u0000\u0000"+
- "\uFAFA\uFAFB\uFAFC\uFAFD\uFAFE\uFB40\uFB41\u0000"+
- "\uFB43\u0000\u0000\u0000\u0000\u0000\uFB49\uFB4A"+
- "\uFB4B\uFB4C\u0000\uFB4E\u0000\u0000\uFB51\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFB5D\uFB5E\uFB5F\u0000\uFB61\u0000"+
- "\u0000\u0000\uFB65\uFB66\u0000\uFB68\u0000\uFB6A"+
- "\uFB6B\u0000\uFB6D\u0000\u0000\uFB70\u0000\u0000"+
- "\uFB73\u0000\u0000\u0000\uFB77\uFB78\u0000\uFB7A"+
- "\u0000\u0000\uFB7D\u0000\uFBA1\u0000\u0000\uFBA4"+
- "\u0000\u0000\uFBA7\uFBA8\uFBA9\uFBAA\u0000\uFBAC"+
- "\uFBAD\uFBAE\u0000\uFBB0\uFBB1\u0000\uFBB3\u0000"+
- "\u0000\uFBB6\uFBB7\u0000\uFBB9\u0000\u0000\u0000"+
- "\uFBBD\uFBBE\uFBBF\uFBC0\uFBC1\uFBC2\u0000\u0000"+
- "\u0000\u0000\u0000\uFBC8\uFBC9\uFBCA\uFBCB\u0000"+
- "\u0000\uFBCE\uFBCF\uFBD0\u0000\u0000\uFBD3\u0000"+
- "\uFBD5\u0000\u0000\u0000\uFBD9\uFBDA\u0000\uFBDC"+
- "\u0000\u0000\u0000\u0000\uFBE1\uFBE2\u0000\u0000"+
- "\u0000\uFBE6\u0000\u0000\u0000\uFBEA\uFBEB\uFBEC"+
- "\uFBED\u0000\uFBEF\uFBF0\u0000\u0000\u0000\u0000"+
- "\uFBF5\uFBF6\u0000\u0000\u0000\u0000\uFBFB\u0000"+
- "\u0000\uFBFE\u0000\u0000\uFC42\u0000\u0000\u0000"+
- "\u0000\uFC47\uFC48\uFC49\uFC4A\uFC4B\u0000\uFC4D"+
- "\uFC4E\u0000\uFC50\u0000\u0000\uFC53\u0000\u0000"+
- "\uFC56\u0000\u0000\uFC59\uFC5A\uFC5B\uFC5C\uFC5D"+
- "\u0000\uFC5F\uFC60\u0000\u0000\uFC63\uFC64\uFC65"+
- "\uFC66\u0000\uFC68\u0000\uFC6A\u0000\u0000\u0000"+
- "\uFC6E\uFC6F\uFC70\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uFC77\uFC78\u0000\u0000\uFC7B\u0000\u0000"+
- "\uFC7E\uFCA1\u0000\uFCA3\uFCA4\u0000\uFCA6\uFCA7"+
- "\uFCA8\u0000\u0000\u0000\u0000\uFCAD\u0000\uFCAF"+
- "\u0000\uFCB1\u0000\uFCB3\uFCB4\u0000\u0000\uFCB7"+
- "\uFCB8\u0000\u0000\uFCBB\u0000\uFCBD\uFCBE\u0000"+
- "\u0000\u0000\uFCC2\u0000\uFCC4\u0000\u0000\uFCC7"+
- "\uFCC8\u0000\u0000\u0000\uFCCC\u0000\uFCCE\uFCCF"+
- "\u0000\uFCD1\uFCD2\u0000\u0000\u0000\uFCD6\u0000"+
- "\uFCD8\uFCD9\u0000\uFCDB\uFCDC\u0000\uFCDE\u0000"+
- "\uFCE0\u0000\u0000\uFCE3\uFCE4\uFCE5\uFCE6\uFCE7"+
- "\u0000\uFCE9\u0000\u0000\uFCEC\uFCED\uFCEE\u0000"+
- "\uFCF0\u0000\u0000\u0000\uFCF4\uFCF5\u0000\uFCF7"+
- "\u0000\u0000\u0000\u0000\uFCFC\uFCFD\u0000\uFD40"+
- "\u0000\u0000\uFD43\u0000\u0000\uFD46\u0000\u0000"+
- "\uFD49\uFD4A\uFD4B\uFD4C\u0000\u0000\uFD4F\uFD50"+
- "\u0000\u0000\uFD53\uFD54\u0000\u0000\u0000\uFD58"+
- "\uFD59\u0000\uFD5B\u0000\uFD5D\u0000\u0000\uFD60"+
- "\uFD61\u0000\uFD63\u0000\u0000\u0000\uFD67\u0000"+
- "\uFD69\uFD6A\uFD6B\uFD6C\u0000\uFD6E\u0000\uFD70"+
- "\u0000\u0000\uFD73\uFD74\uFD75\u0000\u0000\u0000"+
- "\uFD79\uFD7A\uFD7B\uFD7C\uFD7D\uFD7E\uFDA1\uFDA2"+
- "\uFDA3\uFDA4\u0000\uFDA6\uFDA7\u0000\u0000\uFDAA"+
- "\uFDAB\uFDAC\u0000\u0000\u0000\u0000\uFDB1\uFDB2"+
- "\uFDB3\u0000\uFDB5\u0000\u0000\u0000\u0000\uFDBA"+
- "\u0000\uFDBC\u0000\uFDBE\u0000\u0000\u0000\uFDC2"+
- "\u0000\uFDC4\u0000\uFDC6\u0000\uFDC8\uFDC9\uFDCA"+
- "\u0000\u0000\u0000\uFDCE\u0000\uFDD0\uFDD1\u0000"+
- "\uFDD3\u0000\uFDD5\uFDD6\uFDD7\uFDD8\uFDD9\uFDDA"+
- "\u0000\uFDDC\uFDDD\uFDDE\uFDDF\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uFDE8\uFDE9\u0000"+
- "\u0000\uFDEC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFDF3\u0000\u0000\uFDF6\u0000\uFDF8\uFDF9\uFDFA"+
- "\u0000\uFDFC\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uFE46\u0000\u0000\uFE49\u0000\u0000"+
- "\u0000\uFE4D\uFE4E\u0000\u0000\u0000\u0000\u0000"+
- "\uFE54\uFE55\uFE56\uFE57\u0000\u0000\u0000\u0000"+
- "\uFE5C\uFE5D\u0000\u0000\uFE60\uFE61\uFE62\u0000"+
- "\uFE64\uFE65\uFE66\uFE67\u0000\u0000\u0000\uFE6B"+
- "\u0000\uFE6D\uFE6E\u0000\uFE70\u0000\uFE72\u0000"+
- "\u0000\u0000\u0000\u0000\uFE78\u0000\u0000\u0000"+
- "\u0000\uFE7D\uFE7E\uFEA1\uFEA2\uFEA3\u0000\uFEA5"+
- "\uFEA6\u0000\uFEA8\u0000\u0000\u0000\uFEAC\uFEAD"+
- "\u0000\uFEAF\u0000\u0000\u0000\u0000\u0000\uFEB5"+
- "\uFEB6\uFEB7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uFEC2\u0000\u0000\uFEC5"+
- "\uFEC6\uFEC7\u0000\u0000\u0000\u0000\uFECC\u0000"+
- "\uFECE\uFECF\uFED0\u0000\u0000\u0000\u0000\uFED5"+
- "\u0000\uFED7\u0000\uFED9\uFEDA\uFEDB\u0000\u0000"+
- "\uFEDE\uFEDF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uFEE6\u0000\u0000\u0000\uFEEA\u0000\u0000\uFEED"+
- "\uFEEE\uFEEF\u0000\u0000\u0000\u0000\uFEF4\u0000"+
- "\uFEF6\u0000\u0000\u0000\uFEFA\uFEFB\u0000\uFEFD"+
- "\u0000\u8E40\u0000\u8E42\u0000\u8E44\u8E45\u0000"+
- "\u8E47\u0000\u0000\u8E4A\u8E4B\u0000\u0000\u8E4E"+
- "\u0000\u0000\u0000\u0000\u0000\u8E54\u8E55\u0000"+
- "\u0000\u0000\u8E59\u0000\u8E5B\u0000\u0000\u0000"+
- "\u8E5F\u8E60\u0000\u0000\u0000\u8E64\u8E65\u0000"+
- "\u0000\u0000\u0000\u8E6A\u8E6B\u8E6C\u0000\u0000"+
- "\u0000\u0000\u8E71\u0000\u0000\u8E74\u0000\u0000"+
- "\u8E77\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8EA2\u8EA3\u0000\u8EA5\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8EAC\u8EAD\u0000\u8EAF\u0000"+
- "\u8EB1\u0000\u8EB3\u0000\u8EB5\u8EB6\u0000\u0000"+
- "\u8EB9\u0000\u0000\u0000\u0000\u0000\u0000\u8EC0"+
- "\u0000\u0000\u8EC3\u0000\u8EC5\u8EC6\u8EC7\u8EC8"+
- "\u8EC9\u8ECA\u0000\u8ECC\u0000\u0000\u0000\u0000"+
- "\u0000\u8ED2\u8ED3\u0000\u0000\u0000\u8ED7\u8ED8"+
- "\u8ED9\u8EDA\u8EDB\u0000\u0000\u8EDE\u0000\u0000"+
- "\u0000\u8EE2\u0000\u8EE4\u8EE5\u0000\u8EE7\u0000"+
- "\u8EE9\u0000\u8EEB\u8EEC\u8EED\u0000\u8EEF\u8EF0"+
- "\u8EF1\u0000\u8EF3\u0000\u0000\u8EF6\u8EF7\u8EF8"+
- "\u8EF9\u8EFA\u0000\u0000\u8EFD\u8EFE\u0000\u0000"+
- "\u0000\u8F43\u8F44\u8F45\u8F46\u8F47\u0000\u0000"+
- "\u0000\u8F4B\u8F4C\u8F4D\u8F4E\u8F4F\u8F50\u0000"+
- "\u0000\u0000\u8F54\u8F55\u0000\u0000\u0000\u8F59"+
- "\u8F5A\u0000\u0000\u8F5D\u8F5E\u8F5F\u0000\u8F61"+
- "\u0000\u8F63\u8F64\u0000\u0000\u8F67\u0000\u0000"+
- "\u8F6A\u8F6B\u8F6C\u0000\u0000\u0000\u8F70\u0000"+
- "\u0000\u8F73\u8F74\u8F75\u8F76\u0000\u0000\u8F79"+
- "\u8F7A\u0000\u8F7C\u0000\u0000\u8FA1\u8FA2\u0000"+
- "\u8FA4\u0000\u8FA6\u8FA7\u8FA8\u8FA9\u0000\u8FAB"+
- "\u8FAC\u0000\u8FAE\u0000\u0000\u8FB1\u0000\u8FB3"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8FBA\u0000"+
- "\u0000\u8FBD\u8FBE\u8FBF\u0000\u0000\u8FC2\u0000"+
- "\u0000\u0000\u0000\u0000\u8FC8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8FCF\u0000\u8FD1\u8FD2\u0000"+
- "\u0000\u0000\u0000\u8FD7\u0000\u8FD9\u8FDA\u8FDB"+
- "\u8FDC\u0000\u0000\u0000\u8FE0\u8FE1\u0000\u0000"+
- "\u0000\u0000\u8FE6\u0000\u0000\u0000\u8FEA\u8FEB"+
- "\u0000\u0000\u8FEE\u8FEF\u8FF0\u8FF1\u8FF2\u0000"+
- "\u8FF4\u8FF5\u0000\u0000\u8FF8\u0000\u0000\u0000"+
- "\u8FFC\u8FFD\u0000\u0000\u9041\u9042\u9043\u9044"+
- "\u9045\u9046\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u904E\u904F\u0000\u0000\u9052\u9053\u0000"+
- "\u9055\u9056\u9057\u9058\u0000\u905A\u0000\u905C"+
- "\u905D\u905E\u905F\u9060\u9061\u0000\u9063\u9064"+
- "\u0000\u9066\u9067\u0000\u9069\u0000\u906B\u0000"+
- "\u0000\u0000\u906F\u0000\u0000\u0000\u9073\u9074"+
- "\u0000\u0000\u0000\u0000\u9079\u0000\u907B\u907C"+
- "\u907D\u907E\u90A1\u0000\u0000\u90A4\u90A5\u0000"+
- "\u0000\u90A8\u90A9\u90AA\u0000\u90AC\u90AD\u90AE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u90B7\u90B8\u90B9\u90BA\u90BB\u90BC\u0000\u0000"+
- "\u0000\u90C0\u0000\u90C2\u0000\u0000\u0000\u90C6"+
- "\u0000\u0000\u90C9\u90CA\u90CB\u90CC\u90CD\u90CE"+
- "\u90CF\u90D0\u90D1\u0000\u0000\u0000\u90D5\u90D6"+
- "\u90D7\u90D8\u0000\u0000\u0000\u0000\u90DD\u0000"+
- "\u0000\u90E0\u0000\u0000\u0000\u90E4\u90E5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u90ED\u0000"+
- "\u0000\u90F0\u0000\u0000\u90F3\u90F4\u90F5\u0000"+
- "\u0000\u0000\u0000\u90FA\u90FB\u90FC\u90FD\u90FE"+
- "\u9140\u0000\u0000\u0000\u0000\u9145\u9146\u9147"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u914E\u914F"+
- "\u9150\u9151\u0000\u0000\u0000\u0000\u0000\u9157"+
- "\u9158\u9159\u915A\u0000\u0000\u915D\u0000\u915F"+
- "\u0000\u0000\u9162\u0000\u0000\u9165\u9166\u9167"+
- "\u0000\u0000\u916A\u0000\u916C\u0000\u916E\u0000"+
- "\u0000\u0000\u9172\u0000\u9174\u9175\u9176\u9177"+
- "\u9178\u9179\u0000\u0000\u917C\u0000\u0000\u0000"+
- "\u91A2\u91A3\u91A4\u91A5\u91A6\u0000\u91A8\u91A9"+
- "\u0000\u0000\u0000\u0000\u91AE\u0000\u0000\u91B1"+
- "\u0000\u91B3\u91B4\u91B5\u0000\u91B7\u91B8\u0000"+
- "\u0000\u91BB\u0000\u91BD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u91C5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u91CD\u91CE\u91CF\u0000\u91D1"+
- "\u91D2\u91D3\u0000\u91D5\u91D6\u0000\u91D8\u91D9"+
- "\u0000\u0000\u91DC\u0000\u0000\u0000\u91E0\u91E1"+
- "\u0000\u91E3\u0000\u0000\u0000\u91E7\u91E8\u0000"+
- "\u91EA\u0000\u91EC\u91ED\u91EE\u91EF\u91F0\u91F1"+
- "\u91F2\u91F3\u91F4\u91F5\u91F6\u91F7\u91F8\u91F9"+
- "\u91FA\u0000\u91FC\u91FD\u91FE\u9240\u9241\u0000"+
- "\u9243\u0000\u0000\u9246\u9247\u9248\u9249\u924A"+
- "\u924B\u924C\u924D\u924E\u924F\u0000\u9251\u9252"+
- "\u9253\u0000\u9255\u0000\u9257\u9258\u9259\u925A"+
- "\u925B\u925C\u0000\u0000\u925F\u0000\u9261\u9262"+
- "\u9263\u0000\u9265\u0000\u0000\u0000\u9269\u926A"+
- "\u0000\u926C\u926D\u0000\u0000\u9270\u0000\u9272"+
- "\u9273\u9274\u9275\u9276\u9277\u0000\u9279\u927A"+
- "\u927B\u0000\u927D\u0000\u0000\u0000\u0000\u0000"+
- "\u92A5\u92A6\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92B4"+
- "\u92B5\u92B6\u0000\u92B8\u92B9\u0000\u0000\u92BC"+
- "\u92BD\u92BE\u92BF\u92C0\u0000\u92C2\u92C3\u0000"+
- "\u0000\u92C6\u0000\u0000\u92C9\u0000\u92CB\u92CC"+
- "\u92CD\u92CE\u0000\u92D0\u0000\u92D2\u0000\u0000"+
- "\u0000\u0000\u92D7\u92D8\u92D9\u0000\u92DB\u0000";
-
- /*
- private final static String innerIndex8=
- "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u92EC"+
- "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92F6\u92F7\u92F8\u92F9\u0000\u0000\u0000"+
- "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
- "\u0000\u0000\u0000\u9349\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
- "\u9356\u0000\u9358\u0000\u935A\u0000\u0000\u935D"+
- "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
- "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
- "\u0000\u0000\u9370\u9371\u9372\u9373\u0000\u9375"+
- "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
- "\u937E\u0000\u93A2\u93A3\u0000\u93A5\u93A6\u93A7"+
- "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
- "\u0000\u93B1\u0000\u0000\u0000\u0000\u93B6\u93B7"+
- "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
- "\u93C0\u0000\u0000\u93C3\u93C4\u93C5\u93C6\u93C7"+
- "\u93C8\u0000\u93CA\u93CB\u93CC\u0000\u93CE\u93CF"+
- "\u93D0\u0000\u93D2\u0000\u0000\u0000\u93D6\u93D7"+
- "\u0000\u93D9\u93DA\u0000\u93DC\u0000\u93DE\u93DF"+
- "\u0000\u93E1\u93E2\u0000\u0000\u0000\u93E6\u0000"+
- "\u0000\u0000\u0000\u0000\u93EC\u93ED\u0000\u0000"+
- "\u0000\u0000\u93F2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
- "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
- "\u0000\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
- "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
- "\u9461\u9462\u0000\u0000\u9465\u9466\u9467\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u946F\u0000"+
- "\u0000\u0000\u9473\u9474\u0000\u0000\u0000\u9478"+
- "\u0000\u0000\u947B\u947C\u947D\u0000\u0000\u94A2"+
- "\u0000\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
- "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
- "\u94B3\u94B4\u0000\u94B6\u0000\u0000\u0000\u94BA"+
- "\u94BB\u0000\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u94C7\u94C8\u0000\u0000"+
- "\u0000\u0000\u0000\u94CE\u0000\u0000\u0000\u94D2"+
- "\u0000\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
- "\u0000\u0000\u0000\u0000\u94DF\u94E0\u0000\u0000"+
- "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
- "\u0000\u0000\u0000\u0000\u0000\u94F0\u94F1\u94F2"+
- "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
- "\u0000\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
- "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
- "\u9554\u0000\u0000\u0000\u0000\u9559\u0000\u955B"+
- "\u955C\u0000\u955E\u0000\u9560\u9561\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
- "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u0000"+
- "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
- "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
- "\u95AE\u95AF\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
- "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95CA\u0000\u0000\u0000"+
- "\u0000\u0000\u95D0\u0000\u0000\u0000\u95D4\u0000"+
- "\u0000\u95D7\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u95DE\u0000\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95EA\u0000\u0000\u95ED"+
- "\u95EE\u95EF\u0000\u95F1\u0000\u95F3\u95F4\u95F5"+
- "\u0000\u95F7\u95F8\u95F9\u0000\u0000\u0000\u0000"+
- "\u95FE\u0000\u0000\u9642\u9643\u0000\u0000\u9646"+
- "\u9647\u9648\u9649\u0000\u0000\u0000\u0000\u0000"+
- "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
- "\u0000\u9658\u0000\u965A\u0000\u0000\u965D\u965E"+
- "\u965F\u0000\u9661\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9668\u0000\u0000\u0000\u0000\u0000\u966E"+
- "\u966F\u0000\u0000\u0000\u0000\u9674\u0000\u9676"+
- "\u0000\u0000\u0000\u0000\u0000\u967C\u0000\u967E"+
- "\u96A1\u0000\u96A3\u96A4\u0000\u0000\u0000\u0000"+
- "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
- "\u0000\u96BA\u0000\u0000\u0000\u96BE\u96BF\u96C0"+
- "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u0000"+
- "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
- "\u0000\u96D2\u96D3\u0000\u96D5\u0000\u0000\u0000"+
- "\u0000\u96DA\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u96F8"+
- "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
- "\u0000\u0000\u9744\u0000\u0000\u9747\u0000\u0000"+
- "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
- "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
- "\u975A\u0000\u0000\u0000\u0000\u975F\u9760\u0000"+
- "\u9762\u0000\u0000\u0000\u0000\u9767\u9768\u9769"+
- "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
- "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
- "\u977A\u977B\u0000\u977D\u0000\u97A1\u97A2\u0000"+
- "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
- "\u97AC\u97AD\u0000\u0000\u0000\u97B1\u97B2\u0000"+
- "\u97B4\u97B5\u97B6\u0000\u0000\u97B9\u0000\u0000"+
- "\u0000\u97BD\u97BE\u0000\u0000\u97C1\u0000\u0000"+
- "\u0000\u0000\u0000\u97C7\u0000\u0000\u97CA\u0000"+
- "\u97CC\u0000\u0000\u97CF\u0000\u0000\u0000\u97D3"+
- "\u97D4\u0000\u0000\u0000\u97D8\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u97E3"+
- "\u97E4\u0000\u0000\u0000\u97E8\u0000\u97EA\u97EB"+
- "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
- "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
- "\u0000\u0000\u0000\u9840\u9841\u9842\u9843\u0000"+
- "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
- "\u0000\u984E\u0000\u0000\u9851\u9852\u0000\u0000"+
- "\u9855\u0000\u0000\u0000\u0000\u985A\u0000\u0000"+
- "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
- "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
- "\u986D\u986E\u0000\u0000\u9871\u0000\u0000\u9874"+
- "\u9875\u0000\u0000\u0000\u0000\u0000\u987B\u987C"+
- "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
- "\u98A7\u0000\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
- "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
- "\u0000\u0000\u98B9\u0000\u0000\u0000\u98BD\u0000"+
- "\u0000\u98C0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u98DF\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u995F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
- "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
- "\u0000\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
- "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
- "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
- "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
- "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
- "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u0000"+
- "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
- "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
- "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
- "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u0000"+
- "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
- "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
- "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
- "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
- "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
- "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
- "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
- "\u9BA8\u0000\u0000\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
- "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
- "\u0000\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u0000\u9BBF"+
- "\u9BC0\u9BC1\u0000\u9BC3\u0000\u9BC5\u0000\u9BC7"+
- "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
- "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
- "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u0000"+
- "\u9BE0\u9BE1\u9BE2\u0000\u9BE4\u9BE5\u9BE6\u9BE7"+
- "\u9BE8\u0000\u0000\u9BEB\u0000\u9BED\u0000\u9BEF"+
- "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
- "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
- "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
- "\u9C49\u0000\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
- "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
- "\u0000\u0000\u9C5B\u0000\u0000\u9C5E\u9C5F\u9C60"+
- "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
- "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u0000\u9C70"+
- "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
- "\u0000\u9C7A\u0000\u0000\u9C7D\u0000\u0000\u9CA2"+
- "\u9CA3\u9CA4\u0000\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
- "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
- "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9CC0\u9CC1\u0000"+
- "\u9CC3\u9CC4\u0000\u0000\u9CC7\u0000\u9CC9\u9CCA"+
- "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u0000\u9CD2"+
- "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
- "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
- "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
- "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
- "\u0000\u0000\u0000\u9CF6\u9CF7\u0000\u0000\u9CFA"+
- "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
- "\u9D44\u9D45\u0000\u9D47\u9D48\u0000\u0000\u9D4B"+
- "\u0000\u0000\u9D4E\u0000\u9D50\u0000\u9D52\u9D53"+
- "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
- "\u9D5C\u0000\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
- "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
- "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u0000"+
- "\u0000\u9D75\u0000\u9D77\u0000\u0000\u9D7A\u0000"+
- "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9DAB\u9DAC\u0000"+
- "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u0000"+
- "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
- "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
- "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u0000\u9DCD"+
- "\u0000\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
- "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
- "\u0000\u0000\u0000\u0000\u9DF2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
- "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E4F\u0000\u9E51\u0000\u0000\u9E54\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E63\u0000\u0000\u9E66"+
- "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
- "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
- "\u9E77\u0000\u9E79\u0000\u9E7B\u9E7C\u9E7D\u0000"+
- "\u0000\u0000\u9EA3\u0000\u9EA5\u9EA6\u9EA7\u9EA8"+
- "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EBC\u0000\u9EBE\u0000\u0000"+
- "\u0000\u9EC2\u9EC3\u0000\u0000\u9EC6\u0000\u9EC8"+
- "\u0000\u0000\u9ECB\u9ECC\u0000\u9ECE\u9ECF\u9ED0"+
- "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
- "\u9ED9\u0000\u0000\u0000\u0000\u0000\u0000\u9EE0"+
- "\u0000\u0000\u9EE3\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9EEC\u0000\u0000\u0000\u0000"+
- "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
- "\u9EF9\u0000\u9EFB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
- "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
- "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9FAA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
- "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
- "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
- "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
- "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
- "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA04F\u0000\u0000\u0000\u0000\u0000"+
- "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uA06D\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA07B\u0000"+
- "\u0000\u0000\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
- "\uA0A7\u0000\u0000\u0000\uA0AB\u0000\u0000\u0000"+
- "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
- "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D8\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\u0000"+
- "\u0000\u0000\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
- "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
- "\uA0F7\uA0F8\u0000\u0000\uA0FB\u0000\u0000\uA0FE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
- "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
- "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
- "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
- "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89B2\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u89BB\u89BC\u0000\u89BE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8A40\u0000\u0000"+
- "\u8A43\u8A44\u8A45\u0000\u8A47\u0000\u8A49\u0000"+
- "\u8A4B\u8A4C\u0000\u8A4E\u0000\u8A50\u0000\u0000"+
- "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
- "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
- "\u0000\u8A64\u8A65\u8A66\u0000\u8A68\u8A69\u0000"+
- "\u0000\u8A6C\u0000\u0000\u8A6F\u8A70\u8A71\u8A72"+
- "\u0000\u0000\u0000\u0000\u8A77\u0000\u0000\u8A7A"+
- "\u8A7B\u8A7C\u0000\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
- "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u0000"+
- "\u8AAD\u0000\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
- "\u8AB5\u8AB6\u0000\u0000\u0000\u0000\u0000\u8ABC"+
- "\u8ABD\u0000\u0000\u8AC0\u0000\u0000\u8AC3\u0000"+
- "\u0000\u0000\u0000\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
- "\u0000\u8ACE\u8ACF\u0000\u0000\u8AD2\u0000\u8AD4"+
- "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u0000\u0000\u8ADC"+
- "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
- "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u0000\u8AEC"+
- "\u8AED\u8AEE\u8AEF\u0000\u8AF1\u8AF2\u8AF3\u8AF4"+
- "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u0000\u8AFC"+
- "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
- "\u8B46\u0000\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
- "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
- "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
- "\u8B5E\u0000\u0000\u0000\u8B62\u0000\u8B64\u8B65"+
- "\u8B66\u8B67\u0000\u8B69\u0000\u8B6B\u0000\u8B6D"+
- "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
- "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
- "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u0000\u8BA7"+
- "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
- "\u0000\u0000\u8BB2\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8BBB\u8BBC\u0000\u0000\u0000"+
- "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
- "\u0000\u0000\u0000\u8BDB\u0000\u0000\u8BDE\u0000"+
- "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
- "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8C42\u8C43\u0000\u0000\u8C46\u0000\u0000"+
- "\u0000\u8C4A\u0000\u8C4C\u0000\u8C4E\u0000\u0000"+
- "\u0000\u0000\u0000\u8C54\u8C55\u0000\u8C57\u0000"+
- "\u0000\u0000\u0000\u8C5C\u0000\u0000\u8C5F\u0000"+
- "\u0000\u0000\u0000\u8C64\u8C65\u0000\u0000\u0000"+
- "\u8C69\u0000\u0000\u8C6C\u8C6D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C74\u0000\u0000\u0000\u0000"+
- "\u8C79\u0000\u0000\u0000\u8C7D\u0000\u8CA1\u0000"+
- "\u0000\u8CA4\u0000\u0000\u0000\u8CA8\u0000\u0000"+
- "\u8CAB\u0000\u0000\u0000\u8CAF\u8CB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CB7\u0000\u8CB9\u0000"+
- "\u8CBB\u0000\u0000\u0000\u0000\u8CC0\u8CC1\u8CC2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CCF\u0000\u8CD1\u0000"+
- "\u8CD3\u0000\u8CD5\u8CD6\u8CD7\u8CD8\u0000\u8CDA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8DEC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DFB\u0000\u0000"+
- "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
- "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
- */
- private final static String innerIndex8=
- "\u92DD\u0000\u92DF\u0000\u92E1\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u92E9\u0000\u0000\u92EC"+
- "\u92ED\u92EE\u92EF\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u92F6\u92F7\u92F8\u92F9\u92FA\u0000\u0000"+
- "\u0000\u92FE\u0000\u9341\u9342\u0000\u0000\u9345"+
- "\u0000\u9347\u0000\u9349\u0000\u934B\u0000\u0000"+
- "\u0000\u0000\u9350\u9351\u9352\u0000\u0000\u9355"+
- "\u9356\u9357\u9358\u9359\u935A\u935B\u0000\u935D"+
- "\u935E\u935F\u9360\u0000\u0000\u9363\u9364\u0000"+
- "\u9366\u0000\u0000\u9369\u0000\u0000\u936C\u936D"+
- "\u0000\u936F\u9370\u9371\u9372\u9373\u0000\u9375"+
- "\u9376\u9377\u0000\u0000\u0000\u937B\u937C\u937D"+
- "\u937E\u0000\u93A2\u93A3\u93A4\u93A5\u93A6\u93A7"+
- "\u93A8\u0000\u93AA\u0000\u0000\u0000\u93AE\u93AF"+
- "\u0000\u93B1\u0000\u0000\u0000\u93B5\u93B6\u93B7"+
- "\u93B8\u93B9\u0000\u93BB\u93BC\u93BD\u0000\u93BF"+
- "\u93C0\u93C1\u93C2\u93C3\u93C4\u93C5\u93C6\u93C7"+
- "\u93C8\u0000\u93CA\u93CB\u93CC\u93CD\u93CE\u93CF"+
- "\u93D0\u0000\u93D2\u0000\u93D4\u0000\u93D6\u93D7"+
- "\u0000\u93D9\u93DA\u0000\u93DC\u93DD\u93DE\u93DF"+
- "\u93E0\u93E1\u93E2\u0000\u93E4\u0000\u93E6\u0000"+
- "\u0000\u93E9\u0000\u93EB\u93EC\u93ED\u0000\u0000"+
- "\u0000\u0000\u93F2\u0000\u0000\u0000\u93F6\u0000"+
- "\u0000\u93F9\u93FA\u0000\u0000\u93FD\u93FE\u0000"+
- "\u9441\u9442\u0000\u0000\u0000\u9446\u0000\u9448"+
- "\u9449\u0000\u944B\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9452\u9453\u0000\u0000\u0000\u0000\u9458"+
- "\u9459\u0000\u945B\u945C\u0000\u945E\u945F\u9460"+
- "\u9461\u9462\u9463\u9464\u9465\u9466\u9467\u0000"+
- "\u9469\u0000\u0000\u0000\u0000\u946E\u946F\u9470"+
- "\u0000\u9472\u9473\u9474\u9475\u0000\u0000\u9478"+
- "\u9479\u0000\u947B\u947C\u947D\u947E\u94A1\u94A2"+
- "\u94A3\u94A4\u94A5\u0000\u0000\u0000\u94A9\u94AA"+
- "\u0000\u94AC\u94AD\u0000\u94AF\u0000\u0000\u0000"+
- "\u94B3\u94B4\u94B5\u94B6\u0000\u0000\u94B9\u94BA"+
- "\u94BB\u94BC\u94BD\u94BE\u0000\u94C0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u94C7\u94C8\u94C9\u0000"+
- "\u0000\u0000\u0000\u94CE\u0000\u0000\u94D1\u94D2"+
- "\u94D3\u0000\u0000\u94D6\u94D7\u94D8\u94D9\u94DA"+
- "\u94DB\u0000\u94DD\u94DE\u94DF\u94E0\u0000\u0000"+
- "\u94E3\u94E4\u94E5\u0000\u94E7\u0000\u0000\u94EA"+
- "\u0000\u94EC\u0000\u0000\u94EF\u94F0\u94F1\u94F2"+
- "\u0000\u94F4\u94F5\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u94FE\u9540\u9541\u0000\u9543"+
- "\u9544\u9545\u9546\u0000\u9548\u9549\u0000\u954B"+
- "\u954C\u954D\u0000\u0000\u9550\u9551\u9552\u0000"+
- "\u9554\u0000\u0000\u0000\u0000\u9559\u955A\u955B"+
- "\u955C\u0000\u955E\u0000\u9560\u9561\u9562\u0000"+
- "\u9564\u0000\u0000\u0000\u9568\u0000\u956A\u0000"+
- "\u0000\u956D\u0000\u956F\u0000\u9571\u0000\u9573"+
- "\u9574\u0000\u9576\u0000\u9578\u0000\u957A\u957B"+
- "\u0000\u957D\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u95A8\u0000\u95AA\u95AB\u95AC\u95AD"+
- "\u95AE\u95AF\u95B0\u0000\u95B2\u95B3\u95B4\u0000"+
- "\u0000\u95B7\u0000\u0000\u95BA\u0000\u0000\u0000"+
- "\u95BE\u0000\u0000\u0000\u95C2\u0000\u0000\u0000"+
- "\u95C6\u95C7\u0000\u0000\u95CA\u0000\u0000\u95CD"+
- "\u0000\u0000\u95D0\u95D1\u0000\u0000\u95D4\u0000"+
- "\u95D6\u95D7\u0000\u0000\u0000\u95DB\u0000\u0000"+
- "\u95DE\u95DF\u95E0\u0000\u95E2\u95E3\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u95EA\u0000\u95EC\u95ED"+
- "\u95EE\u95EF\u95F0\u95F1\u0000\u95F3\u95F4\u95F5"+
- "\u95F6\u95F7\u95F8\u95F9\u0000\u0000\u95FC\u0000"+
- "\u95FE\u0000\u9641\u9642\u9643\u0000\u0000\u9646"+
- "\u9647\u9648\u9649\u0000\u0000\u0000\u964D\u0000"+
- "\u964F\u0000\u0000\u0000\u9653\u0000\u9655\u9656"+
- "\u0000\u9658\u0000\u965A\u0000\u965C\u965D\u965E"+
- "\u965F\u0000\u9661\u9662\u0000\u9664\u0000\u0000"+
- "\u0000\u9668\u9669\u0000\u966B\u0000\u0000\u966E"+
- "\u966F\u0000\u0000\u0000\u0000\u9674\u9675\u9676"+
- "\u0000\u9678\u9679\u0000\u0000\u967C\u0000\u967E"+
- "\u96A1\u0000\u96A3\u96A4\u0000\u96A6\u0000\u96A8"+
- "\u0000\u96AA\u96AB\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u96B4\u0000\u96B6\u96B7\u0000"+
- "\u96B9\u96BA\u0000\u96BC\u0000\u96BE\u96BF\u96C0"+
- "\u96C1\u0000\u0000\u96C4\u96C5\u96C6\u0000\u96C8"+
- "\u96C9\u96CA\u96CB\u0000\u0000\u96CE\u96CF\u96D0"+
- "\u0000\u96D2\u96D3\u96D4\u96D5\u96D6\u0000\u0000"+
- "\u0000\u96DA\u0000\u0000\u0000\u0000\u96DF\u0000"+
- "\u96E1\u0000\u0000\u0000\u0000\u96E6\u96E7\u96E8"+
- "\u96E9\u0000\u0000\u0000\u0000\u0000\u0000\u96F0"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u96F7\u96F8"+
- "\u0000\u96FA\u96FB\u0000\u96FD\u96FE\u0000\u0000"+
- "\u0000\u9743\u9744\u9745\u9746\u9747\u0000\u0000"+
- "\u974A\u974B\u0000\u974D\u974E\u974F\u9750\u9751"+
- "\u0000\u9753\u9754\u0000\u9756\u9757\u9758\u9759"+
- "\u975A\u0000\u0000\u975D\u0000\u975F\u9760\u9761"+
- "\u9762\u0000\u0000\u0000\u9766\u9767\u9768\u9769"+
- "\u976A\u976B\u976C\u976D\u0000\u976F\u0000\u9771"+
- "\u0000\u0000\u0000\u9775\u0000\u9777\u9778\u0000"+
- "\u977A\u977B\u977C\u977D\u0000\u97A1\u97A2\u0000"+
- "\u97A4\u97A5\u97A6\u0000\u0000\u97A9\u0000\u97AB"+
- "\u97AC\u97AD\u97AE\u0000\u97B0\u97B1\u97B2\u0000"+
- "\u97B4\u97B5\u97B6\u0000\u97B8\u97B9\u97BA\u0000"+
- "\u0000\u97BD\u97BE\u0000\u97C0\u97C1\u97C2\u97C3"+
- "\u0000\u97C5\u97C6\u97C7\u0000\u97C9\u97CA\u0000"+
- "\u97CC\u97CD\u0000\u97CF\u0000\u0000\u97D2\u97D3"+
- "\u97D4\u0000\u0000\u97D7\u97D8\u0000\u97DA\u97DB"+
- "\u97DC\u97DD\u97DE\u0000\u0000\u97E1\u0000\u97E3"+
- "\u97E4\u0000\u0000\u97E7\u97E8\u0000\u97EA\u97EB"+
- "\u97EC\u97ED\u97EE\u0000\u0000\u97F1\u97F2\u97F3"+
- "\u97F4\u97F5\u97F6\u97F7\u97F8\u0000\u97FA\u97FB"+
- "\u0000\u97FD\u97FE\u9840\u9841\u9842\u9843\u0000"+
- "\u9845\u0000\u9847\u0000\u9849\u984A\u984B\u0000"+
- "\u0000\u984E\u0000\u0000\u9851\u9852\u9853\u0000"+
- "\u9855\u9856\u0000\u0000\u0000\u985A\u0000\u0000"+
- "\u985D\u0000\u985F\u9860\u9861\u9862\u0000\u9864"+
- "\u9865\u0000\u9867\u0000\u9869\u986A\u986B\u0000"+
- "\u986D\u986E\u0000\u0000\u9871\u9872\u0000\u9874"+
- "\u9875\u0000\u0000\u0000\u9879\u0000\u987B\u987C"+
- "\u0000\u0000\u0000\u98A2\u98A3\u98A4\u0000\u98A6"+
- "\u98A7\u98A8\u98A9\u98AA\u0000\u98AC\u0000\u0000"+
- "\u0000\u98B0\u98B1\u0000\u0000\u0000\u0000\u98B6"+
- "\u0000\u0000\u98B9\u0000\u0000\u98BC\u98BD\u0000"+
- "\u0000\u98C0\u0000\u0000\u98C3\u0000\u98C5\u0000"+
- "\u0000\u0000\u0000\u0000\u98CB\u98CC\u98CD\u98CE"+
- "\u0000\u98D0\u98D1\u0000\u0000\u0000\u0000\u98D6"+
- "\u0000\u0000\u98D9\u0000\u98DB\u0000\u98DD\u0000"+
- "\u98DF\u0000\u0000\u0000\u0000\u98E4\u0000\u98E6"+
- "\u0000\u98E8\u98E9\u0000\u98EB\u98EC\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u98F4\u0000\u0000"+
- "\u0000\u0000\u0000\u98FA\u0000\u0000\u0000\u98FE"+
- "\u9940\u0000\u0000\u0000\u0000\u0000\u9946\u0000"+
- "\u9948\u0000\u0000\u994B\u0000\u0000\u994E\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9955\u9956\u0000"+
- "\u0000\u9959\u0000\u995B\u0000\u0000\u0000\u995F"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9967"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u996E\u0000"+
- "\u0000\u0000\u0000\u9973\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u997A\u997B\u0000\u0000\u0000\u99A1"+
- "\u0000\u0000\u0000\u99A5\u0000\u99A7\u0000\u0000"+
- "\u0000\u0000\u0000\u99AD\u0000\u0000\u0000\u0000"+
- "\u0000\u99B3\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u99BC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u99C3\u0000\u0000\u0000\u99C7\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99CE\u99CF\u0000\u0000"+
- "\u0000\u0000\u0000\u99D5\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u99DE\u0000\u0000\u99E1"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u99E9"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u99F5\u0000\u0000\u99F8\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A48\u9A49\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9A50\u0000\u0000"+
- "\u0000\u0000\u9A55\u0000\u0000\u9A58\u0000\u9A5A"+
- "\u0000\u9A5C\u0000\u0000\u0000\u9A60\u0000\u0000"+
- "\u9A63\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u9A6E\u0000\u9A70\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9A79\u0000"+
- "\u9A7B\u9A7C\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9AB4"+
- "\u9AB5\u9AB6\u0000\u0000\u0000\u9ABA\u0000\u0000"+
- "\u9ABD\u9ABE\u9ABF\u9AC0\u9AC1\u0000\u0000\u9AC4"+
- "\u9AC5\u9AC6\u0000\u9AC8\u9AC9\u0000\u9ACB\u9ACC"+
- "\u9ACD\u9ACE\u9ACF\u0000\u9AD1\u0000\u9AD3\u9AD4"+
- "\u9AD5\u9AD6\u9AD7\u9AD8\u0000\u0000\u0000\u9ADC"+
- "\u9ADD\u9ADE\u9ADF\u9AE0\u9AE1\u0000\u9AE3\u0000"+
- "\u9AE5\u9AE6\u9AE7\u0000\u9AE9\u9AEA\u9AEB\u9AEC"+
- "\u9AED\u9AEE\u9AEF\u9AF0\u0000\u0000\u9AF3\u9AF4"+
- "\u9AF5\u0000\u9AF7\u9AF8\u9AF9\u9AFA\u0000\u0000"+
- "\u9AFD\u9AFE\u9B40\u9B41\u9B42\u9B43\u9B44\u9B45"+
- "\u0000\u9B47\u9B48\u0000\u0000\u9B4B\u0000\u9B4D"+
- "\u9B4E\u9B4F\u9B50\u9B51\u9B52\u9B53\u0000\u9B55"+
- "\u9B56\u9B57\u0000\u9B59\u0000\u9B5B\u0000\u9B5D"+
- "\u0000\u0000\u9B60\u0000\u9B62\u9B63\u9B64\u9B65"+
- "\u9B66\u9B67\u9B68\u9B69\u9B6A\u9B6B\u9B6C\u9B6D"+
- "\u9B6E\u9B6F\u0000\u0000\u0000\u9B73\u9B74\u9B75"+
- "\u0000\u9B77\u0000\u9B79\u9B7A\u0000\u9B7C\u0000"+
- "\u0000\u0000\u9BA2\u9BA3\u9BA4\u9BA5\u9BA6\u9BA7"+
- "\u9BA8\u9BA9\u9BAA\u9BAB\u9BAC\u9BAD\u9BAE\u9BAF"+
- "\u9BB0\u9BB1\u9BB2\u9BB3\u0000\u9BB5\u0000\u9BB7"+
- "\u9BB8\u9BB9\u9BBA\u9BBB\u0000\u9BBD\u9BBE\u9BBF"+
- "\u9BC0\u9BC1\u9BC2\u9BC3\u0000\u9BC5\u0000\u9BC7"+
- "\u9BC8\u9BC9\u0000\u9BCB\u9BCC\u0000\u9BCE\u9BCF"+
- "\u9BD0\u0000\u9BD2\u0000\u0000\u0000\u9BD6\u9BD7"+
- "\u9BD8\u9BD9\u0000\u9BDB\u9BDC\u9BDD\u0000\u9BDF"+
- "\u9BE0\u9BE1\u9BE2\u9BE3\u9BE4\u9BE5\u9BE6\u9BE7"+
- "\u9BE8\u0000\u9BEA\u9BEB\u0000\u9BED\u9BEE\u9BEF"+
- "\u9BF0\u9BF1\u9BF2\u9BF3\u0000\u0000\u0000\u9BF7"+
- "\u9BF8\u0000\u9BFA\u9BFB\u0000\u9BFD\u9BFE\u0000"+
- "\u9C41\u0000\u9C43\u9C44\u0000\u9C46\u9C47\u9C48"+
- "\u9C49\u9C4A\u9C4B\u9C4C\u9C4D\u0000\u9C4F\u0000"+
- "\u0000\u9C52\u0000\u0000\u9C55\u9C56\u0000\u9C58"+
- "\u0000\u0000\u9C5B\u9C5C\u0000\u9C5E\u9C5F\u9C60"+
- "\u9C61\u0000\u9C63\u0000\u9C65\u9C66\u9C67\u0000"+
- "\u9C69\u0000\u0000\u9C6C\u0000\u9C6E\u9C6F\u9C70"+
- "\u9C71\u0000\u9C73\u9C74\u0000\u9C76\u0000\u9C78"+
- "\u9C79\u9C7A\u0000\u0000\u9C7D\u0000\u9CA1\u9CA2"+
- "\u9CA3\u9CA4\u9CA5\u9CA6\u9CA7\u0000\u9CA9\u9CAA"+
- "\u0000\u9CAC\u9CAD\u0000\u0000\u9CB0\u9CB1\u0000"+
- "\u0000\u9CB4\u9CB5\u9CB6\u0000\u9CB8\u9CB9\u9CBA"+
- "\u9CBB\u0000\u0000\u9CBE\u0000\u9CC0\u9CC1\u0000"+
- "\u9CC3\u9CC4\u0000\u9CC6\u9CC7\u9CC8\u9CC9\u9CCA"+
- "\u9CCB\u0000\u0000\u9CCE\u9CCF\u0000\u9CD1\u9CD2"+
- "\u9CD3\u9CD4\u9CD5\u9CD6\u9CD7\u9CD8\u0000\u0000"+
- "\u9CDB\u0000\u9CDD\u0000\u9CDF\u0000\u9CE1\u0000"+
- "\u0000\u0000\u9CE5\u9CE6\u9CE7\u9CE8\u9CE9\u9CEA"+
- "\u0000\u9CEC\u9CED\u0000\u0000\u9CF0\u0000\u9CF2"+
- "\u0000\u0000\u0000\u9CF6\u9CF7\u9CF8\u0000\u9CFA"+
- "\u9CFB\u9CFC\u9CFD\u9CFE\u9D40\u9D41\u9D42\u9D43"+
- "\u9D44\u9D45\u9D46\u9D47\u9D48\u9D49\u0000\u9D4B"+
- "\u0000\u0000\u9D4E\u9D4F\u9D50\u9D51\u9D52\u9D53"+
- "\u9D54\u0000\u9D56\u0000\u9D58\u9D59\u0000\u9D5B"+
- "\u9D5C\u9D5D\u9D5E\u9D5F\u0000\u0000\u0000\u9D63"+
- "\u9D64\u9D65\u9D66\u9D67\u9D68\u9D69\u9D6A\u9D6B"+
- "\u9D6C\u9D6D\u9D6E\u9D6F\u0000\u9D71\u9D72\u9D73"+
- "\u0000\u9D75\u0000\u9D77\u9D78\u0000\u9D7A\u9D7B"+
- "\u9D7C\u0000\u0000\u0000\u9DA2\u0000\u9DA4\u9DA5"+
- "\u0000\u0000\u0000\u0000\u9DAA\u9DAB\u9DAC\u9DAD"+
- "\u0000\u9DAF\u9DB0\u9DB1\u9DB2\u9DB3\u9DB4\u9DB5"+
- "\u9DB6\u9DB7\u9DB8\u9DB9\u0000\u9DBB\u9DBC\u0000"+
- "\u9DBE\u0000\u0000\u9DC1\u9DC2\u0000\u0000\u9DC5"+
- "\u9DC6\u0000\u0000\u9DC9\u0000\u9DCB\u9DCC\u9DCD"+
- "\u9DCE\u0000\u0000\u0000\u9DD2\u0000\u9DD4\u0000"+
- "\u0000\u9DD7\u9DD8\u9DD9\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9DED"+
- "\u9DEE\u0000\u0000\u0000\u9DF2\u9DF3\u0000\u0000"+
- "\u0000\u0000\u0000\u9DF9\u9DFA\u0000\u9DFC\u9DFD"+
- "\u9DFE\u9E40\u0000\u0000\u0000\u9E44\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9E4F\u0000\u9E51\u0000\u9E53\u9E54\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E5B\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u9E63\u9E64\u0000\u9E66"+
- "\u0000\u0000\u9E69\u0000\u9E6B\u9E6C\u9E6D\u9E6E"+
- "\u9E6F\u9E70\u0000\u9E72\u0000\u9E74\u9E75\u9E76"+
- "\u9E77\u0000\u9E79\u9E7A\u9E7B\u9E7C\u9E7D\u9E7E"+
- "\u0000\u0000\u9EA3\u9EA4\u9EA5\u9EA6\u9EA7\u9EA8"+
- "\u0000\u9EAA\u9EAB\u0000\u9EAD\u9EAE\u0000\u0000"+
- "\u0000\u0000\u0000\u9EB4\u0000\u0000\u0000\u9EB8"+
- "\u9EB9\u0000\u9EBB\u9EBC\u0000\u9EBE\u0000\u0000"+
- "\u0000\u9EC2\u9EC3\u0000\u9EC5\u9EC6\u0000\u9EC8"+
- "\u9EC9\u0000\u9ECB\u9ECC\u9ECD\u9ECE\u9ECF\u9ED0"+
- "\u0000\u9ED2\u9ED3\u9ED4\u9ED5\u0000\u0000\u9ED8"+
- "\u9ED9\u9EDA\u0000\u0000\u9EDD\u9EDE\u9EDF\u9EE0"+
- "\u0000\u0000\u9EE3\u0000\u9EE5\u0000\u9EE7\u0000"+
- "\u0000\u0000\u0000\u9EEC\u0000\u9EEE\u0000\u9EF0"+
- "\u0000\u9EF2\u9EF3\u0000\u0000\u9EF6\u0000\u9EF8"+
- "\u9EF9\u0000\u9EFB\u9EFC\u0000\u0000\u0000\u0000"+
- "\u0000\u9F43\u0000\u0000\u9F46\u9F47\u9F48\u0000"+
- "\u9F4A\u9F4B\u9F4C\u9F4D\u0000\u0000\u9F50\u0000"+
- "\u0000\u9F53\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F68\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u9F70\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FA5\u0000\u0000\u0000\u0000\u9FAA\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u9FB3"+
- "\u0000\u9FB5\u0000\u0000\u0000\u0000\u0000\u9FBB"+
- "\u0000\u0000\u9FBE\u9FBF\u0000\u9FC1\u0000\u0000"+
- "\u0000\u9FC5\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u9FD1\u0000\u0000"+
- "\u0000\u0000\u0000\u9FD7\u0000\u9FD9\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u9FEC\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u9FF5\u0000\u0000\u0000\u9FF9\u0000\u0000"+
- "\u0000\u0000\u0000\uA040\u0000\u0000\u0000\u0000"+
- "\uA045\u0000\uA047\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uA04F\u0000\u0000\u0000\uA053\u0000"+
- "\uA055\uA056\u0000\u0000\uA059\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA068\u0000\uA06A\u0000\u0000"+
- "\uA06D\u0000\uA06F\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uA078\u0000\u0000\uA07B\u0000"+
- "\u0000\uA07E\u0000\uA0A2\u0000\uA0A4\u0000\u0000"+
- "\uA0A7\u0000\u0000\u0000\uA0AB\uA0AC\u0000\u0000"+
- "\u0000\u0000\uA0B1\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\uA0BD\u0000"+
- "\u0000\u0000\u0000\u0000\uA0C3\u0000\uA0C5\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D0\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\uA0D8\u0000\uA0DA\u0000\u0000\u0000\uA0DE"+
- "\u0000\u0000\u0000\u0000\uA0E3\u0000\u0000\uA0E6"+
- "\u0000\uA0E8\uA0E9\uA0EA\uA0EB\uA0EC\uA0ED\uA0EE"+
- "\uA0EF\uA0F0\uA0F1\u0000\uA0F3\uA0F4\uA0F5\uA0F6"+
- "\uA0F7\uA0F8\uA0F9\u0000\uA0FB\u0000\u0000\uA0FE"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8840\u8841\u8842\u8843\u8844"+
- "\u8845\u8846\u8847\u8848\u8849\u884A\u884B\u884C"+
- "\u884D\u884E\u884F\u8850\u8851\u8852\u8853\u8854"+
- "\u8855\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8862\u0000\u8864"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u88A3\u0000\u88A5\u0000"+
- "\u0000\u0000\u88A9\u88AA\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8940\u8941\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u894C\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u89B2\u0000\u0000\u0000\u0000\u89B7\u0000\u0000"+
- "\u89BA\u89BB\u89BC\u0000\u89BE\u89BF\u0000\u0000"+
- "\u0000\u0000\u0000\u89C5\u0000\u0000\u0000\u0000"+
- "\u89CA\u89CB\u89CC\u89CD\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u89D5\u0000\u89D7\u0000\u0000"+
- "\u89DA\u89DB\u89DC\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u89E6\u0000\u89E8\u0000"+
- "\u89EA\u0000\u0000\u89ED\u89EE\u89EF\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u89F9"+
- "\u0000\u89FB\u89FC\u0000\u89FE\u8A40\u0000\u0000"+
- "\u8A43\u8A44\u8A45\u0000\u8A47\u8A48\u8A49\u0000"+
- "\u8A4B\u8A4C\u8A4D\u8A4E\u0000\u8A50\u8A51\u8A52"+
- "\u8A53\u8A54\u8A55\u0000\u8A57\u8A58\u8A59\u8A5A"+
- "\u0000\u0000\u8A5D\u8A5E\u8A5F\u8A60\u8A61\u8A62"+
- "\u0000\u8A64\u8A65\u8A66\u8A67\u8A68\u8A69\u0000"+
- "\u8A6B\u8A6C\u8A6D\u8A6E\u8A6F\u8A70\u8A71\u8A72"+
- "\u0000\u0000\u0000\u8A76\u8A77\u0000\u0000\u8A7A"+
- "\u8A7B\u8A7C\u8A7D\u8A7E\u8AA1\u8AA2\u8AA3\u0000"+
- "\u8AA5\u8AA6\u0000\u8AA8\u8AA9\u8AAA\u0000\u8AAC"+
- "\u8AAD\u8AAE\u0000\u8AB0\u0000\u8AB2\u8AB3\u8AB4"+
- "\u8AB5\u8AB6\u0000\u8AB8\u8AB9\u0000\u8ABB\u8ABC"+
- "\u8ABD\u0000\u0000\u8AC0\u0000\u8AC2\u8AC3\u0000"+
- "\u0000\u0000\u8AC7\u0000\u8AC9\u8ACA\u8ACB\u8ACC"+
- "\u0000\u8ACE\u8ACF\u8AD0\u8AD1\u8AD2\u8AD3\u8AD4"+
- "\u8AD5\u0000\u8AD7\u8AD8\u8AD9\u8ADA\u0000\u8ADC"+
- "\u0000\u0000\u8ADF\u8AE0\u8AE1\u8AE2\u8AE3\u8AE4"+
- "\u8AE5\u8AE6\u0000\u8AE8\u8AE9\u8AEA\u8AEB\u8AEC"+
- "\u8AED\u8AEE\u8AEF\u8AF0\u8AF1\u8AF2\u8AF3\u8AF4"+
- "\u0000\u8AF6\u8AF7\u8AF8\u8AF9\u8AFA\u8AFB\u8AFC"+
- "\u0000\u8AFE\u8B40\u8B41\u8B42\u8B43\u8B44\u8B45"+
- "\u8B46\u8B47\u8B48\u8B49\u8B4A\u8B4B\u8B4C\u8B4D"+
- "\u8B4E\u8B4F\u0000\u0000\u0000\u0000\u0000\u8B55"+
- "\u0000\u0000\u8B58\u8B59\u0000\u0000\u0000\u0000"+
- "\u8B5E\u0000\u8B60\u0000\u8B62\u0000\u8B64\u8B65"+
- "\u8B66\u8B67\u8B68\u8B69\u8B6A\u8B6B\u0000\u8B6D"+
- "\u8B6E\u8B6F\u8B70\u8B71\u8B72\u8B73\u8B74\u8B75"+
- "\u8B76\u8B77\u0000\u8B79\u8B7A\u8B7B\u8B7C\u0000"+
- "\u8B7E\u8BA1\u8BA2\u8BA3\u8BA4\u8BA5\u8BA6\u8BA7"+
- "\u8BA8\u8BA9\u8BAA\u8BAB\u8BAC\u8BAD\u8BAE\u0000"+
- "\u0000\u8BB1\u8BB2\u0000\u0000\u8BB5\u8BB6\u0000"+
- "\u8BB8\u0000\u0000\u8BBB\u8BBC\u0000\u8BBE\u0000"+
- "\u0000\u0000\u8BC2\u8BC3\u0000\u8BC5\u0000\u0000"+
- "\u8BC8\u0000\u0000\u0000\u8BCC\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u8BD6\u0000"+
- "\u0000\u0000\u0000\u8BDB\u8BDC\u0000\u8BDE\u0000"+
- "\u0000\u8BE1\u8BE2\u0000\u0000\u0000\u8BE6\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8BED\u0000\u0000"+
- "\u0000\u0000\u0000\u8BF3\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u8BFA\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u8C42\u8C43\u0000\u0000\u8C46\u0000\u0000"+
- "\u0000\u8C4A\u0000\u8C4C\u0000\u8C4E\u0000\u0000"+
- "\u0000\u0000\u0000\u8C54\u8C55\u0000\u8C57\u0000"+
- "\u0000\u0000\u0000\u8C5C\u0000\u0000\u8C5F\u0000"+
- "\u0000\u0000\u0000\u8C64\u8C65\u0000\u0000\u0000"+
- "\u8C69\u0000\u0000\u8C6C\u8C6D\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u8C74\u0000\u0000\u0000\u0000"+
- "\u8C79\u0000\u0000\u0000\u8C7D\u0000\u8CA1\u0000"+
- "\u0000\u8CA4\u0000\u0000\u0000\u8CA8\u0000\u0000"+
- "\u8CAB\u0000\u0000\u0000\u8CAF\u8CB0\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CB7\u0000\u8CB9\u0000"+
- "\u8CBB\u0000\u0000\u0000\u0000\u8CC0\u8CC1\u8CC2"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8CCF\u0000\u8CD1\u0000"+
- "\u8CD3\u0000\u8CD5\u8CD6\u8CD7\u8CD8\u0000\u8CDA"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8D63"+
- "\u8D64\u0000\u0000\u8D67\u8D68\u0000\u0000\u0000"+
- "\u0000\u8D6D\u8D6E\u8D6F\u8D70\u0000\u0000\u0000"+
- "\u8D74\u0000\u0000\u0000\u8D78\u0000\u0000\u0000"+
- "\u0000\u8D7D\u0000\u8DA1\u0000\u0000\u0000\u0000"+
- "\u8DA6\u0000\u0000\u0000\u0000\u8DAB\u0000\u8DAD"+
- "\u0000\u0000\u8DB0\u0000\u8DB2\u0000\u8DB4\u0000"+
- "\u0000\u8DB7\u0000\u0000\u8DBA\u8DBB\u8DBC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DC3\u0000\u8DC5"+
- "\u0000\u0000\u0000\u0000\u8DCA\u0000\u8DCC\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u8DD6\u0000\u0000\u0000\u0000\u8DDB\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u8DE2\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u8DEB\u8DEC\u0000"+
- "\u0000\u8DEF\u8DF0\u0000\u0000\u8DF3\u0000\u8DF5"+
- "\u0000\u0000\u0000\u0000\u0000\u8DFB\u8DFC\u8DFD"+
- "\u8DFE\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC6CD\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uC879\uC87A\u0000"+
- "\uC87C\u0000\uC87E\uC8A1\u0000\uC8A3\uC8A4\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u8BF8"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\uC8D6\uC8D7\uC8D8\uC8D9\uC8DA\uC8DB\uC8DC\uC8DD"+
- "\uC8DE\uC8DF\uC8E0\uC8E1\uC8E2\uC8E3\uC8E4\uC8E5"+
- "\uC8E6\uC8E7\uC8E8\uC8E9\uC8EA\uC8EB\uC8EC\uC8ED"+
- "\uC8EE\uC8EF\uC8F0\uC8F1\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8D0\u0000\u0000\u0000\u0000\uC8CF"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\uC6E4\u0000\uC6E5\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\uC8CD\u0000\uC8CE\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\uF9FE\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000"+
- "\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000";
-
- private final static short index1[] = {
- 1, 2, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0,
- 0, 6, 0, 0, 7, 8, 0, 9, 0, 0, 0, 0, 0, 0, 10, 11,
- 12, 0, 13, 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 0,
- 0, 0, 0, 137, 138, 139, 140, 141, 142, 142, 0, 0, 0, 0, 0, 143
- };
-
- static String index2[] = {
- innerIndex0,
- innerIndex1,
- innerIndex2,
- innerIndex3,
- innerIndex4,
- innerIndex5,
- innerIndex6,
- innerIndex7,
- innerIndex8
- };
-
- String unicodeSearchTab =
- "\ud840\udc21\ud840\udc3e\ud840\udc46\ud840\udc4e" +
- "\ud840\udc68\ud840\udc86\ud840\udc87\ud840\udc8a" +
- "\ud840\udc94\ud840\udcca\ud840\udccb\ud840\udccc" +
- "\ud840\udccd\ud840\udcd1\ud840\udcee\ud840\udd0c" +
- "\ud840\udd0e\ud840\udd18\ud840\udda9\ud840\uddab" +
- "\ud840\uddc1\ud840\uddd4\ud840\uddf2\ud840\ude04" +
- "\ud840\ude0c\ud840\ude14\ud840\ude5b\ud840\ude74" +
- "\ud840\ude75\ud840\ude99\ud840\ude9e\ud840\udea0" +
- "\ud840\udeb7\ud840\udebf\ud840\udec0\ud840\udee5" +
- "\ud840\udf0a\ud840\udf25\ud840\udf41\ud840\udf45" +
- "\ud840\udf46\ud840\udf47\ud840\udf7e\ud840\udf7f" +
- "\ud840\udf80\ud840\udfa0\ud840\udfa7\ud840\udfb5" +
- "\ud840\udfc9\ud840\udfcb\ud840\udff5\ud840\udffc" +
- "\ud841\udc13\ud841\udc14\ud841\udc1f\ud841\udc65" +
- "\ud841\udc87\ud841\udc8e\ud841\udc91\ud841\udc92" +
- "\ud841\udca3\ud841\udcd7\ud841\udcfc\ud841\udcfe" +
- "\ud841\udd47\ud841\udd8e\ud841\udda5\ud841\uddb3" +
- "\ud841\uddc3\ud841\uddca\ud841\uddd0\ud841\uddd5" +
- "\ud841\udddf\ud841\udde0\ud841\uddeb\ud841\ude11" +
- "\ud841\ude15\ud841\ude19\ud841\ude1a\ud841\ude30" +
- "\ud841\ude56\ud841\ude76\ud841\udf0e\ud841\udf31" +
- "\ud841\udf79\ud842\udc2c\ud842\udc73\ud842\udcd5" +
- "\ud842\udd16\ud842\udd23\ud842\udd54\ud842\udd79" +
- "\ud842\udde7\ud842\ude11\ud842\ude50\ud842\udeb4" +
- "\ud842\udec2\ud842\udecd\ud842\udf0d\ud842\udf8f" +
- "\ud842\udfa8\ud842\udfa9\ud842\udfbf\ud842\udfc6" +
- "\ud842\udfcb\ud842\udfe2\ud842\udfeb\ud842\udffb" +
- "\ud842\udfff\ud843\udc0b\ud843\udc0d\ud843\udc20" +
- "\ud843\udc34\ud843\udc3a\ud843\udc3b\ud843\udc41" +
- "\ud843\udc42\ud843\udc43\ud843\udc53\ud843\udc65" +
- "\ud843\udc77\ud843\udc78\ud843\udc7c\ud843\udc8d" +
- "\ud843\udc96\ud843\udc9c\ud843\udcb5\ud843\udcb8" +
- "\ud843\udccf\ud843\udcd3\ud843\udcd4\ud843\udcd5" +
- "\ud843\udcd6\ud843\udcdd\ud843\udced\ud843\udcff" +
- "\ud843\udd15\ud843\udd28\ud843\udd31\ud843\udd32" +
- "\ud843\udd46\ud843\udd47\ud843\udd48\ud843\udd49" +
- "\ud843\udd4c\ud843\udd4d\ud843\udd4e\ud843\udd6f" +
- "\ud843\udd71\ud843\udd74\ud843\udd7c\ud843\udd7e" +
- "\ud843\udd7f\ud843\udd96\ud843\udd9c\ud843\udda7" +
- "\ud843\uddb2\ud843\uddc8\ud843\ude04\ud843\ude09" +
- "\ud843\ude0a\ud843\ude0d\ud843\ude0e\ud843\ude0f" +
- "\ud843\ude10\ud843\ude11\ud843\ude16\ud843\ude1d" +
- "\ud843\ude4c\ud843\ude6d\ud843\ude73\ud843\ude75" +
- "\ud843\ude76\ud843\ude77\ud843\ude78\ud843\ude79" +
- "\ud843\ude7a\ud843\ude7b\ud843\ude8c\ud843\ude96" +
- "\ud843\ude98\ud843\ude9d\ud843\udea2\ud843\udeaa" +
- "\ud843\udeab\ud843\udeac\ud843\udeb6\ud843\uded7" +
- "\ud843\uded8\ud843\udedd\ud843\udef8\ud843\udef9" +
- "\ud843\udefa\ud843\udefb\ud843\udf1d\ud843\udf26" +
- "\ud843\udf2d\ud843\udf2e\ud843\udf30\ud843\udf31" +
- "\ud843\udf3b\ud843\udf4c\ud843\udf64\ud843\udf8d" +
- "\ud843\udf90\ud843\udfad\ud843\udfb4\ud843\udfb5" +
- "\ud843\udfb6\ud843\udfbc\ud843\udfdf\ud843\udfea" +
- "\ud843\udfeb\ud843\udfec\ud843\udfed\ud844\udc14" +
- "\ud844\udc1d\ud844\udc1e\ud844\udc4f\ud844\udc5c" +
- "\ud844\udc6f\ud844\udc75\ud844\udc76\ud844\udc77" +
- "\ud844\udc78\ud844\udc7b\ud844\udc88\ud844\udc96" +
- "\ud844\udc9d\ud844\udcb4\ud844\udcbf\ud844\udcc0" +
- "\ud844\udcc1\ud844\udcc7\ud844\udcc8\ud844\udcc9" +
- "\ud844\udccf\ud844\udcd3\ud844\udce4\ud844\udcf4" +
- "\ud844\udcf5\ud844\udcf6\ud844\udd2f\ud844\udd3b" +
- "\ud844\udd3d\ud844\udd45\ud844\udd48\ud844\udd4f" +
- "\ud844\udd80\ud844\udd87\ud844\uddd9\ud844\ude3c" +
- "\ud844\ude4f\ud844\ude7c\ud844\udea8\ud844\udea9" +
- "\ud844\udeb0\ud844\udee3\ud844\udefe\ud844\udf02" +
- "\ud844\udf03\ud844\udf04\ud844\udf05\ud844\udf36" +
- "\ud844\udf3a\ud844\udf75\ud844\udf76\ud844\udf8e" +
- "\ud844\udf98\ud844\udf9c\ud844\udfc5\ud844\udfc6" +
- "\ud844\udfed\ud844\udffe\ud845\udc13\ud845\udc16" +
- "\ud845\udc24\ud845\udc3f\ud845\udc52\ud845\udc54" +
- "\ud845\udc55\ud845\udc8a\ud845\udc97\ud845\udcb6" +
- "\ud845\udce8\ud845\udcfd\ud845\udd77\ud845\udd82" +
- "\ud845\udd96\ud845\ude0a\ud845\ude13\ud845\ude19" +
- "\ud845\ude3e\ud845\ude61\ud845\ude92\ud845\udeb8" +
- "\ud845\udeba\ud845\udec0\ud845\udec1\ud845\udec2" +
- "\ud845\uded3\ud845\uded5\ud845\udedf\ud845\udee6" +
- "\ud845\udee7\ud845\udee8\ud845\udefa\ud845\udefb" +
- "\ud845\udefc\ud845\udefe\ud845\udf0d\ud845\udf10" +
- "\ud845\udf26\ud845\udf3a\ud845\udf3b\ud845\udf3c" +
- "\ud845\udf57\ud845\udf6c\ud845\udf6d\ud845\udf6e" +
- "\ud845\udf6f\ud845\udf70\ud845\udf71\ud845\udf73" +
- "\ud845\udf74\ud845\udfab\ud845\udfb0\ud845\udfb1" +
- "\ud845\udfb2\ud845\udfb3\ud845\udfb4\ud845\udfb5" +
- "\ud845\udfc3\ud845\udfc7\ud845\udfd9\ud845\udfda" +
- "\ud845\udfdb\ud845\udfdc\ud845\udfdf\ud845\udfef" +
- "\ud845\udff5\ud845\udff6\ud845\udff8\ud845\udff9" +
- "\ud845\udffa\ud845\udffb\ud845\udffc\ud846\udc20" +
- "\ud846\udc28\ud846\udc29\ud846\udc2a\ud846\udc2d" +
- "\ud846\udc39\ud846\udc3a\ud846\udc3b\ud846\udc40" +
- "\ud846\udc45\ud846\udc52\ud846\udc5e\ud846\udc61" +
- "\ud846\udc62\ud846\udc63\ud846\udc64\ud846\udc77" +
- "\ud846\udc7b\ud846\udc83\ud846\udc84\ud846\udc85" +
- "\ud846\udc9e\ud846\udc9f\ud846\udca0\ud846\udca1" +
- "\ud846\udca2\ud846\udcbe\ud846\udcbf\ud846\udcd1" +
- "\ud846\udcd6\ud846\udcd7\ud846\udcd8\ud846\udcd9" +
- "\ud846\udcfa\ud846\udd03\ud846\udd04\ud846\udd05" +
- "\ud846\udd10\ud846\udd11\ud846\udd12\ud846\udd15" +
- "\ud846\udd1c\ud846\udd22\ud846\udd27\ud846\udd3b" +
- "\ud846\udd44\ud846\udd58\ud846\udd6a\ud846\udd7c" +
- "\ud846\udd80\ud846\udd83\ud846\udd88\ud846\udd96" +
- "\ud846\udddb\ud846\uddf3\ud846\ude2d\ud846\ude34" +
- "\ud846\ude45\ud846\ude4b\ud846\udf44\ud846\udfc1" +
- "\ud846\udfc2\ud847\udc2a\ud847\udc70\ud847\udca2" +
- "\ud847\udca5\ud847\udcac\ud847\udd46\ud847\udd90" +
- "\ud847\uddb6\ud847\uddba\ud847\uddca\ud847\uddd1" +
- "\ud847\uddeb\ud847\uddf9\ud847\ude1c\ud847\ude37" +
- "\ud847\ude3d\ud847\ude89\ud847\udea4\ud847\udea8" +
- "\ud847\udec8\ud847\uded5\ud847\udf0f\ud847\udf15" +
- "\ud847\udf6a\ud847\udf9e\ud847\udfa1\ud847\udfe8" +
- "\ud848\udc45\ud848\udc49\ud848\udc7e\ud848\udc9a" +
- "\ud848\udcc7\ud848\udcfc\ud848\udd2a\ud848\udd5b" +
- "\ud848\udd73\ud848\udd7a\ud848\udda1\ud848\uddc3" +
- "\ud848\ude08\ud848\ude7c\ud848\udf21\ud848\udf25" +
- "\ud848\udfbd\ud848\udfd0\ud848\udfd7\ud848\udffa" +
- "\ud849\udc65\ud849\udc71\ud849\udc8b\ud849\udc91" +
- "\ud849\udcb0\ud849\udced\ud849\udd13\ud849\udd1b" +
- "\ud849\udd30\ud849\udd54\ud849\udd8d\ud849\uddaf" +
- "\ud849\uddbe\ud849\ude1b\ud849\ude1c\ud849\ude2b" +
- "\ud849\ude68\ud849\ude7a\ud849\ude96\ud849\ude98" +
- "\ud849\udef4\ud849\udef5\ud849\udef6\ud849\udf12" +
- "\ud849\udf14\ud849\udf1b\ud849\udf1f\ud849\udf2a" +
- "\ud849\udf75\ud849\udf81\ud849\udfb4\ud849\udfb5" +
- "\ud849\udfcd\ud84a\udc03\ud84a\udc5f\ud84a\udc60" +
- "\ud84a\udc71\ud84a\udcad\ud84a\udcc1\ud84a\udcf7" +
- "\ud84a\udd26\ud84a\udd39\ud84a\udd4f\ud84a\udd67" +
- "\ud84a\udd6b\ud84a\udd80\ud84a\udd93\ud84a\ude66" +
- "\ud84a\udecf\ud84a\uded5\ud84a\udee6\ud84a\udee8" +
- "\ud84a\udf0e\ud84a\udf22\ud84a\udf3f\ud84a\udf43" +
- "\ud84a\udf6a\ud84a\udfca\ud84a\udfce\ud84b\udc26" +
- "\ud84b\udc27\ud84b\udc38\ud84b\udc4c\ud84b\udc51" +
- "\ud84b\udc55\ud84b\udc62\ud84b\udc88\ud84b\udc9b" +
- "\ud84b\udca1\ud84b\udca9\ud84b\udcb2\ud84b\udcb7" +
- "\ud84b\udcc2\ud84b\udcc6\ud84b\udcc9\ud84b\udd07" +
- "\ud84b\udd08\ud84b\udd12\ud84b\udd44\ud84b\udd4c" +
- "\ud84b\udd67\ud84b\udd8d\ud84b\udd95\ud84b\udda0" +
- "\ud84b\udda3\ud84b\udda4\ud84b\uddb7\ud84b\uddee" +
- "\ud84b\ude0d\ud84b\ude36\ud84b\ude42\ud84b\ude78" +
- "\ud84b\ude8b\ud84b\udeb3\ud84b\udeef\ud84b\udf74" +
- "\ud84b\udfcc\ud84b\udfe3\ud84c\udc33\ud84c\udc44" +
- "\ud84c\udc4b\ud84c\udc66\ud84c\udc7d\ud84c\udc7e" +
- "\ud84c\udc8e\ud84c\udcb7\ud84c\udcbc\ud84c\udcda" +
- "\ud84c\udd03\ud84c\udd3d\ud84c\udd7d\ud84c\udd82" +
- "\ud84c\udda4\ud84c\udda5\ud84c\uddb3\ud84c\uddc8" +
- "\ud84c\uddc9\ud84c\uddf7\ud84c\uddf8\ud84c\uddf9" +
- "\ud84c\ude0f\ud84c\ude25\ud84c\ude2f\ud84c\ude31" +
- "\ud84c\ude32\ud84c\ude33\ud84c\ude34\ud84c\ude62" +
- "\ud84c\ude81\ud84c\ude89\ud84c\ude8a\ud84c\udeab" +
- "\ud84c\udeac\ud84c\udead\ud84c\uded2\ud84c\udee0" +
- "\ud84c\udee1\ud84c\udf00\ud84c\udf0a\ud84c\udf1f" +
- "\ud84c\udfb4\ud84c\udfcc\ud84c\udfde\ud84c\udfe6" +
- "\ud84c\udff4\ud84c\udff5\ud84c\udff9\ud84c\udffa" +
- "\ud84c\udffe\ud84d\udc00\ud84d\udc3f\ud84d\udc50" +
- "\ud84d\udc6f\ud84d\udc72\ud84d\udce5\ud84d\udd19" +
- "\ud84d\udd30\ud84d\udd5a\ud84d\udd67\ud84d\udd95" +
- "\ud84d\udd99\ud84d\udd9c\ud84d\uddcd\ud84d\uddce" +
- "\ud84d\uddcf\ud84d\uddf3\ud84d\ude00\ud84d\ude1a" +
- "\ud84d\ude3c\ud84d\ude40\ud84d\ude59\ud84d\ude5f" +
- "\ud84d\ude77\ud84d\udea6\ud84d\udead\ud84d\udeba" +
- "\ud84d\udedf\ud84d\udeee\ud84d\udf03\ud84d\udf16" +
- "\ud84d\udf20\ud84d\udf2d\ud84d\udf2f\ud84d\udf3f" +
- "\ud84d\udf66\ud84d\udf81\ud84d\udfa2\ud84d\udfbc" +
- "\ud84d\udfc2\ud84d\udfd5\ud84d\udfd6\ud84d\udfd7" +
- "\ud84e\udc3a\ud84e\uddc2\ud84e\udea7\ud84e\udedb" +
- "\ud84e\udeee\ud84e\udefa\ud84e\udf5a\ud84f\udc63" +
- "\ud84f\udc99\ud84f\udc9a\ud84f\udc9b\ud84f\udcb5" +
- "\ud84f\udcb7\ud84f\udcc7\ud84f\udcc8\ud84f\udcc9" +
- "\ud84f\udcfc\ud84f\udcfd\ud84f\udcfe\ud84f\udcff" +
- "\ud84f\udd40\ud84f\udd5b\ud84f\udd7e\ud84f\udd8f" +
- "\ud84f\uddb6\ud84f\uddb7\ud84f\uddb8\ud84f\uddb9" +
- "\ud84f\uddba\ud84f\uddbb\ud84f\uddbc\ud84f\uddbd" +
- "\ud84f\udde3\ud84f\uddf8\ud84f\ude11\ud84f\ude2c" +
- "\ud84f\ude2d\ud84f\ude2e\ud84f\ude2f\ud84f\ude30" +
- "\ud84f\ude31\ud84f\ude39\ud84f\ude88\ud84f\ude89" +
- "\ud84f\ude8a\ud84f\ude8b\ud84f\udeb9\ud84f\udebf" +
- "\ud84f\uded7\ud84f\udef7\ud84f\udef8\ud84f\udef9" +
- "\ud84f\udefa\ud84f\udefb\ud84f\udefc\ud84f\udf35" +
- "\ud84f\udf41\ud84f\udf4a\ud84f\udf7f\ud84f\udf80" +
- "\ud84f\udf81\ud84f\udf82\ud84f\udf8f\ud84f\udfb4" +
- "\ud84f\udfb7\ud84f\udfc0\ud84f\udfc5\ud84f\udfeb" +
- "\ud84f\udfec\ud84f\udfed\ud84f\udfee\ud84f\udfef" +
- "\ud84f\udff0\ud850\udc11\ud850\udc39\ud850\udc3a" +
- "\ud850\udc3b\ud850\udc3c\ud850\udc3d\ud850\udc57" +
- "\ud850\udc85\ud850\udc8b\ud850\udc8c\ud850\udc8d" +
- "\ud850\udc91\ud850\udcc9\ud850\udce1\ud850\udd04" +
- "\ud850\udd0f\ud850\udd19\ud850\udd3f\ud850\udd40" +
- "\ud850\udd44\ud850\udd4e\ud850\udd55\ud850\udd56" +
- "\ud850\udd57\ud850\udd5c\ud850\udd5f\ud850\udd77" +
- "\ud850\udd7a\ud850\udda3\ud850\udda4\ud850\udda5" +
- "\ud850\uddac\ud850\uddb5\ud850\uddcd\ud850\udde2" +
- "\ud850\uddfc\ud850\ude1b\ud850\ude4b\ud850\ude56" +
- "\ud850\ude59\ud850\ude76\ud850\ude77\ud850\ude78" +
- "\ud850\ude84\ud850\ude93\ud850\ude95\ud850\udea5" +
- "\ud850\udec1\ud850\udec9\ud850\udeca\ud850\udeee" +
- "\ud850\udefa\ud850\udf0d\ud850\udf1a\ud850\udf34" +
- "\ud850\udf48\ud850\udf62\ud850\udf63\ud850\udf64" +
- "\ud850\udf65\ud850\udf8c\ud850\udf96\ud850\udf9c" +
- "\ud850\udfbd\ud850\udfc1\ud850\udfe9\ud850\udfea" +
- "\ud850\udff2\ud850\udff8\ud851\udc04\ud851\udc35" +
- "\ud851\udc36\ud851\udc5a\ud851\udc5b\ud851\udc73" +
- "\ud851\udc87\ud851\udc88\ud851\udcb9\ud851\udcbc" +
- "\ud851\udcce\ud851\udcd3\ud851\udcd6\ud851\udd05" +
- "\ud851\udd21\ud851\udd78\ud851\uddc8\ud851\ude18" +
- "\ud851\ude2a\ud851\ude65\ud851\ude74\ud851\ude97" +
- "\ud851\uded4\ud851\udf06\ud851\udf25\ud851\udf2f" +
- "\ud851\udf8f\ud851\udfe0\ud852\udc12\ud852\udc23" +
- "\ud852\udc82\ud852\udce9\ud852\udcf0\ud852\udcf1" +
- "\ud852\udcf2\ud852\udcf3\ud852\udcfb\ud852\udcff" +
- "\ud852\udd00\ud852\udd01\ud852\udd0c\ud852\udd16" +
- "\ud852\udd17\ud852\udd19\ud852\udd2f\ud852\udd33" +
- "\ud852\udd34\ud852\udd3e\ud852\udd3f\ud852\udd40" +
- "\ud852\udd41\ud852\udd42\ud852\udd43\ud852\udd62" +
- "\ud852\udd63\ud852\udd74\ud852\udd75\ud852\udd76" +
- "\ud852\udd7b\ud852\udd7f\ud852\udd82\ud852\udd88" +
- "\ud852\udd89\ud852\udd8a\ud852\udd8b\ud852\udd8c" +
- "\ud852\udd8d\ud852\udd8e\ud852\udd8f\ud852\udd94" +
- "\ud852\udda4\ud852\udda7\ud852\udda9\ud852\uddab" +
- "\ud852\uddac\ud852\uddad\ud852\uddb7\ud852\uddb8" +
- "\ud852\uddb9\ud852\uddba\ud852\uddbb\ud852\uddc5" +
- "\ud852\uddd0\ud852\uddda\ud852\uddde\ud852\udddf" +
- "\ud852\udde3\ud852\udde5\ud852\uddec\ud852\udded" +
- "\ud852\uddf6\ud852\uddf7\ud852\uddf8\ud852\uddf9" +
- "\ud852\uddfb\ud852\ude0e\ud852\ude12\ud852\ude13" +
- "\ud852\ude15\ud852\ude21\ud852\ude22\ud852\ude23" +
- "\ud852\ude24\ud852\ude25\ud852\ude26\ud852\ude27" +
- "\ud852\ude28\ud852\ude29\ud852\ude2a\ud852\ude3e" +
- "\ud852\ude42\ud852\ude45\ud852\ude4a\ud852\ude4e" +
- "\ud852\ude4f\ud852\ude50\ud852\ude51\ud852\ude5d" +
- "\ud852\ude65\ud852\ude66\ud852\ude67\ud852\ude71" +
- "\ud852\ude77\ud852\ude78\ud852\ude79\ud852\ude7a" +
- "\ud852\ude8c\ud852\ude93\ud852\ude94\ud852\ude95" +
- "\ud852\ude96\ud852\udea4\ud852\udea5\ud852\udea6" +
- "\ud852\udea7\ud852\udeb1\ud852\udeb2\ud852\udeb3" +
- "\ud852\udeba\ud852\udebb\ud852\udebc\ud852\udec0" +
- "\ud852\udec7\ud852\udeca\ud852\uded1\ud852\udedf" +
- "\ud852\udee2\ud852\udee9\ud852\udf6e\ud852\udff5" +
- "\ud853\udc09\ud853\udc9e\ud853\udc9f\ud853\udcc9" +
- "\ud853\udcd9\ud853\udd06\ud853\udd13\ud853\uddb8" +
- "\ud853\uddea\ud853\uddeb\ud853\ude3b\ud853\ude50" +
- "\ud853\udea5\ud853\udea7\ud853\udf0e\ud853\udf5c" +
- "\ud853\udf82\ud853\udf86\ud853\udf97\ud853\udf9a" +
- "\ud853\udfa9\ud853\udfb8\ud853\udfc2\ud854\udc2c" +
- "\ud854\udc52\ud854\udc9d\ud854\udd2b\ud854\udd48" +
- "\ud854\udd7d\ud854\udd7e\ud854\uddcd\ud854\udde3" +
- "\ud854\udde6\ud854\udde7\ud854\ude20\ud854\ude21" +
- "\ud854\ude50\ud854\ude99\ud854\udec7\ud854\uded8" +
- "\ud854\udf0e\ud854\udf11\ud854\udf13\ud855\udc19" +
- "\ud855\udc25\ud855\udc2f\ud855\udc30\ud855\udc46" +
- "\ud855\udc6c\ud855\udc6e\ud855\udd31\ud855\udd35" +
- "\ud855\udd3f\ud855\udd5b\ud855\udd5c\ud855\udd5d" +
- "\ud855\udd5e\ud855\udd62\ud855\udd65\ud855\udd66" +
- "\ud855\udd81\ud855\udd84\ud855\udd8f\ud855\uddb9" +
- "\ud855\uddd5\ud855\udddb\ud855\udde0\ud855\ude05" +
- "\ud855\ude35\ud855\ude51\ud855\ude83\ud855\ude95" +
- "\ud855\udee3\ud855\udef6\ud855\udf06\ud855\udf1d" +
- "\ud855\udf25\ud855\udf3d\ud855\udf72\ud855\udfc7" +
- "\ud855\udfdf\ud855\udfe0\ud855\udfe1\ud856\udc57" +
- "\ud856\udc5d\ud856\udc72\ud856\udcc8\ud856\udce1" +
- "\ud856\udd03\ud856\udd46\ud856\udd56\ud856\uddac" +
- "\ud856\uddcc\ud856\ude95\ud856\ude9c\ud856\udeae" +
- "\ud856\udeaf\ud856\udee9\ud856\udf74\ud856\udf89" +
- "\ud856\udfb3\ud856\udfb4\ud856\udfc6\ud856\udfe4" +
- "\ud856\udfe8\ud857\udc01\ud857\udc06\ud857\udc21" +
- "\ud857\udc4a\ud857\udc65\ud857\udc91\ud857\udca4" +
- "\ud857\udcc0\ud857\udcc1\ud857\udcfe\ud857\udd20" +
- "\ud857\udd30\ud857\udd43\ud857\ude0e\ud857\ude49" +
- "\ud857\ude81\ud857\ude82\ud857\ude83\ud857\udea6" +
- "\ud857\udebc\ud857\uded7\ud857\uded8\ud857\udf1a" +
- "\ud857\udf4b\ud857\udfe1\ud857\udfe2\ud858\udc29" +
- "\ud858\udc48\ud858\udc64\ud858\udc83\ud858\udc97" +
- "\ud858\udca4\ud858\udca5\ud858\udd02\ud858\udd21" +
- "\ud858\udd59\ud858\udd5a\ud858\udd5b\ud858\udd5c" +
- "\ud858\uddad\ud858\uddae\ud858\uddb2\ud858\udddd" +
- "\ud858\ude58\ud858\ude61\ud858\ude6a\ud858\ude6b" +
- "\ud858\uded0\ud858\udf35\ud858\udf4b\ud858\udf4c" +
- "\ud858\udf51\ud858\udfbe\ud858\udff5\ud858\udff8" +
- "\ud859\udc02\ud859\udc10\ud859\udc11\ud859\udc12" +
- "\ud859\udc4a\ud859\udc69\ud859\udc84\ud859\udc88" +
- "\ud859\udc89\ud859\udc8d\ud859\udc98\ud859\udd12" +
- "\ud859\udd72\ud859\udda0\ud859\uddad\ud859\uddbf" +
- "\ud859\ude12\ud859\ude26\ud859\udeaf\ud859\udeb1" +
- "\ud859\udeb5\ud859\udeda\ud859\udee8\ud859\udefc" +
- "\ud859\udf16\ud859\udf41\ud859\udf99\ud859\udfb3" +
- "\ud859\udfb4\ud859\udfcc\ud85a\udc1c\ud85a\udc46" +
- "\ud85a\udc5e\ud85a\udc6e\ud85a\udc88\ud85a\udc8a" +
- "\ud85a\udc93\ud85a\udcc7\ud85a\udd0e\ud85a\udd11" +
- "\ud85a\udd26\ud85a\udd39\ud85a\udd51\ud85a\udda8" +
- "\ud85a\uddb5\ud85a\uddf2\ud85a\uddfa\ud85a\ude2d" +
- "\ud85a\ude2e\ud85a\ude34\ud85a\ude42\ud85a\ude51" +
- "\ud85a\ude52\ud85a\udf05\ud85a\udf0a\ud85a\udf13" +
- "\ud85a\udf15\ud85a\udf28\ud85a\udf50\ud85a\udf51" +
- "\ud85a\udf52\ud85a\udf53\ud85a\udf5b\ud85a\udf75" +
- "\ud85a\udf82\ud85a\udf96\ud85a\udf97\ud85a\udf9d" +
- "\ud85a\udfb3\ud85a\udfc0\ud85a\udff7\ud85b\udc21" +
- "\ud85b\udc40\ud85b\udc7e\ud85b\udc7f\ud85b\udc80" +
- "\ud85b\udc81\ud85b\udc82\ud85b\udca4\ud85b\udcb7" +
- "\ud85b\udcb8\ud85b\udcbd\ud85b\udcc0\ud85b\udcc3" +
- "\ud85b\udcd1\ud85b\udd22\ud85b\udd23\ud85b\udd24" +
- "\ud85b\udd25\ud85b\udd26\ud85b\udd27\ud85b\udd28" +
- "\ud85b\udd29\ud85b\udd2a\ud85b\udd51\ud85b\udd74" +
- "\ud85b\udda0\ud85b\udda1\ud85b\udda2\ud85b\udda3" +
- "\ud85b\udda4\ud85b\udda5\ud85b\udda6\ud85b\udda7" +
- "\ud85b\uddae\ud85b\udddc\ud85b\uddea\ud85b\uddeb" +
- "\ud85b\uddf0\ud85b\ude00\ud85b\ude05\ud85b\ude07" +
- "\ud85b\ude12\ud85b\ude42\ud85b\ude43\ud85b\ude44" +
- "\ud85b\ude45\ud85b\ude6e\ud85b\ude72\ud85b\ude77" +
- "\ud85b\ude84\ud85b\ude99\ud85b\uded0\ud85b\uded1" +
- "\ud85b\uded2\ud85b\uded3\ud85b\uded4\ud85b\uded5" +
- "\ud85b\uded6\ud85b\uded7\ud85b\udf26\ud85b\udf73" +
- "\ud85b\udf74\ud85b\udf9f\ud85b\udfa1\ud85b\udfbe" +
- "\ud85b\udfde\ud85b\udfdf\ud85c\udc0e\ud85c\udc4b" +
- "\ud85c\udc52\ud85c\udc53\ud85c\udc88\ud85c\udcad" +
- "\ud85c\udcae\ud85c\udcaf\ud85c\udccd\ud85c\udcf8" +
- "\ud85c\udd09\ud85c\udd0c\ud85c\udd0d\ud85c\udd26" +
- "\ud85c\udd27\ud85c\udd64\ud85c\udd65\ud85c\udd75" +
- "\ud85c\uddcd\ud85c\ude1b\ud85c\ude80\ud85c\ude85" +
- "\ud85c\ude8b\ud85c\udeb2\ud85c\udeb6\ud85c\udee6" +
- "\ud85c\udf9a\ud85d\udc22\ud85d\udc50\ud85d\udc84" +
- "\ud85d\udc86\ud85d\udd74\ud85d\udda3\ud85d\udde0" +
- "\ud85d\udde4\ud85d\uddfd\ud85d\uddfe\ud85d\ude07" +
- "\ud85d\ude0c\ud85d\ude32\ud85d\ude39\ud85d\ude55" +
- "\ud85d\ude56\ud85d\ude57\ud85d\ude94\ud85d\udf0f" +
- "\ud85d\udf35\ud85d\udf36\ud85d\udf41\ud85d\udf5e" +
- "\ud85d\udf84\ud85d\udf85\ud85d\udfcc\ud85e\udc58" +
- "\ud85e\udc70\ud85e\udc9d\ud85e\udcb2\ud85e\udcc8" +
- "\ud85e\udd24\ud85e\udd67\ud85e\udd7a\ud85e\udda0" +
- "\ud85e\udddd\ud85e\uddfd\ud85e\ude0a\ud85e\ude0e" +
- "\ud85e\ude3e\ud85e\ude53\ud85e\ude59\ud85e\ude79" +
- "\ud85e\ude84\ud85e\udebd\ud85e\udebe\ud85e\udef4" +
- "\ud85e\udf06\ud85e\udf0b\ud85e\udf18\ud85e\udf38" +
- "\ud85e\udf39\ud85e\udf3a\ud85e\udf48\ud85e\udff4" +
- "\ud85f\udc12\ud85f\udd2f\ud85f\udd53\ud85f\udd54" +
- "\ud85f\udd66\ud85f\udd73\ud85f\udd84\ud85f\udd8f" +
- "\ud85f\udd98\ud85f\uddbd\ud85f\udddc\ud85f\ude4d" +
- "\ud85f\ude4f\ud85f\udff9\ud860\udc02\ud860\udc09" +
- "\ud860\udc1e\ud860\udc23\ud860\udc24\ud860\udc48" +
- "\ud860\udc83\ud860\udc90\ud860\udcbd\ud860\udcbe" +
- "\ud860\udce8\ud860\udce9\ud860\udcf4\ud860\udd2e" +
- "\ud860\udd4f\ud860\udd5d\ud860\udd6f\ud860\udd89" +
- "\ud860\uddaf\ud860\uddbc\ud860\ude07\ud860\ude18" +
- "\ud860\ude1a\ud860\ude56\ud860\ude7c\ud860\ude9b" +
- "\ud860\udecd\ud860\udee2\ud860\udf06\ud860\udf18" +
- "\ud860\udf2f\ud860\udf3a\ud860\udf65\ud860\udf6d" +
- "\ud860\udf7d\ud860\udf8a\ud861\udc12\ud861\udc68" +
- "\ud861\udc6c\ud861\udc73\ud861\udc82\ud861\udd01" +
- "\ud861\udd3c\ud861\udd3d\ud861\udd6c\ud861\udde8" +
- "\ud861\uddf4\ud861\ude00\ud861\ude0b\ud861\ude25" +
- "\ud861\ude3b\ud861\udeaa\ud861\udeab\ud861\udebc" +
- "\ud861\uded8\ud861\udee6\ud861\udf0f\ud861\udf13" +
- "\ud862\udc04\ud862\udc2b\ud862\udd33\ud862\udd48" +
- "\ud862\udd49\ud862\udd56\ud862\udd64\ud862\udd68" +
- "\ud862\udd6c\ud862\udd7e\ud862\udd89\ud862\udda8" +
- "\ud862\uddaa\ud862\uddab\ud862\uddb8\ud862\uddbc" +
- "\ud862\uddc0\ud862\udddc\ud862\uddde\ud862\udde1" +
- "\ud862\udde3\ud862\udde4\ud862\udde7\ud862\udde8" +
- "\ud862\uddf9\ud862\uddfa\ud862\uddfb\ud862\uddfc" +
- "\ud862\ude0f\ud862\ude16\ud862\ude25\ud862\ude29" +
- "\ud862\ude32\ud862\ude36\ud862\ude44\ud862\ude45" +
- "\ud862\ude46\ud862\ude47\ud862\ude48\ud862\ude49" +
- "\ud862\ude4a\ud862\ude4b\ud862\ude59\ud862\ude5a" +
- "\ud862\ude81\ud862\ude82\ud862\ude83\ud862\ude9a" +
- "\ud862\ude9b\ud862\ude9c\ud862\udec0\ud862\udec6" +
- "\ud862\udecb\ud862\udecc\ud862\udece\ud862\udede" +
- "\ud862\udedf\ud862\udee0\ud862\udee1\ud862\udee2" +
- "\ud862\udee3\ud862\udee5\ud862\udeea\ud862\udefc" +
- "\ud862\udf0c\ud862\udf13\ud862\udf21\ud862\udf22" +
- "\ud862\udf2b\ud862\udf2c\ud862\udf2d\ud862\udf2f" +
- "\ud862\udf46\ud862\udf4c\ud862\udf4e\ud862\udf50" +
- "\ud862\udf63\ud862\udf64\ud862\udf65\ud862\udf66" +
- "\ud862\udf6c\ud862\udf8f\ud862\udf99\ud862\udf9c" +
- "\ud862\udf9d\ud862\udfc2\ud862\udfc5\ud862\udfd4" +
- "\ud862\udfd7\ud862\udfd9\ud862\udfda\ud862\udfe7" +
- "\ud862\udfe8\ud862\udfe9\ud862\udfea\ud862\udfeb" +
- "\ud862\udfec\ud862\udff5\ud862\udfff\ud863\udc03" +
- "\ud863\udc09\ud863\udc1c\ud863\udc1d\ud863\udc23" +
- "\ud863\udc26\ud863\udc2b\ud863\udc30\ud863\udc39" +
- "\ud863\udc3b\ud863\udcca\ud863\udccd\ud863\udcd2" +
- "\ud863\udd34\ud863\udd99\ud863\uddb9\ud863\ude0f" +
- "\ud863\ude36\ud863\ude39\ud863\ude65\ud863\ude66" +
- "\ud863\ude97\ud863\udeac\ud863\udeb2\ud863\udeb3" +
- "\ud863\uded9\ud863\udee7\ud863\udfc5\ud864\udc88" +
- "\ud864\udc8b\ud864\udc93\ud864\udcaf\ud864\udcb0" +
- "\ud864\udcb1\ud864\udcc0\ud864\udce4\ud864\udce5" +
- "\ud864\udcec\ud864\udced\ud864\udd0d\ud864\udd10" +
- "\ud864\udd3c\ud864\udd4d\ud864\udd5b\ud864\udd5e" +
- "\ud864\udd70\ud864\udd9c\ud864\udda8\ud864\uddd5" +
- "\ud864\uddeb\ud865\udc1d\ud865\udc20\ud865\udc33" +
- "\ud865\udc3f\ud865\udc48\ud865\udcd0\ud865\udcd9" +
- "\ud865\udcda\ud865\udce5\ud865\udce7\ud865\udd9e" +
- "\ud865\uddb0\ud865\uddb8\ud865\uddd7\ud865\udde9" +
- "\ud865\uddf4\ud865\udf20\ud865\udf32\ud865\udfd4" +
- "\ud866\udc10\ud866\udc57\ud866\udca4\ud866\udcd1" +
- "\ud866\udcea\ud866\udcf1\ud866\udd03\ud866\udd05" +
- "\ud866\udd2f\ud866\udd47\ud866\udd48\ud866\udd49" +
- "\ud866\udd5d\ud866\udd6a\ud866\udd9d\ud866\uddc3" +
- "\ud866\uddc9\ud866\ude28\ud866\ude4d\ud866\udf05" +
- "\ud866\udf0e\ud866\udfd5\ud867\udc73\ud867\udcad" +
- "\ud867\udd3e\ud867\udd5a\ud867\udd7c\ud867\udd98" +
- "\ud867\udd9b\ud867\uddf6\ud867\ude06\ud867\ude2d" +
- "\ud867\ude68\ud867\udeac\ud867\udec3\ud867\udef8" +
- "\ud867\udf23\ud867\udf30\ud867\udfb7\ud867\udfde" +
- "\ud868\udc14\ud868\udc87\ud868\udcb9\ud868\udce1" +
- "\ud868\udced\ud868\udcf3\ud868\udcf8\ud868\udcfe" +
- "\ud868\udd07\ud868\udd23\ud868\udd33\ud868\udd34" +
- "\ud868\udd50\ud868\udd92\ud868\udd93\ud868\uddab" +
- "\ud868\uddb4\ud868\udddf\ud868\uddf5\ud868\ude20" +
- "\ud868\ude33\ud868\ude93\ud868\ude9f\ud868\udeb2" +
- "\ud868\udeb4\ud868\udeb6\ud868\udeba\ud868\udebd" +
- "\ud868\udedf\ud868\udeff\ud868\udfa9\ud869\udc34" +
- "\ud869\udc5b\ud869\uddc6\ud869\uddcb\ud869\ude01" +
- "\ud869\ude32\ud869\ude4a\ud869\ude5b\ud869\udea9" +
- "\ud87e\udc25\ud87e\udc3b\ud87e\udc40\ud87e\udc78" +
- "\ud87e\udc94\ud87e\udca6\ud87e\udccd\ud87e\udd94" +
- "\ud87e\uddb2\ud87e\uddbc\ud87e\uddd4";
-
- String nativeSupplementary =
- "\u9C71\u9375\u9376\u9548\u8EC6\u8BC5"+
- "\u8BFA\uC87C\u9AB4\u884E\u884B\uC87A"+
- "\u8848\u8847\uA0F6\u8845\u8853\uFCAD"+
- "\u8AAD\u9272\uFC47\u94DF\u9FD1\uFBCB"+
- "\u927D\u98A4\u94E7\u90CB\u927B\u94D8"+
- "\uFC5F\uFA54\u9AB5\u96DA\u9279\uFA74"+
- "\u9275\u8DFB\u8A49\u92DF\u9B7C\uFA63"+
- "\uFA60\u926D\uFA62\u9AB6\u976B\uFD6A"+
- "\uFD54\u9273\u97D8\u9FBB\u9342\u9276"+
- "\uFA65\u926C\uFA6E\u9EE0\u92C0\u92BF"+
- "\u92BE\u9ABA\u8AB3\u9775\uFA40\uFA76"+
- "\uFBD0\uFA7B\uFE6D\u9BB3\u89CC\u9ABE"+
- "\uFA42\u92BC\u945C\u9BB5\u9ABF\u98A7"+
- "\u97A4\u90FD\uFC7B\u9AC0\u92C3\u8AAA"+
- "\u9BD0\u9550\u92C6\u98A6\u9546\uFD63"+
- "\uFAC2\u9EC3\u89B2\u9C66\u9053\u97C1"+
- "\u9AC4\u9AC5\u8EEF\uFAE9\u9262\u8AF7"+
- "\u9AC6\u92E1\u9AC9\uFAC6\u97A5\u9ACB"+
- "\uFA72\u8A5E\u94E0\u92CC\u8AE5\uFE5C"+
- "\u9ACC\u9DF9\u8A43\u8AA6\u9ACD\u9ACE"+
- "\uFAEE\u9BCC\u9ACF\u9AD1\u9DFA\u9D7C"+
- "\u9AD3\u97A6\u995F\uFBF6\u9FC5\u8A59"+
- "\u8B6B\u9AD4\u9AD5\u97A2\u8A44\u9F4A"+
- "\u90A1\uFDA4\u8A64\u8AF2\u8AF8\u9DD8"+
- "\u94D6\uFAFE\uFBA7\u9AD6\u9F4D\uFAF6"+
- "\u8A57\u8B43\u8B44\u8AB6\u8AC0\u9E54"+
- "\u9AD7\u9AD8\u9ADC\u8ACA\u9EA8\u9263"+
- "\u9ADD\u8B65\u8B6F\u8B7E\u8F43\u92D0"+
- "\u8AF4\u9DBE\u9AE1\uFCDE\u9DFD\u8B66"+
- "\u8B70\u8B75\u8AE4\u8BA4\u8AED\u8A5D"+
- "\u8B48\u9DED\u9E40\u8AEF\u8AF6\u9E76"+
- "\u9EE3\u9ADE\u8DFE\uFAFC\u9CB1\u9E77"+
- "\u8B64\u8B67\u974B\u9653\u9AE0\u8B4A"+
- "\u8AF1\u8AD7\uA0AB\u8AB5\u8A5F\u8AEE"+
- "\u9ADF\u8AFE\u8A58\u8BA3\u8BA7\u9AE3"+
- "\u9261\u9DD7\u9E7D\u9EA7\u9EAB\u9042"+
- "\u8B79\u8B7A\u9AE6\u9AE5\u8A7E\u9E44"+
- "\u9AE7\u8A7C\u8B71\u9AE9\u9AEA\u9AEB"+
- "\u8ABD\uFB4E\u9AED\u8AF9\u9E63\u8B49"+
- "\u8ACE\u8B6E\u8AE8\u9AEE\u92CE\u8A5A"+
- "\u8B7B\u8B7C\u9AEF\u9AF0\u8AFA\u8941"+
- "\u8B72\u8AF3\u8BA8\u9EAE\u9E72\uFB73"+
- "\uFB5F\u90BA\u91FE\u9EF6\u97ED\u9AF3"+
- "\uA0EE\u967C\u9345\u986E\uFA56\u9AF5"+
- "\uFC4B\u9AF4\uFEDE\uFCB7\u97F1\u97C7"+
- "\u9CCB\u9240\u9CE8\u91FD\u974E\uFB68"+
- "\u976C\u8CC2\u97E8\uFB6A\u8B74\u8EE7"+
- "\uFDC8\u9241\u96A1\u8EF3\u9AF7\u8FA6"+
- "\uFAD6\u9CC7\uFAD7\u9AF8\uFBA1\u8EC5"+
- "\uFBA4\uFBC2\u9AC1\u91FA\uFEDB\u97AB"+
- "\u9147\uFBB1\u8FEA\u94D2\uFE61\uFACE"+
- "\u92ED\u91F3\u93C6\u935A\uFAFB\u92EF"+
- "\uFAC8\u9847\u9366\u9855\u96E6\u9F43"+
- "\u9FAA\u94DA\u92EE\uFCAF\uFBFB\u8EF9"+
- "\u91F6\u9364\u94F5\u9CB6\uFBAD\u984E"+
- "\u8F44\u96FD\u9AF9\u9AFA\u9769\u95D4"+
- "\u984B\uFBAA\u987C\u91EA\u9DAF\u9DC5"+
- "\u91F1\u8EB1\u97A9\uFBAC\uFCB8\u9CB9"+
- "\uFBB0\uFCD2\u93CB\u9AFD\u91F4\u8BAC"+
- "\uA055\u9574\u95BE\u97AD\u8EE9\u92F8"+
- "\u97BE\u916C\u94AA\uFC63\u9DC6\u97B5"+
- "\u92B8\u91EF\uFEA6\u9760\u9358\u9576"+
- "\u8FAC\u91EC\u97B4\u91F7\u974A\uFB49"+
- "\u9578\u93BC\u91D6\u9355\u9356\u9851"+
- "\u8FF8\uFBC0\u93F2\u90D0\u9C44\u9255"+
- "\u9363\u91A5\uA0ED\uFD6B\u9AFE\u9351"+
- "\u8C57\uFA78\uFEA8\u9350\uFA4C\u92F7"+
- "\u9B40\uFBCE\u9B41\uFEAD\uFBD5\u8BC2"+
- "\u9A7C\u9B42\u9B43\u9E79\uFBD9\u9B44"+
- "\uA0A7\u9BF3\u8C79\u935E\u89CB\u9F53"+
- "\u93D7\uFBE1\uFED0\uFBE2\uFCE3\u9074"+
- "\uFBE6\u9BB7\u9B45\u9B47\u9F50\u9B48"+
- "\uFC5B\u98A9\u9CFD\u884C\u9B4B\uFBEC"+
- "\u8C69\u9BA8\u8AD5\uFA73\uFD59\u91A2"+
- "\uFBED\u9CA9\u8AA8\u9BC3\u8AE1\u9B4E"+
- "\u95D0\u905F\u97EE\uFC4E\u9B4F\u9B50"+
- "\u9EC6\uFC50\uFD73\uFDA7\u9DA2\uFA58"+
- "\uFA5E\uA059\uFA75\uFBBE\u9CA2\u9370"+
- "\u9371\u9377\uFEEF\u936D\uFC5D\u90B8"+
- "\u8AFC\uFB41\u9E6B\u94E3\u8EE2\u8C7D"+
- "\u8ED7\u9C4D\u96A3\u9B51\u8AC3\u96AA"+
- "\uFC68\u8B6D\uFD67\u8AE9\uFCA1\u936C"+
- "\u9B52\uFE70\uFCA8\uFCE9\u9CB4\u8AEA"+
- "\u9B53\u9B55\u96AB\uFCA7\u9B56\u8ABC"+
- "\u8ACB\u9B57\u89CD\u9B59\u9B5B\u93A5"+
- "\u9B5D\u9E4F\u93A3\u8A7B\u8B42\u9750"+
- "\u8FB3\u8A50\u9B60\u8B45\u8B46\u9DFE"+
- "\u9B62\u937B\u93B1\u8A60\u8AD8\u9B63"+
- "\u8A69\u8A47\u8ACC\u937C\u9B65\u9B66"+
- "\u8A72\u8A7A\u93AF\u8AB0\u9B68\u9EA3"+
- "\uFAEC\u8B77\u9B67\u8B59\uFCB1\uFCBB"+
- "\u9B69\u93A8\u8AE0\u9E51\u8F5F\u9B6A"+
- "\u9B6B\u97EC\u9B6C\uFE4E\uFDC2\u9B6D"+
- "\u9167\uFCCC\u93B6\u90E4\u90E5\u9EF2"+
- "\u93CA\u8BBC\u8F46\u93CF\uFCDB\uFCDC"+
- "\u93C0\uFCE6\u96E7\uFCD8\uFCD9\uFDA6"+
- "\u93CE\u95F1\u9CE9\uFCE4\u94AF\uFA77"+
- "\u93CC\u905A\u8C54\u93BF\uFB51\u93B9"+
- "\uFED7\u93B7\u93D9\u93BB\u93DA\u98A3"+
- "\u90D1\u9B6E\uFA70\u9BEB\u9B6F\uFCFC"+
- "\u8B40\uA07B\u8CA1\u97F7\u93E2\uFCD6"+
- "\u9559\u93A6\uFD40\u935F\u97F2\u9C76"+
- "\u8EF8\u8F47\u9B74\u92B4\u91ED\u96D2"+
- "\uFD46\u8F4F\u9549\u9B75\uFA5C\u9B79"+
- "\uFD4B\u96D3\uFD58\u945F\uA0F5\u9243"+
- "\u97FA\u9DD9\u97F4\u924D\uFD5B\u9B7A"+
- "\u9ED5\uFAAE\u9CC9\u9258\u8EC8\u94B4"+
- "\u93E1\u93DF\uFCF0\u93EC\u97F6\u96CF"+
- "\u93DE\u8ACF\u9BA2\uFD69\u9352\u98A2"+
- "\uFD6E\u8CA4\uFA7C\u93FA\u907C\u8F67"+
- "\u9DB7\uA0E9\uFA4E\uFDA1\u9E74\u9FBF"+
- "\u9ECB\u9BB9\u9DD4\u97B9\u8EF1\u957B"+
- "\u9ED2\u9753\u96A4\u8FBE\u94D9\u9058"+
- "\uFD79\uFD7B\u8EDA\u8EFA\u9BA5\u9ED9"+
- "\u97D4\u90BB\uFDBC\uFDC6\u9248\u92B5"+
- "\u9DC1\u92B9\u92A6\u8F4B\u9BA6\u92B6"+
- "\u8E40\u9ED8\u945E\u985F\u94CE\u924A"+
- "\uFD70\u9467\u8DEC\u9BD8\u9448\uFAC1"+
- "\u9CF7\uFDBE\u8FDA\uFDD9\uFC7E\u93F9"+
- "\uFA43\uFAEB\uFAC3\u97D3\u95F9\u9C48"+
- "\uFDD8\uA0D8\uFDD7\uFB4A\u9BAF\u944B"+
- "\uFDC9\u8EAC\uFDB2\u925A\uFCBD\u92D9"+
- "\uFDD5\u92DD\u9259\u96BA\u925B\u9BAB"+
- "\uFDDA\uFDDE\uFDD3\u8C46\uFDD6\uFDDC"+
- "\uFDDD\u90FE\uFEA1\u8BAD\u9CD8\u9E6D"+
- "\uFD7C\uFB61\u96F8\u96F0\uFCF4\uFE60"+
- "\u9852\u964F\u916E\u986D\u9864\u9453"+
- "\uFDEC\uFB78\u95BA\u985D\u92F9\u985A"+
- "\uFDF6\u93D0\u9862\u9BAD\u974F\u9BAE"+
- "\u9452\u9BB0\u91D2\u97EA\uFB6B\u91B1"+
- "\uFDF3\u92CB\u9BB1\uFCEC\u986B\u9751"+
- "\u9871\u95EF\u9EF3\u91E8\u9BBA\uFB4C"+
- "\u926A\uFDF8\u9861\u91E7\u93ED\u9744"+
- "\u91E1\uFBF5\u9869\u8A62\u9BBB\u8CA8"+
- "\u9C55\u8E77\u8AB2\u9EBC\u93E6\u93A2"+
- "\u9BBD\u94B3\u937D\u9E66\u9459\u9BBF"+
- "\u9458\u9EA5\u9BC7\uFE54\u8E74\u8BD6"+
- "\u94B6\uFD74\u98C0\u94A5\u9BC8\u95ED"+
- "\uFD7E\uFBEB\uFD7D\u976F\u9461\u9FC1"+
- "\u95D7\uFA52\u9C58\u9F68\u9BE7\uFCCE"+
- "\u96E8\uFA49\u97A1\u954D\u9EF8\uFE49"+
- "\u91CE\u9771\u8CCF\uFDB1\uFC6E\u9CF2"+
- "\u93B8\u9043\u9759\u94D7\uFE66\u947D"+
- "\uFC6F\u9246\uFA6D\u8EF7\uFBB7\u947C"+
- "\u92CD\u97B2\uFE65\u967E\u9758\u9B77"+
- "\u91CF\u94A4\u9CAD\u8BAB\u96D5\uFCB3"+
- "\u93AE\u976D\u9446\u95F7\u9C46\u955B"+
- "\u91D1\u94F4\uFE67\u92A5\uFEDF\u8CAB"+
- "\u9BC9\uFCED\uFDFA\uFCC8\uFE62\u91FC"+
- "\uFE6B\uFDF9\uFCC7\u914E\u9CB8\u9767"+
- "\u95EE\u9BB2\u9460\u94A2\u9875\u97AC"+
- "\u91D3\u987B\u8EEB\u976A\u965E\u97EB"+
- "\u9FF9\u95F8\uFEA2\u8FE6\uFE7E\u9DA4"+
- "\u9768\u8EEC\u94BD\u945B\u9CF6\uFAA7"+
- "\u9BD9\uFA5D\u9656\u9762\u94BA\uA04F"+
- "\u92D8\u9BCB\u94BB\u9D5F\u90CF\u9465"+
- "\u9F4C\u90D8\u9EBE\uFB6D\u95CA\u9DC2"+
- "\u97F8\u8FFC\u9473\u9474\uFEB7\u8A4B"+
- "\u8A55\u8B69\u8ADC\u8B76\u9BCE\u8A68"+
- "\uA0F8\u98DF\uFEB5\u9BCF\u96FB\u9BFB"+
- "\u9ECE\u8EE5\u9E7B\u9BD2\u8AA5\uFECE"+
- "\u8A45\u9DFC\uFECF\u8BA5\u8C4A\u8AEC"+
- "\uFCE0\u94AD\uFED5\u94AC\uFC5A\u9BD6"+
- "\u8A6F\u8BA9\u8E5F\u9DCB\uFCE7\u9BD7"+
- "\u93C8\u91F0\u8FE0\u9BDB\u90ED\u9BDC"+
- "\uA0EC\u98FA\u9BE0\u93C7\u9249\u96E1"+
- "\u9BE2\u9BE4\u8FE1\u9BE5\u94C0\u93C3"+
- "\u93C5\u9079\u977B\u907E\uFEE6\uFE46"+
- "\u9DB8\u9270\u95A8\u8CB0\u94C8\u98B9"+
- "\u9140\uFCBE\u9157\u8BB2\uFADF\u9BE6"+
- "\u9643\u8E44\u9C4F\uFEF4\u9BE8\u93DC"+
- "\u966F\u8E4A\u9BED\u92F6\u9DB9\u8E4E"+
- "\uFBCF\u9EC2\u94E5\u9BF0\u94E4\u9551"+
- "\u8BBB\u9BF1\u94F0\u8E64\u94EA\u8F61"+
- "\u9B64\u8E5B\u9BF2\u9FBE\u9DC9\u8E6C"+
- "\u8F73\u8CAF\u8F75\u8E71\u8E60\u8E6A"+
- "\u8C4C\u9552\u9554\u8AD4\u9DBB\u9543"+
- "\u92FE\u94F2\u94F1\uA0EA\u9DD2\uA0B1"+
- "\u91F8\u9462\u9BA4\u8EAD\u9EAD\u96D0"+
- "\uFEEE\u8AB4\u9757\u8A77\u9BF7\u8EB5"+
- "\uA06D\u8EB6\u9756\u9540\uA0F3\u94BE"+
- "\u9BFA\uFDDF\u9DBC\u94FE\u8BDB\uA0FE"+
- "\u8EC0\u9F47\u8BDE\uA0FB\u8EC3\u9649"+
- "\uFEC2\u954C\u9BFD\u90CC\u9C60\u954B"+
- "\u9BFE\u9C70\u9C43\u9C47\u8ECC\u8E54"+
- "\u8EE4\u9C49\u8B5E\u955E\u955C\u9C4B"+
- "\u8BE1\u8ED9\u9DB4\u925F\u9C4C\u8AA1"+
- "\u8EDB\u9C56\u8AA2\u9754\u9C5E\u9ED4"+
- "\u9568\uA0C3\u8AE6\uA0F7\u9C61\u9C5F"+
- "\uFC4D\u9E5B\u9E69\u9C63\uFEC7\uFEC6"+
- "\u9C67\u9C69\u8BE2\u9165\u9CE7\u8A54"+
- "\u9C6C\u9C6E\uFE5D\u9C73\u956A\u956D"+
- "\u8EF0\u8F4D\u8EF6\uFABC\u8CD5\uFBDA"+
- "\u8B4C\uFD75\u9BDD\uFAF5\u9C74\u9545"+
- "\u96C6\u8F6A\u8F4E\u9C78\uFA55\u97E4"+
- "\u9C41\u925C\u96FA\uFB66\u8E65\u9849"+
- "\uFBA8\u9842\u9C7A\u97FB\u90CA\u9C5B"+
- "\u974D\u8ED3\u9561\u9F4B\u9FB5\u93D2"+
- "\uFDAA\u9840\u9146\u9867\uFA5A\uFBA9"+
- "\u9841\u8CD3\uFCFD\uFDAB\u91BD\u8F4C"+
- "\u96C9\u8F55\uFBAE\u956F\u9C7D\uA0F0"+
- "\u946F\uFDAC\u96CB\u96CE\uA056\u9CE1"+
- "\u96C4\u8F5E\u8F6C\u8EA3\uFBB3\uFC53"+
- "\uFDB3\u8F6B\u96CA\u8F79\u9E6F\uA0C5"+
- "\uFC78\u8E42\u8F5A\u90C2\u8EA5\u9061"+
- "\u924F\u9373\uFDB5\uFECC\uFBBD\u8CD6"+
- "\u9843\u96C5\u89BC\u9CA3\u924B\u984A"+
- "\u8FA4\uA0F1\u9EFB\u9CD2\u8FA7\uFC5C"+
- "\u9845\u9046\u8CD1\uFEFA\u9560\u9F48"+
- "\u9247\u90FB\u9CA4\u9571\u9CA6\u9CA7"+
- "\u9CAA\u9ED3\u9E70\u9CAC\u8FAE\u957D"+
- "\u9CB0\u97B6\uA0BD\u8ADF\u9EAA\u8FBD"+
- "\u8FBF\u9369\u9BA7\uC8A4\uFEEA\u9BE1"+
- "\u8B41\u9DB6\uA0EB\u9BA3\u8BA1\u8FC8"+
- "\u894C\u9860\u94C7\u8B58\u95AB\u95AA"+
- "\u9CC3\u9CC4\u93D6\u9DAC\u8BE6\u8A71"+
- "\u8FD1\u99D5\u90F4\u8AA3\u9CCE\u9CD4"+
- "\u9CD5\uFBC8\u9DB3\uFC70\u8FD7\u9B73"+
- "\uFA5B\u8FD2\u9064\u98B6\u9668\u9CD6"+
- "\u98BD\u8FDC\uFEF6\u8FD9\u9541\u97F3"+
- "\u9BF8\u9E6C\u8FF2\u8FEE\u9CD7\u9E6E"+
- "\u8A40\u8FEF\u8FF4\u8FF5\u95C2\u986A"+
- "\u97CF\u9E7C\u9041\u9CDB\u9441\u9CE6"+
- "\u9DB0\u9CEA\u9CED\u9CFA\u8B62\u8A4E"+
- "\u9CCA\u8A66\u9CFB\u9CFC\u9CFE\u8A53"+
- "\u9CE5\u9D40\u9D41\u9045\u8B73\u97CA"+
- "\u9D42\u8A61\u8BAE\u8AD2\u8BA2\u9DF2"+
- "\u9D43\u9CDF\u9D44\u8ECA\u904E\u8EB3"+
- "\u9FF5\u9D45\u904F\u9D47\u89CA\u9CB5"+
- "\uFBFE\u905E\u9063\u9057\u9066\u9BC0"+
- "\uFCE5\u9162\u9067\u8FA1\u8FA2\u9D48"+
- "\uFAD3\u905D\u90B9\u906B\u8C5C\u9069"+
- "\uFE57\uFE55\u9073\u9BEF\u9CF0\u9D4B"+
- "\uFED9\uFEDA\u91E0\u91D8\u9646\u9360"+
- "\uFA53\u9CD3\u9D4E\uFB40\u8DE2\u9442"+
- "\u9056\u9865\u8C6C\uFA4A\u9D50\u9D52"+
- "\u95AF\u975A\u9349\u9747\uA0F4\u9778"+
- "\u8FCF\uFC60\u8C4E\uFC56\u91DC\u9661"+
- "\u92EC\u935D\u8EDE\u96FE\uFD4F\u95DE"+
- "\u98B0\uA040\u97BD\u977D\u97F5\u9BAC"+
- "\uFADA\u92C2\u97B1\u907B\u93FE\u947B"+
- "\u9777\uFABE\uFD43\u90C6\u90A4\u90A8"+
- "\u94A9\u90A9\u8C65\u95E0\u907D\u9265"+
- "\uFDBA\u93C4\uFEED\u9DAB\uA0E3\u9648"+
- "\u9D53\u8AA9\u9BC5\u965D\u975F\u965F"+
- "\u966E\uFB5D\u9DB1\uFEA3\u9DB2\u95AE"+
- "\uFCA3\uA0A2\u9655\u9D54\u9341\u95AD"+
- "\u91D5\u977A\uFDFC\u8E47\u93FD\u90A5"+
- "\u90AC\u95AC\u90AE\uFEA5\u9D56\u97E3"+
- "\u95E2\u9466\u9647\u91B8\u9CEC\u90AD"+
- "\u95E3\u8B4F\u8AE3\u8B4D\u95EA\u8B4E"+
- "\u8CC1\u8BED\u91D9\uA0A4\u95F5\u95F4"+
- "\u9FB3\uFEAF\uFE72\u927A\uFEAC\u95F3"+
- "\u9D58\u9372\u91C5\u9642\u90CD\u95FE"+
- "\u9159\u9C65\u97CC\u90CE\u9D59\uFCF5"+
- "\uFEFD\u9D5B\u9D5C\u937E\u98AC\u9D5E"+
- "\uFDD0\uFD60\u9CCF\u90DD\u90E0\u90F3"+
- "\u98B1\u90F0\u93BD\u95B7\u9F46\u8E4B"+
- "\u9658\u8A4C\u9D63\u9ECF\u9D65\u9D66"+
- "\u965A\u9D64\u8A6C\u8AD9\u9D67\u8A70"+
- "\u8BF3\u9150\u9CC1\u9D68\u93A7\u9674"+
- "\uA0EF\u9151\u96C1\u8C64\u9676\u9D69"+
- "\uFCA4\u9D6A\u924E\u9D6B\u9BC1\u9D6C"+
- "\u8A65\u915D\u9D6D\u915A\u8C42\u9CC0"+
- "\u916A\u9D6E\u9EA6\u9DCD\u9D6F\u89BB"+
- "\u9EF9\u96B4\u9172\u9EC8\u8B55\u9D71"+
- "\u9D72\u9ECC\u9174\u9ED0\u905C\u8ED2"+
- "\u91A8\u9177\u96BF\u96C0\u8FB1\u96B7"+
- "\u8C55\u9178\u89BE\u917C\uFB77\u9175"+
- "\u91A3\u9176\u96BE\u9179\u96B6\u91A4"+
- "\u91A6\u9D75\u9052\uA045\u91A9\u98AA"+
- "\u8C5F\u8BAA\u9CDD\u9D77\u8940\u9EEC"+
- "\u93AA\u9478\u9D7A\u8AC9\u8B4B\u9FEC"+
- "\u8AE2\u9E75\u9874\u9AC8\uA047\u8BC3"+
- "\uFC48\uFC77\u9C52\u8EFD\u8FA8\u957A"+
- "\u8FF0";
- }
-}
--- a/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -55,47 +55,35 @@
return new Encoder(this);
}
- private static class Decoder extends HKSCS.Decoder {
-
- private static DoubleByte.Decoder ms950Dec =
+ static class Decoder extends HKSCS.Decoder {
+ private static DoubleByte.Decoder ms950 =
(DoubleByte.Decoder)new MS950().newDecoder();
- /*
- * Note current decoder decodes 0x8BC2 --> U+F53A
- * ie. maps to Unicode PUA.
- * Unaccounted discrepancy between this mapping
- * inferred from MS950/windows-950 and the published
- * MS HKSCS mappings which maps 0x8BC2 --> U+5C22
- * a character defined with the Unified CJK block
- */
-
- protected char decodeDouble(int byte1, int byte2) {
- char c = super.decodeDouble(byte1, byte2);
- return (c != UNMAPPABLE_DECODING) ? c : ms950Dec.decodeDouble(byte1, byte2);
+ private static char[][] b2cBmp = new char[0x100][];
+ private static char[][] b2cSupp = new char[0x100][];
+ static {
+ initb2c(b2cBmp, HKSCSMapping.b2cBmpStr);
+ initb2c(b2cSupp, HKSCSMapping.b2cSuppStr);
}
private Decoder(Charset cs) {
- super(cs);
+ super(cs, ms950, b2cBmp, b2cSupp);
}
}
private static class Encoder extends HKSCS.Encoder {
-
- private static DoubleByte.Encoder ms950Enc =
+ private static DoubleByte.Encoder ms950 =
(DoubleByte.Encoder)new MS950().newEncoder();
- /*
- * Note current encoder encodes U+F53A --> 0x8BC2
- * Published MS HKSCS mappings show
- * U+5C22 <--> 0x8BC2
- */
- protected int encodeDouble(char ch) {
- int r = super.encodeDouble(ch);
- return (r != UNMAPPABLE_ENCODING) ? r : ms950Enc.encodeChar(ch);
+ static char[][] c2bBmp = new char[0x100][];
+ static char[][] c2bSupp = new char[0x100][];
+ static {
+ initc2b(c2bBmp, HKSCSMapping.b2cBmpStr, HKSCSMapping.pua);
+ initc2b(c2bSupp, HKSCSMapping.b2cSuppStr, null);
}
private Encoder(Charset cs) {
- super(cs);
+ super(cs, ms950, c2bBmp, c2bSupp);
}
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/nio/cs/ext/MS950_HKSCS_XP.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.nio.cs.ext;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CharsetEncoder;
+import sun.nio.cs.HistoricallyNamedCharset;
+import static sun.nio.cs.CharsetMapping.*;
+
+public class MS950_HKSCS_XP extends Charset
+{
+ public MS950_HKSCS_XP() {
+ super("x-MS950-HKSCS-XP", ExtendedCharsets.aliasesFor("x-MS950-HKSCS-XP"));
+ }
+
+ public boolean contains(Charset cs) {
+ return ((cs.name().equals("US-ASCII"))
+ || (cs instanceof MS950)
+ || (cs instanceof MS950_HKSCS_XP));
+ }
+
+ public CharsetDecoder newDecoder() {
+ return new Decoder(this);
+ }
+
+ public CharsetEncoder newEncoder() {
+ return new Encoder(this);
+ }
+
+ static class Decoder extends HKSCS.Decoder {
+ private static DoubleByte.Decoder ms950 =
+ (DoubleByte.Decoder)new MS950().newDecoder();
+
+ /*
+ * Note current decoder decodes 0x8BC2 --> U+F53A
+ * ie. maps to Unicode PUA.
+ * Unaccounted discrepancy between this mapping
+ * inferred from MS950/windows-950 and the published
+ * MS HKSCS mappings which maps 0x8BC2 --> U+5C22
+ * a character defined with the Unified CJK block
+ */
+ private static char[][] b2cBmp = new char[0x100][];
+ static {
+ initb2c(b2cBmp, HKSCS_XPMapping.b2cBmpStr);
+ }
+
+ public char decodeDoubleEx(int b1, int b2) {
+ return UNMAPPABLE_DECODING;
+ }
+
+ private Decoder(Charset cs) {
+ super(cs, ms950, b2cBmp, null);
+ }
+ }
+
+ private static class Encoder extends HKSCS.Encoder {
+ private static DoubleByte.Encoder ms950 =
+ (DoubleByte.Encoder)new MS950().newEncoder();
+
+ /*
+ * Note current encoder encodes U+F53A --> 0x8BC2
+ * Published MS HKSCS mappings show
+ * U+5C22 <--> 0x8BC2
+ */
+ static char[][] c2bBmp = new char[0x100][];
+ static {
+ initc2b(c2bBmp, HKSCS_XPMapping.b2cBmpStr, null);
+ }
+
+ public int encodeSupp(int cp) {
+ return UNMAPPABLE_ENCODING;
+ }
+
+ private Encoder(Charset cs) {
+ super(cs, ms950, c2bBmp, null);
+ }
+ }
+}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11SecureRandom.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11SecureRandom.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,7 @@
package sun.security.pkcs11;
import java.util.*;
-
+import java.io.*;
import java.security.*;
import sun.security.pkcs11.wrapper.*;
@@ -61,9 +61,28 @@
// buffer, if mixing is used
private byte[] mixBuffer;
- // bytes remaining in buffer, if mixing is used
+ // bytes remaining in mixBuffer, if mixing is used
private int buffered;
+ /*
+ * we buffer data internally for efficiency but limit the lifetime
+ * to avoid using stale bits.
+ */
+ // lifetime in ms, currently 100 ms (0.1 s)
+ private static final long MAX_IBUFFER_TIME = 100;
+
+ // size of the internal buffer
+ private static final int IBUFFER_SIZE = 32;
+
+ // internal buffer for the random bits
+ private transient byte[] iBuffer = new byte[IBUFFER_SIZE];
+
+ // number of bytes remain in iBuffer
+ private transient int ibuffered = 0;
+
+ // time that data was read into iBuffer
+ private transient long lastRead = 0L;
+
P11SecureRandom(Token token) {
this.token = token;
}
@@ -104,16 +123,29 @@
if ((bytes == null) || (bytes.length == 0)) {
return;
}
- Session session = null;
- try {
- session = token.getOpSession();
- token.p11.C_GenerateRandom(session.id(), bytes);
- mix(bytes);
- } catch (PKCS11Exception e) {
- throw new ProviderException("nextBytes() failed", e);
- } finally {
- token.releaseSession(session);
+ if (bytes.length <= IBUFFER_SIZE) {
+ int ofs = 0;
+ synchronized (iBuffer) {
+ while (ofs < bytes.length) {
+ long time = System.currentTimeMillis();
+ // refill the internal buffer if empty or stale
+ if ((ibuffered == 0) ||
+ !(time - lastRead < MAX_IBUFFER_TIME)) {
+ lastRead = time;
+ implNextBytes(iBuffer);
+ ibuffered = IBUFFER_SIZE;
+ }
+ // copy the buffered bytes into 'bytes'
+ while ((ofs < bytes.length) && (ibuffered > 0)) {
+ bytes[ofs++] = iBuffer[IBUFFER_SIZE - ibuffered--];
+ }
+ }
+ }
+ } else {
+ // avoid using the buffer - just fill bytes directly
+ implNextBytes(bytes);
}
+
}
// see JCA spec
@@ -143,4 +175,26 @@
}
}
+ // fill up the specified buffer with random bytes, and mix them
+ private void implNextBytes(byte[] bytes) {
+ Session session = null;
+ try {
+ session = token.getOpSession();
+ token.p11.C_GenerateRandom(session.id(), bytes);
+ mix(bytes);
+ } catch (PKCS11Exception e) {
+ throw new ProviderException("nextBytes() failed", e);
+ } finally {
+ token.releaseSession(session);
+ }
+ }
+
+ private void readObject(ObjectInputStream in)
+ throws IOException, ClassNotFoundException {
+ in.defaultReadObject();
+ // assign default values to non-null transient fields
+ iBuffer = new byte[IBUFFER_SIZE];
+ ibuffered = 0;
+ lastRead = 0L;
+ }
}
--- a/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -30,8 +30,7 @@
import java.nio.ByteBuffer;
import java.security.*;
-import java.security.interfaces.ECPublicKey;
-
+import java.security.interfaces.*;
import sun.nio.ch.DirectBuffer;
import sun.security.util.*;
@@ -88,7 +87,7 @@
// mechanism id
private final long mechanism;
- // digest algorithm OID, if we do RSA padding ourselves
+ // digest algorithm OID, if we encode RSA signature ourselves
private final ObjectIdentifier digestOID;
// type, one of T_* below
@@ -103,7 +102,7 @@
// associated session, if any
private Session session;
- // mode, on of M_* below
+ // mode, one of M_* below
private int mode;
// flag indicating whether an operation is initialized
@@ -137,6 +136,9 @@
this.token = token;
this.algorithm = algorithm;
this.mechanism = mechanism;
+ byte[] buffer = null;
+ ObjectIdentifier digestOID = null;
+ MessageDigest md = null;
switch ((int)mechanism) {
case (int)CKM_MD2_RSA_PKCS:
case (int)CKM_MD5_RSA_PKCS:
@@ -146,34 +148,25 @@
case (int)CKM_SHA512_RSA_PKCS:
keyAlgorithm = "RSA";
type = T_UPDATE;
- digestOID = null;
buffer = new byte[1];
- md = null;
break;
case (int)CKM_DSA_SHA1:
keyAlgorithm = "DSA";
type = T_UPDATE;
- digestOID = null;
buffer = new byte[1];
- md = null;
break;
case (int)CKM_ECDSA_SHA1:
keyAlgorithm = "EC";
type = T_UPDATE;
- digestOID = null;
buffer = new byte[1];
- md = null;
break;
case (int)CKM_DSA:
keyAlgorithm = "DSA";
- digestOID = null;
if (algorithm.equals("DSA")) {
type = T_DIGEST;
md = MessageDigest.getInstance("SHA-1");
- buffer = null;
} else if (algorithm.equals("RawDSA")) {
type = T_RAW;
- md = null;
buffer = new byte[20];
} else {
throw new ProviderException(algorithm);
@@ -181,10 +174,8 @@
break;
case (int)CKM_ECDSA:
keyAlgorithm = "EC";
- digestOID = null;
if (algorithm.equals("NONEwithECDSA")) {
type = T_RAW;
- md = null;
buffer = new byte[RAW_ECDSA_MAX];
} else {
String digestAlg;
@@ -201,14 +192,12 @@
}
type = T_DIGEST;
md = MessageDigest.getInstance(digestAlg);
- buffer = null;
}
break;
case (int)CKM_RSA_PKCS:
case (int)CKM_RSA_X_509:
keyAlgorithm = "RSA";
type = T_DIGEST;
- buffer = null;
if (algorithm.equals("MD5withRSA")) {
md = MessageDigest.getInstance("MD5");
digestOID = AlgorithmId.MD5_oid;
@@ -234,6 +223,9 @@
default:
throw new ProviderException("Unknown mechanism: " + mechanism);
}
+ this.buffer = buffer;
+ this.digestOID = digestOID;
+ this.md = md;
session = token.getOpSession();
}
@@ -326,9 +318,52 @@
}
}
+ private void checkRSAKeyLength(int len) throws InvalidKeyException {
+ RSAPadding padding;
+ try {
+ padding = RSAPadding.getInstance
+ (RSAPadding.PAD_BLOCKTYPE_1, (len + 7) >> 3);
+ } catch (InvalidAlgorithmParameterException iape) {
+ throw new InvalidKeyException(iape.getMessage());
+ }
+ int maxDataSize = padding.getMaxDataSize();
+ int encodedLength;
+ if (algorithm.equals("MD5withRSA") ||
+ algorithm.equals("MD2withRSA")) {
+ encodedLength = 34;
+ } else if (algorithm.equals("SHA1withRSA")) {
+ encodedLength = 35;
+ } else if (algorithm.equals("SHA256withRSA")) {
+ encodedLength = 51;
+ } else if (algorithm.equals("SHA384withRSA")) {
+ encodedLength = 67;
+ } else if (algorithm.equals("SHA512withRSA")) {
+ encodedLength = 83;
+ } else {
+ throw new ProviderException("Unknown signature algo: " + algorithm);
+ }
+ if (encodedLength > maxDataSize) {
+ throw new InvalidKeyException
+ ("Key is too short for this signature algorithm");
+ }
+ }
+
// see JCA spec
protected void engineInitVerify(PublicKey publicKey)
throws InvalidKeyException {
+ if (publicKey == null) {
+ throw new InvalidKeyException("Key must not be null");
+ }
+ // Need to check RSA key length whenever a new key is set
+ if (keyAlgorithm.equals("RSA") && publicKey != p11Key) {
+ int keyLen;
+ if (publicKey instanceof P11Key) {
+ keyLen = ((P11Key) publicKey).keyLength();
+ } else {
+ keyLen = ((RSAKey) publicKey).getModulus().bitLength();
+ }
+ checkRSAKeyLength(keyLen);
+ }
cancelOperation();
mode = M_VERIFY;
p11Key = P11KeyFactory.convertKey(token, publicKey, keyAlgorithm);
@@ -338,6 +373,19 @@
// see JCA spec
protected void engineInitSign(PrivateKey privateKey)
throws InvalidKeyException {
+ if (privateKey == null) {
+ throw new InvalidKeyException("Key must not be null");
+ }
+ // Need to check RSA key length whenever a new key is set
+ if (keyAlgorithm.equals("RSA") && privateKey != p11Key) {
+ int keyLen;
+ if (privateKey instanceof P11Key) {
+ keyLen = ((P11Key) privateKey).keyLength;
+ } else {
+ keyLen = ((RSAKey) privateKey).getModulus().bitLength();
+ }
+ checkRSAKeyLength(keyLen);
+ }
cancelOperation();
mode = M_SIGN;
p11Key = P11KeyFactory.convertKey(token, privateKey, keyAlgorithm);
--- a/jdk/src/share/classes/sun/security/provider/PolicyFile.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/provider/PolicyFile.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,9 @@
import javax.sound.sampled.AudioPermission;
import javax.net.ssl.SSLPermission;
*/
+import sun.misc.JavaSecurityProtectionDomainAccess;
+import static sun.misc.JavaSecurityProtectionDomainAccess.ProtectionDomainCache;
+import sun.misc.SharedSecrets;
import sun.security.util.Password;
import sun.security.util.PolicyUtil;
import sun.security.util.PropertyExpander;
@@ -1102,7 +1105,7 @@
/**
* Refreshes the policy object by re-reading all the policy files.
*/
- public void refresh() {
+ @Override public void refresh() {
init(url);
}
@@ -1119,9 +1122,10 @@
*
* @see java.security.ProtectionDomain
*/
+ @Override
public boolean implies(ProtectionDomain pd, Permission p) {
PolicyInfo pi = policyInfo.get();
- Map<ProtectionDomain, PermissionCollection> pdMap = pi.getPdMapping();
+ ProtectionDomainCache pdMap = pi.getPdMapping();
PermissionCollection pc = pdMap.get(pd);
@@ -1167,6 +1171,7 @@
* @return the Permissions granted to the provided
* <code>ProtectionDomain</code>.
*/
+ @Override
public PermissionCollection getPermissions(ProtectionDomain domain) {
Permissions perms = new Permissions();
@@ -1202,6 +1207,7 @@
*
* @return the set of permissions according to the policy.
*/
+ @Override
public PermissionCollection getPermissions(CodeSource codesource) {
return getPermissions(new Permissions(), codesource);
}
@@ -2119,7 +2125,7 @@
return codesource;
}
- public String toString(){
+ @Override public String toString(){
StringBuilder sb = new StringBuilder();
sb.append(ResourcesMgr.getString("("));
sb.append(getCodeSource());
@@ -2255,7 +2261,7 @@
*
* @return false.
*/
- public boolean implies(Permission p) {
+ @Override public boolean implies(Permission p) {
return false;
}
@@ -2272,7 +2278,7 @@
* type (class) name, permission name, actions, and
* certificates as this object.
*/
- public boolean equals(Object obj) {
+ @Override public boolean equals(Object obj) {
if (obj == this)
return true;
@@ -2320,7 +2326,7 @@
*
* @return a hash code value for this object.
*/
- public int hashCode() {
+ @Override public int hashCode() {
int hash = type.hashCode();
if (name != null)
hash ^= name.hashCode();
@@ -2339,7 +2345,7 @@
*
* @return the empty string "".
*/
- public String getActions() {
+ @Override public String getActions() {
return "";
}
@@ -2366,7 +2372,7 @@
*
* @return information about this SelfPermission.
*/
- public String toString() {
+ @Override public String toString() {
return "(SelfPermission " + type + " " + name + " " + actions + ")";
}
}
@@ -2388,7 +2394,7 @@
final Map aliasMapping;
// Maps ProtectionDomain to PermissionCollection
- private final Map<ProtectionDomain, PermissionCollection>[] pdMapping;
+ private final ProtectionDomainCache[] pdMapping;
private java.util.Random random;
PolicyInfo(int numCaches) {
@@ -2397,16 +2403,17 @@
Collections.synchronizedList(new ArrayList<PolicyEntry>(2));
aliasMapping = Collections.synchronizedMap(new HashMap(11));
- pdMapping = new Map[numCaches];
+ pdMapping = new ProtectionDomainCache[numCaches];
+ JavaSecurityProtectionDomainAccess jspda
+ = SharedSecrets.getJavaSecurityProtectionDomainAccess();
for (int i = 0; i < numCaches; i++) {
- pdMapping[i] = Collections.synchronizedMap
- (new WeakHashMap<ProtectionDomain, PermissionCollection>());
+ pdMapping[i] = jspda.getProtectionDomainCache();
}
if (numCaches > 1) {
random = new java.util.Random();
}
}
- Map<ProtectionDomain, PermissionCollection> getPdMapping() {
+ ProtectionDomainCache getPdMapping() {
if (pdMapping.length == 1) {
return pdMapping[0];
} else {
--- a/jdk/src/share/classes/sun/security/provider/X509Factory.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/provider/X509Factory.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
package sun.security.provider;
import java.io.*;
-import java.util.Collection;
import java.util.*;
import java.security.cert.*;
import sun.security.x509.X509CertImpl;
@@ -37,6 +36,7 @@
import sun.security.util.DerValue;
import sun.security.util.Cache;
import sun.misc.BASE64Decoder;
+import sun.security.pkcs.ParsingException;
/**
* This class defines a certificate factory for X.509 v3 certificates &
@@ -62,10 +62,6 @@
public static final String BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
public static final String END_CERT = "-----END CERTIFICATE-----";
- private static final int defaultExpectedLineLength = 80;
-
- private static final char[] endBoundary = "-----END".toCharArray();
-
private static final int ENC_MAX_LENGTH = 4096 * 1024; // 4 MB MAX
private static final Cache certCache = Cache.newSoftMemoryCache(750);
@@ -92,13 +88,7 @@
throw new CertificateException("Missing input stream");
}
try {
- if (is.markSupported() == false) {
- // consume the entire input stream
- byte[] totalBytes;
- totalBytes = getTotalBytes(new BufferedInputStream(is));
- is = new ByteArrayInputStream(totalBytes);
- }
- byte[] encoding = readSequence(is);
+ byte[] encoding = readOneBlock(is);
if (encoding != null) {
X509CertImpl cert = (X509CertImpl)getFromCache(certCache, encoding);
if (cert != null) {
@@ -108,19 +98,7 @@
addToCache(certCache, cert.getEncodedInternal(), cert);
return cert;
} else {
- X509CertImpl cert;
- // determine if binary or Base64 encoding. If Base64 encoding,
- // the certificate must be bounded at the beginning by
- // "-----BEGIN".
- if (isBase64(is)) {
- // Base64
- byte[] data = base64_to_binary(is);
- cert = new X509CertImpl(data);
- } else {
- // binary
- cert = new X509CertImpl(new DerValue(is));
- }
- return intern(cert);
+ throw new IOException("Empty input");
}
} catch (IOException ioe) {
throw (CertificateException)new CertificateException
@@ -129,73 +107,21 @@
}
/**
- * Read a DER SEQUENCE from an InputStream and return the encoding.
- * If data does not represent a SEQUENCE, it uses indefinite length
- * encoding, or is longer than ENC_MAX_LENGTH, the stream is reset
- * and this method returns null.
- */
- private static byte[] readSequence(InputStream in) throws IOException {
- in.mark(ENC_MAX_LENGTH);
- byte[] b = new byte[4];
- int i = readFully(in, b, 0, b.length);
- if ((i != b.length) || (b[0] != 0x30)) { // first byte must be SEQUENCE
- in.reset();
- return null;
- }
- i = b[1] & 0xff;
- int totalLength;
- if (i < 0x80) {
- int valueLength = i;
- totalLength = valueLength + 2;
- } else if (i == 0x81) {
- int valueLength = b[2] & 0xff;
- totalLength = valueLength + 3;
- } else if (i == 0x82) {
- int valueLength = ((b[2] & 0xff) << 8) | (b[3] & 0xff);
- totalLength = valueLength + 4;
- } else { // ignore longer length forms
- in.reset();
- return null;
- }
- if (totalLength > ENC_MAX_LENGTH) {
- in.reset();
- return null;
- }
- byte[] encoding = new byte[totalLength];
- if( totalLength < b.length ) {
- in.reset();
- i = readFully(in, encoding, 0, totalLength);
- if( i != totalLength ) {
- in.reset();
- return null;
- }
- } else {
- System.arraycopy(b, 0, encoding, 0, b.length);
- int n = totalLength - b.length;
- i = readFully(in, encoding, b.length, n);
- if (i != n) {
- in.reset();
- return null;
- }
- }
- return encoding;
- }
-
- /**
* Read from the stream until length bytes have been read or EOF has
* been reached. Return the number of bytes actually read.
*/
- private static int readFully(InputStream in, byte[] buffer, int offset,
+ private static int readFully(InputStream in, ByteArrayOutputStream bout,
int length) throws IOException {
int read = 0;
+ byte[] buffer = new byte[2048];
while (length > 0) {
- int n = in.read(buffer, offset, length);
+ int n = in.read(buffer, 0, length<2048?length:2048);
if (n <= 0) {
break;
}
+ bout.write(buffer, 0, n);
read += n;
length -= n;
- offset += n;
}
return read;
}
@@ -309,21 +235,11 @@
throw new CertificateException("Missing input stream");
}
try {
- if (inStream.markSupported() == false) {
- // consume the entire input stream
- byte[] totalBytes;
- totalBytes = getTotalBytes(new BufferedInputStream(inStream));
- inStream = new ByteArrayInputStream(totalBytes);
- }
- // determine if binary or Base64 encoding. If Base64 encoding,
- // each certificate must be bounded at the beginning by
- // "-----BEGIN".
- if (isBase64(inStream)) {
- // Base64
- byte[] data = base64_to_binary(inStream);
- return new X509CertPath(new ByteArrayInputStream(data));
+ byte[] encoding = readOneBlock(inStream);
+ if (encoding != null) {
+ return new X509CertPath(new ByteArrayInputStream(encoding));
} else {
- return new X509CertPath(inStream);
+ throw new IOException("Empty input");
}
} catch (IOException ioe) {
throw new CertificateException(ioe.getMessage());
@@ -350,21 +266,11 @@
throw new CertificateException("Missing input stream");
}
try {
- if (inStream.markSupported() == false) {
- // consume the entire input stream
- byte[] totalBytes;
- totalBytes = getTotalBytes(new BufferedInputStream(inStream));
- inStream = new ByteArrayInputStream(totalBytes);
- }
- // determine if binary or Base64 encoding. If Base64 encoding,
- // each certificate must be bounded at the beginning by
- // "-----BEGIN".
- if (isBase64(inStream)) {
- // Base64
- byte[] data = base64_to_binary(inStream);
+ byte[] data = readOneBlock(inStream);
+ if (data != null) {
return new X509CertPath(new ByteArrayInputStream(data), encoding);
} else {
- return(new X509CertPath(inStream, encoding));
+ throw new IOException("Empty input");
}
} catch (IOException ioe) {
throw new CertificateException(ioe.getMessage());
@@ -426,11 +332,6 @@
throw new CertificateException("Missing input stream");
}
try {
- if (is.markSupported() == false) {
- // consume the entire input stream
- is = new ByteArrayInputStream
- (getTotalBytes(new BufferedInputStream(is)));
- }
return parseX509orPKCS7Cert(is);
} catch (IOException ioe) {
throw new CertificateException(ioe);
@@ -458,13 +359,7 @@
throw new CRLException("Missing input stream");
}
try {
- if (is.markSupported() == false) {
- // consume the entire input stream
- byte[] totalBytes;
- totalBytes = getTotalBytes(new BufferedInputStream(is));
- is = new ByteArrayInputStream(totalBytes);
- }
- byte[] encoding = readSequence(is);
+ byte[] encoding = readOneBlock(is);
if (encoding != null) {
X509CRLImpl crl = (X509CRLImpl)getFromCache(crlCache, encoding);
if (crl != null) {
@@ -474,19 +369,7 @@
addToCache(crlCache, crl.getEncodedInternal(), crl);
return crl;
} else {
- X509CRLImpl crl;
- // determine if binary or Base64 encoding. If Base64 encoding,
- // the CRL must be bounded at the beginning by
- // "-----BEGIN".
- if (isBase64(is)) {
- // Base64
- byte[] data = base64_to_binary(is);
- crl = new X509CRLImpl(data);
- } else {
- // binary
- crl = new X509CRLImpl(new DerValue(is));
- }
- return intern(crl);
+ throw new IOException("Empty input");
}
} catch (IOException ioe) {
throw new CRLException(ioe.getMessage());
@@ -504,19 +387,13 @@
*
* @exception CRLException on parsing errors.
*/
- public Collection<? extends java.security.cert.CRL> engineGenerateCRLs(InputStream
-is)
- throws CRLException
+ public Collection<? extends java.security.cert.CRL> engineGenerateCRLs(
+ InputStream is) throws CRLException
{
if (is == null) {
throw new CRLException("Missing input stream");
}
try {
- if (is.markSupported() == false) {
- // consume the entire input stream
- is = new ByteArrayInputStream
- (getTotalBytes(new BufferedInputStream(is)));
- }
return parseX509orPKCS7CRL(is);
} catch (IOException ioe) {
throw new CRLException(ioe.getMessage());
@@ -533,42 +410,25 @@
throws CertificateException, IOException
{
Collection<X509CertImpl> coll = new ArrayList<X509CertImpl>();
- boolean first = true;
- while (is.available() != 0) {
- // determine if binary or Base64 encoding. If Base64 encoding,
- // each certificate must be bounded at the beginning by
- // "-----BEGIN".
- InputStream is2 = is;
- if (isBase64(is2)) {
- // Base64
- is2 = new ByteArrayInputStream(base64_to_binary(is2));
+ byte[] data = readOneBlock(is);
+ if (data == null) {
+ return new ArrayList<X509CertImpl>(0);
+ }
+ try {
+ PKCS7 pkcs7 = new PKCS7(data);
+ X509Certificate[] certs = pkcs7.getCertificates();
+ // certs are optional in PKCS #7
+ if (certs != null) {
+ return Arrays.asList(certs);
+ } else {
+ // no crls provided
+ return new ArrayList<X509Certificate>(0);
}
- if (first)
- is2.mark(is2.available());
- try {
- // treat as X.509 cert
- coll.add(intern(new X509CertImpl(new DerValue(is2))));
- } catch (CertificateException e) {
- Throwable cause = e.getCause();
- // only treat as PKCS#7 if this is the first cert parsed
- // and the root cause of the decoding failure is an IOException
- if (first && cause != null && (cause instanceof IOException)) {
- // treat as PKCS#7
- is2.reset();
- PKCS7 pkcs7 = new PKCS7(is2);
- X509Certificate[] certs = pkcs7.getCertificates();
- // certs are optional in PKCS #7
- if (certs != null) {
- return Arrays.asList(certs);
- } else {
- // no certs provided
- return new ArrayList<X509Certificate>(0);
- }
- } else {
- throw e;
- }
+ } catch (ParsingException e) {
+ while (data != null) {
+ coll.add(new X509CertImpl(data));
+ data = readOneBlock(is);
}
- first = false;
}
return coll;
}
@@ -583,162 +443,215 @@
throws CRLException, IOException
{
Collection<X509CRLImpl> coll = new ArrayList<X509CRLImpl>();
- boolean first = true;
- while (is.available() != 0) {
- // determine if binary or Base64 encoding. If Base64 encoding,
- // the CRL must be bounded at the beginning by
- // "-----BEGIN".
- InputStream is2 = is;
- if (isBase64(is)) {
- // Base64
- is2 = new ByteArrayInputStream(base64_to_binary(is2));
+ byte[] data = readOneBlock(is);
+ if (data == null) {
+ return new ArrayList<X509CRL>(0);
+ }
+ try {
+ PKCS7 pkcs7 = new PKCS7(data);
+ X509CRL[] crls = pkcs7.getCRLs();
+ // CRLs are optional in PKCS #7
+ if (crls != null) {
+ return Arrays.asList(crls);
+ } else {
+ // no crls provided
+ return new ArrayList<X509CRL>(0);
}
- if (first)
- is2.mark(is2.available());
- try {
- // treat as X.509 CRL
- coll.add(new X509CRLImpl(is2));
- } catch (CRLException e) {
- // only treat as PKCS#7 if this is the first CRL parsed
- if (first) {
- is2.reset();
- PKCS7 pkcs7 = new PKCS7(is2);
- X509CRL[] crls = pkcs7.getCRLs();
- // CRLs are optional in PKCS #7
- if (crls != null) {
- return Arrays.asList(crls);
- } else {
- // no crls provided
- return new ArrayList<X509CRL>(0);
- }
- }
+ } catch (ParsingException e) {
+ while (data != null) {
+ coll.add(new X509CRLImpl(data));
+ data = readOneBlock(is);
}
- first = false;
}
return coll;
}
- /*
- * Converts a Base64-encoded X.509 certificate or X.509 CRL or PKCS#7 data
- * to binary encoding.
- * In all cases, the data must be bounded at the beginning by
- * "-----BEGIN", and must be bounded at the end by "-----END".
+ /**
+ * Returns an ASN.1 SEQUENCE from a stream, which might be a BER-encoded
+ * binary block or a PEM-style BASE64-encoded ASCII data. In the latter
+ * case, it's de-BASE64'ed before return.
+ *
+ * After the reading, the input stream pointer is after the BER block, or
+ * after the newline character after the -----END SOMETHING----- line.
+ *
+ * @param is the InputStream
+ * @returns byte block or null if end of stream
+ * @throws IOException If any parsing error
*/
- private byte[] base64_to_binary(InputStream is)
- throws IOException
- {
- long len = 0; // total length of base64 encoding, including boundaries
-
- is.mark(is.available());
-
- BufferedInputStream bufin = new BufferedInputStream(is);
- BufferedReader br =
- new BufferedReader(new InputStreamReader(bufin, "ASCII"));
+ private static byte[] readOneBlock(InputStream is) throws IOException {
- // First read all of the data that is found between
- // the "-----BEGIN" and "-----END" boundaries into a buffer.
- String temp;
- while (true) {
- temp=readLine(br);
- if (temp == null) {
- throw new IOException("Unsupported encoding");
+ // The first character of a BLOCK.
+ int c = is.read();
+ if (c == -1) {
+ return null;
+ }
+ if (c == DerValue.tag_Sequence) {
+ ByteArrayOutputStream bout = new ByteArrayOutputStream(2048);
+ bout.write(c);
+ readBERInternal(is, bout, c);
+ return bout.toByteArray();
+ } else {
+ // Read BASE64 encoded data, might skip info at the beginning
+ char[] data = new char[2048];
+ int pos = 0;
+
+ // Step 1: Read until header is found
+ int hyphen = (c=='-') ? 1: 0; // count of consequent hyphens
+ int last = (c=='-') ? -1: c; // the char before hyphen
+ while (true) {
+ int next = is.read();
+ if (next == -1) {
+ // We accept useless data after the last block,
+ // say, empty lines.
+ return null;
+ }
+ if (next == '-') {
+ hyphen++;
+ } else {
+ hyphen = 0;
+ last = next;
+ }
+ if (hyphen == 5 && (last==-1 || last=='\r' || last=='\n')) {
+ break;
+ }
}
- len += temp.length();
- if (temp.startsWith("-----BEGIN")) {
- break;
- }
- }
- StringBuffer strBuf = new StringBuffer();
- while ((temp=readLine(br))!=null && !temp.startsWith("-----END")) {
- strBuf.append(temp);
- }
- if (temp == null) {
- throw new IOException("Unsupported encoding");
- } else {
- len += temp.length();
- }
- // consume only as much as was needed
- len += strBuf.length();
- is.reset();
- is.skip(len);
-
- // Now, that data is supposed to be a single X.509 certificate or
- // X.509 CRL or PKCS#7 formatted data... Base64 encoded.
- // Decode into binary and return the result.
- BASE64Decoder decoder = new BASE64Decoder();
- return decoder.decodeBuffer(strBuf.toString());
- }
+ // Step 2: Read the rest of header, determine the line end
+ int end;
+ while (true) {
+ int next = is.read();
+ if (next == -1) {
+ throw new IOException("Incomplete data");
+ }
+ if (next == '\n') {
+ end = '\n';
+ break;
+ }
+ if (next == '\r') {
+ next = is.read();
+ if (next == -1) {
+ throw new IOException("Incomplete data");
+ }
+ if (next == '\n') {
+ end = '\n';
+ } else {
+ end = '\r';
+ data[pos++] = (char)next;
+ }
+ break;
+ }
+ }
- /*
- * Reads the entire input stream into a byte array.
- */
- private byte[] getTotalBytes(InputStream is) throws IOException {
- byte[] buffer = new byte[8192];
- ByteArrayOutputStream baos = new ByteArrayOutputStream(2048);
- int n;
- baos.reset();
- while ((n = is.read(buffer, 0, buffer.length)) != -1) {
- baos.write(buffer, 0, n);
- }
- return baos.toByteArray();
- }
+ // Step 3: Read the data
+ while (true) {
+ int next = is.read();
+ if (next == -1) {
+ throw new IOException("Incomplete data");
+ }
+ if (next != '-') {
+ data[pos++] = (char)next;
+ if (pos >= data.length) {
+ data = Arrays.copyOf(data, data.length+1024);
+ }
+ } else {
+ break;
+ }
+ }
- /*
- * Determines if input is binary or Base64 encoded.
- */
- private boolean isBase64(InputStream is) throws IOException {
- if (is.available() >= 1) {
- is.mark(1);
- int c1 = is.read();
- is.reset();
- if (c1 != DerValue.tag_Sequence) {
- return true;
- } else {
- return false;
+ // Step 4: Consume the footer
+ while (true) {
+ int next = is.read();
+ // Add next == '\n' for maximum safety, in case endline
+ // is not consistent.
+ if (next == -1 || next == end || next == '\n') {
+ break;
+ }
}
- } else {
- return false;
+
+ BASE64Decoder decoder = new BASE64Decoder();
+ return decoder.decodeBuffer(new String(data, 0, pos));
}
}
- /*
- * Read a line of text. A line is considered to be terminated by any one
- * of a line feed ('\n'), a carriage return ('\r'), a carriage return
- * followed immediately by a linefeed, or an end-of-certificate marker.
+ /**
+ * Read one BER data block. This method is aware of indefinite-length BER
+ * encoding and will read all of the sub-sections in a recursive way
*
- * @return A String containing the contents of the line, including
- * any line-termination characters, or null if the end of the
- * stream has been reached.
+ * @param is Read from this InputStream
+ * @param bout Write into this OutputStream
+ * @param tag Tag already read (-1 mean not read)
+ * @returns The current tag, used to check EOC in indefinite-length BER
+ * @throws IOException Any parsing error
*/
- private String readLine(BufferedReader br) throws IOException {
- int c;
- int i = 0;
- boolean isMatch = true;
- boolean matched = false;
- StringBuffer sb = new StringBuffer(defaultExpectedLineLength);
- do {
- c = br.read();
- if (isMatch && (i < endBoundary.length)) {
- isMatch = ((char)c != endBoundary[i++]) ? false : true;
+ private static int readBERInternal(InputStream is,
+ ByteArrayOutputStream bout, int tag) throws IOException {
+
+ if (tag == -1) { // Not read before the call, read now
+ tag = is.read();
+ if (tag == -1) {
+ throw new IOException("BER/DER tag info absent");
+ }
+ if ((tag & 0x1f) == 0x1f) {
+ throw new IOException("Multi octets tag not supported");
+ }
+ bout.write(tag);
+ }
+
+ int n = is.read();
+ if (n == -1) {
+ throw new IOException("BER/DER length info ansent");
+ }
+ bout.write(n);
+
+ int length;
+
+ if (n == 0x80) { // Indefinite-length encoding
+ if ((tag & 0x20) != 0x20) {
+ throw new IOException(
+ "Non constructed encoding must have definite length");
+ }
+ while (true) {
+ int subTag = readBERInternal(is, bout, -1);
+ if (subTag == 0) { // EOC, end of indefinite-length section
+ break;
+ }
}
- if (!matched)
- matched = (isMatch && (i == endBoundary.length));
- sb.append((char)c);
- } while ((c != -1) && (c != '\n') && (c != '\r'));
-
- if (!matched && c == -1) {
- return null;
- }
- if (c == '\r') {
- br.mark(1);
- int c2 = br.read();
- if (c2 == '\n') {
- sb.append((char)c);
- } else {
- br.reset();
+ } else {
+ if (n < 0x80) {
+ length = n;
+ } else if (n == 0x81) {
+ length = is.read();
+ if (length == -1) {
+ throw new IOException("Incomplete BER/DER length info");
+ }
+ bout.write(length);
+ } else if (n == 0x82) {
+ int highByte = is.read();
+ int lowByte = is.read();
+ if (lowByte == -1) {
+ throw new IOException("Incomplete BER/DER length info");
+ }
+ bout.write(highByte);
+ bout.write(lowByte);
+ length = (highByte << 8) | lowByte;
+ } else if (n == 0x83) {
+ int highByte = is.read();
+ int midByte = is.read();
+ int lowByte = is.read();
+ if (lowByte == -1) {
+ throw new IOException("Incomplete BER/DER length info");
+ }
+ bout.write(highByte);
+ bout.write(midByte);
+ bout.write(lowByte);
+ length = (highByte << 16) | (midByte << 8) | lowByte;
+ } else { // ignore longer length forms
+ throw new IOException("Invalid BER/DER data (too huge?)");
+ }
+ if (readFully(is, bout, length) != length) {
+ throw new IOException("Incomplete BER/DER data");
}
}
- return sb.toString();
+ return tag;
}
}
--- a/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/ssl/ClientHandshaker.java Tue Apr 20 01:24:48 2010 -0700
@@ -93,13 +93,17 @@
* Constructors
*/
ClientHandshaker(SSLSocketImpl socket, SSLContextImpl context,
- ProtocolList enabledProtocols) {
+ ProtocolList enabledProtocols,
+ ProtocolVersion activeProtocolVersion) {
super(socket, context, enabledProtocols, true, true);
+ this.activeProtocolVersion = activeProtocolVersion;
}
ClientHandshaker(SSLEngineImpl engine, SSLContextImpl context,
- ProtocolList enabledProtocols) {
+ ProtocolList enabledProtocols,
+ ProtocolVersion activeProtocolVersion) {
super(engine, context, enabledProtocols, true, true);
+ this.activeProtocolVersion = activeProtocolVersion;
}
/*
@@ -275,7 +279,42 @@
// sent the "client hello" but the server's not seen it.
//
if (state < HandshakeMessage.ht_client_hello) {
- kickstart();
+ if (!renegotiable) { // renegotiation is not allowed.
+ if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
+ // response with a no_negotiation warning,
+ warningSE(Alerts.alert_no_negotiation);
+
+ // invalidate the handshake so that the caller can
+ // dispose this object.
+ invalidated = true;
+
+ // If there is still unread block in the handshake
+ // input stream, it would be truncated with the disposal
+ // and the next handshake message will become incomplete.
+ //
+ // However, according to SSL/TLS specifications, no more
+ // handshake message could immediately follow ClientHello
+ // or HelloRequest. But in case of any improper messages,
+ // we'd better check to ensure there is no remaining bytes
+ // in the handshake input stream.
+ if (input.available() > 0) {
+ fatalSE(Alerts.alert_unexpected_message,
+ "HelloRequest followed by an unexpected " +
+ "handshake message");
+ }
+
+ } else {
+ // For SSLv3, send the handshake_failure fatal error.
+ // Note that SSLv3 does not define a no_negotiation alert
+ // like TLSv1. However we cannot ignore the message
+ // simply, otherwise the other side was waiting for a
+ // response that would never come.
+ fatalSE(Alerts.alert_handshake_failure,
+ "renegotiation is not allowed");
+ }
+ } else {
+ kickstart();
+ }
}
}
--- a/jdk/src/share/classes/sun/security/ssl/Handshaker.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/ssl/Handshaker.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -60,9 +60,12 @@
*/
abstract class Handshaker {
- // current protocol version
+ // protocol version being established using this Handshaker
ProtocolVersion protocolVersion;
+ // the currently active protocol version during a renegotiation
+ ProtocolVersion activeProtocolVersion;
+
// list of enabled protocols
ProtocolList enabledProtocols;
@@ -124,6 +127,13 @@
/* Class and subclass dynamic debugging support */
static final Debug debug = Debug.getInstance("ssl");
+ // By default, disable the unsafe legacy session renegotiation
+ static final boolean renegotiable = Debug.getBooleanProperty(
+ "sun.security.ssl.allowUnsafeRenegotiation", false);
+
+ // need to dispose the object when it is invalidated
+ boolean invalidated;
+
Handshaker(SSLSocketImpl c, SSLContextImpl context,
ProtocolList enabledProtocols, boolean needCertVerify,
boolean isClient) {
@@ -144,6 +154,7 @@
this.sslContext = context;
this.isClient = isClient;
enableNewSession = true;
+ invalidated = false;
setCipherSuite(CipherSuite.C_NULL);
@@ -489,7 +500,9 @@
*/
void processLoop() throws IOException {
- while (input.available() > 0) {
+ // need to read off 4 bytes at least to get the handshake
+ // message type and length.
+ while (input.available() >= 4) {
byte messageType;
int messageLen;
--- a/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/ssl/SSLEngineImpl.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -433,11 +433,12 @@
connectionState = cs_RENEGOTIATE;
}
if (roleIsServer) {
- handshaker = new ServerHandshaker
- (this, sslContext, enabledProtocols, doClientAuth);
+ handshaker = new ServerHandshaker(this, sslContext,
+ enabledProtocols, doClientAuth,
+ connectionState == cs_RENEGOTIATE, protocolVersion);
} else {
- handshaker = new ClientHandshaker
- (this, sslContext, enabledProtocols);
+ handshaker = new ClientHandshaker(this, sslContext,
+ enabledProtocols, protocolVersion);
}
handshaker.enabledCipherSuites = enabledCipherSuites;
handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -639,6 +640,10 @@
break;
case cs_DATA:
+ if (!Handshaker.renegotiable) {
+ throw new SSLHandshakeException("renegotiation is not allowed");
+ }
+
// initialize the handshaker, move to cs_RENEGOTIATE
initHandshaker();
break;
@@ -966,7 +971,13 @@
handshaker.process_record(inputRecord, expectingFinished);
expectingFinished = false;
- if (handshaker.isDone()) {
+ if (handshaker.invalidated) {
+ handshaker = null;
+ // if state is cs_RENEGOTIATE, revert it to cs_DATA
+ if (connectionState == cs_RENEGOTIATE) {
+ connectionState = cs_DATA;
+ }
+ } else if (handshaker.isDone()) {
sess = handshaker.getSession();
if (!writer.hasOutboundData()) {
hsStatus = HandshakeStatus.FINISHED;
--- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java Tue Apr 20 01:24:48 2010 -0700
@@ -907,7 +907,13 @@
handshaker.process_record(r, expectingFinished);
expectingFinished = false;
- if (handshaker.isDone()) {
+ if (handshaker.invalidated) {
+ handshaker = null;
+ // if state is cs_RENEGOTIATE, revert it to cs_DATA
+ if (connectionState == cs_RENEGOTIATE) {
+ connectionState = cs_DATA;
+ }
+ } else if (handshaker.isDone()) {
sess = handshaker.getSession();
handshaker = null;
connectionState = cs_DATA;
@@ -925,6 +931,7 @@
t.start();
}
}
+
if (needAppData || connectionState != cs_DATA) {
continue;
} else {
@@ -1083,11 +1090,12 @@
connectionState = cs_RENEGOTIATE;
}
if (roleIsServer) {
- handshaker = new ServerHandshaker
- (this, sslContext, enabledProtocols, doClientAuth);
+ handshaker = new ServerHandshaker(this, sslContext,
+ enabledProtocols, doClientAuth,
+ connectionState == cs_RENEGOTIATE, protocolVersion);
} else {
- handshaker = new ClientHandshaker
- (this, sslContext, enabledProtocols);
+ handshaker = new ClientHandshaker(this, sslContext,
+ enabledProtocols, protocolVersion);
}
handshaker.enabledCipherSuites = enabledCipherSuites;
handshaker.setEnableSessionCreation(enableSessionCreation);
@@ -1192,6 +1200,10 @@
break;
case cs_DATA:
+ if (!Handshaker.renegotiable) {
+ throw new SSLHandshakeException("renegotiation is not allowed");
+ }
+
// initialize the handshaker, move to cs_RENEGOTIATE
initHandshaker();
break;
@@ -1840,6 +1852,11 @@
return host;
}
+ // ONLY used by HttpsClient to setup the URI specified hostname
+ synchronized public void setHost(String host) {
+ this.host = host;
+ }
+
/**
* Gets an input stream to read from the peer on the other side.
* Data read from this stream was always integrity protected in
--- a/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java Tue Apr 20 01:24:48 2010 -0700
@@ -69,6 +69,9 @@
// flag to check for clientCertificateVerify message
private boolean needClientVerify = false;
+ // indicate a renegotiation handshaking
+ private boolean isRenegotiation = false;
+
/*
* For exportable ciphersuites using non-exportable key sizes, we use
* ephemeral RSA keys. We could also do anonymous RSA in the same way
@@ -96,20 +99,28 @@
* Constructor ... use the keys found in the auth context.
*/
ServerHandshaker(SSLSocketImpl socket, SSLContextImpl context,
- ProtocolList enabledProtocols, byte clientAuth) {
+ ProtocolList enabledProtocols, byte clientAuth,
+ boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+
super(socket, context, enabledProtocols,
(clientAuth != SSLEngineImpl.clauth_none), false);
doClientAuth = clientAuth;
+ this.isRenegotiation = isRenegotiation;
+ this.activeProtocolVersion = activeProtocolVersion;
}
/*
* Constructor ... use the keys found in the auth context.
*/
ServerHandshaker(SSLEngineImpl engine, SSLContextImpl context,
- ProtocolList enabledProtocols, byte clientAuth) {
+ ProtocolList enabledProtocols, byte clientAuth,
+ boolean isRenegotiation, ProtocolVersion activeProtocolVersion) {
+
super(engine, context, enabledProtocols,
(clientAuth != SSLEngineImpl.clauth_none), false);
doClientAuth = clientAuth;
+ this.isRenegotiation = isRenegotiation;
+ this.activeProtocolVersion = activeProtocolVersion;
}
/*
@@ -257,6 +268,45 @@
if (debug != null && Debug.isOn("handshake")) {
mesg.print(System.out);
}
+
+ // if it is a renegotiation request and renegotiation is not allowed
+ if (isRenegotiation && !renegotiable) {
+ if (activeProtocolVersion.v >= ProtocolVersion.TLS10.v) {
+ // response with a no_negotiation warning,
+ warningSE(Alerts.alert_no_negotiation);
+
+ // invalidate the handshake so that the caller can
+ // dispose this object.
+ invalidated = true;
+
+ // If there is still unread block in the handshake
+ // input stream, it would be truncated with the disposal
+ // and the next handshake message will become incomplete.
+ //
+ // However, according to SSL/TLS specifications, no more
+ // handshake message could immediately follow ClientHello
+ // or HelloRequest. But in case of any improper messages,
+ // we'd better check to ensure there is no remaining bytes
+ // in the handshake input stream.
+ if (input.available() > 0) {
+ fatalSE(Alerts.alert_unexpected_message,
+ "ClientHello followed by an unexpected " +
+ "handshake message");
+
+ }
+
+ return;
+ } else {
+ // For SSLv3, send the handshake_failure fatal error.
+ // Note that SSLv3 does not define a no_negotiation alert
+ // like TLSv1. However we cannot ignore the message
+ // simply, otherwise the other side was waiting for a
+ // response that would never come.
+ fatalSE(Alerts.alert_handshake_failure,
+ "renegotiation is not allowed");
+ }
+ }
+
/*
* Always make sure this entire record has been digested before we
* start emitting output, to ensure correct digesting order.
--- a/jdk/src/share/classes/sun/security/tools/KeyTool.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/security/tools/KeyTool.java Tue Apr 20 01:24:48 2010 -0700
@@ -977,46 +977,35 @@
if (filename != null) {
inStream = new FileInputStream(filename);
}
- // Read the full stream before feeding to X509Factory,
- // otherwise, keytool -gencert | keytool -importcert
- // might not work properly, since -gencert is slow
- // and there's no data in the pipe at the beginning.
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
+ String importAlias = (alias!=null)?alias:keyAlias;
try {
- byte[] b = new byte[4096];
- while (true) {
- int len = inStream.read(b);
- if (len < 0) break;
- bout.write(b, 0, len);
+ if (keyStore.entryInstanceOf(
+ importAlias, KeyStore.PrivateKeyEntry.class)) {
+ kssave = installReply(importAlias, inStream);
+ if (kssave) {
+ System.err.println(rb.getString
+ ("Certificate reply was installed in keystore"));
+ } else {
+ System.err.println(rb.getString
+ ("Certificate reply was not installed in keystore"));
+ }
+ } else if (!keyStore.containsAlias(importAlias) ||
+ keyStore.entryInstanceOf(importAlias,
+ KeyStore.TrustedCertificateEntry.class)) {
+ kssave = addTrustedCert(importAlias, inStream);
+ if (kssave) {
+ System.err.println(rb.getString
+ ("Certificate was added to keystore"));
+ } else {
+ System.err.println(rb.getString
+ ("Certificate was not added to keystore"));
+ }
}
} finally {
if (inStream != System.in) {
inStream.close();
}
}
- inStream = new ByteArrayInputStream(bout.toByteArray());
- String importAlias = (alias!=null)?alias:keyAlias;
- if (keyStore.entryInstanceOf(importAlias, KeyStore.PrivateKeyEntry.class)) {
- kssave = installReply(importAlias, inStream);
- if (kssave) {
- System.err.println(rb.getString
- ("Certificate reply was installed in keystore"));
- } else {
- System.err.println(rb.getString
- ("Certificate reply was not installed in keystore"));
- }
- } else if (!keyStore.containsAlias(importAlias) ||
- keyStore.entryInstanceOf(importAlias,
- KeyStore.TrustedCertificateEntry.class)) {
- kssave = addTrustedCert(importAlias, inStream);
- if (kssave) {
- System.err.println(rb.getString
- ("Certificate was added to keystore"));
- } else {
- System.err.println(rb.getString
- ("Certificate was not added to keystore"));
- }
- }
} else if (command == IMPORTKEYSTORE) {
doImportKeyStore();
kssave = true;
@@ -2149,18 +2138,7 @@
inStream = new FileInputStream(filename);
}
try {
- // Read the full stream before feeding to X509Factory,
- // otherwise, keytool -gencert | keytool -printcert
- // might not work properly, since -gencert is slow
- // and there's no data in the pipe at the beginning.
- ByteArrayOutputStream bout = new ByteArrayOutputStream();
- byte[] b = new byte[4096];
- while (true) {
- int len = inStream.read(b);
- if (len < 0) break;
- bout.write(b, 0, len);
- }
- printCertFromStream(new ByteArrayInputStream(bout.toByteArray()), out);
+ printCertFromStream(inStream, out);
} finally {
if (inStream != System.in) {
inStream.close();
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Tue Apr 20 01:24:48 2010 -0700
@@ -446,12 +446,13 @@
{"America/Winnipeg", CST},
{"America/Yakutat", AKST},
{"America/Yellowknife", MST},
- {"Antarctica/Casey", new String[] {"Casey Time", "CAST",
- "Casey Summer Time", "CAST"}},
+ {"Antarctica/Casey", WST_AUS},
{"Antarctica/Davis", new String[] {"Davis Time", "DAVT",
"Davis Summer Time", "DAVST"}},
{"Antarctica/DumontDUrville", new String[] {"Dumont-d'Urville Time", "DDUT",
"Dumont-d'Urville Summer Time", "DDUST"}},
+ {"Antarctica/Macquarie", new String[] {"Macquarie Island Time", "MIST",
+ "Macquarie Island Summer Time", "MIST"}},
{"Antarctica/Mawson", new String[] {"Mawson Time", "MAWT",
"Mawson Summer Time", "MAWST"}},
{"Antarctica/McMurdo", NZST},
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/bytes.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -40,7 +40,7 @@
void bytes::malloc(size_t len_) {
len = len_;
- ptr = NEW(byte, len_+1); // add trailing zero byte always
+ ptr = NEW(byte, add_size(len_, 1)); // add trailing zero byte always
if (ptr == null) {
// set ptr to some victim memory, to ease escape
set(dummy, sizeof(dummy)-1);
@@ -56,7 +56,7 @@
return;
}
byte* oldptr = ptr;
- ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, len_+1);
+ ptr = (len_ >= PSIZE_MAX) ? null : (byte*)::realloc(ptr, add_size(len_, 1));
if (ptr != null) {
mtrace('r', oldptr, 0);
mtrace('m', ptr, len_+1);
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -507,7 +507,7 @@
maybe_inline
void unpacker::saveTo(bytes& b, byte* ptr, size_t len) {
- b.ptr = U_NEW(byte, len+1);
+ b.ptr = U_NEW(byte, add_size(len,1));
if (aborting()) {
b.len = 0;
return;
@@ -1154,7 +1154,7 @@
*fillp = 0; // bigbuf must contain a well-formed Utf8 string
int length = (int)(fillp - bigbuf.ptr);
bytes& value = cpMap[i].value.b;
- value.set(U_NEW(byte, length+1), length);
+ value.set(U_NEW(byte, add_size(length,1)), length);
value.copyFrom(bigbuf.ptr, length);
CHECK;
// Index all Utf8 strings
@@ -1626,7 +1626,7 @@
return no_bands;
} else {
int nb = bs_limit - bs_base;
- band** res = U_NEW(band*, nb+1);
+ band** res = U_NEW(band*, add_size(nb, 1));
CHECK_(no_bands);
for (int i = 0; i < nb; i++) {
band* b = (band*) band_stack.get(bs_base + i);
@@ -1735,7 +1735,7 @@
}
// save away the case labels
int ntags = band_stack.length() - case_base;
- int* tags = U_NEW(int, 1+ntags);
+ int* tags = U_NEW(int, add_size(ntags, 1));
CHECK_(lp);
k_case.le_casetags = tags;
*tags++ = ntags;
@@ -3139,8 +3139,8 @@
int* field_counts = T_NEW(int, nclasses);
int* method_counts = T_NEW(int, nclasses);
cpindex* all_indexes = U_NEW(cpindex, nclasses*2);
- entry** field_ix = U_NEW(entry*, nfields+nclasses);
- entry** method_ix = U_NEW(entry*, nmethods+nclasses);
+ entry** field_ix = U_NEW(entry*, add_size(nfields, nclasses));
+ entry** method_ix = U_NEW(entry*, add_size(nmethods, nclasses));
for (j = 0; j < nfields; j++) {
entry& f = fields[j];
@@ -4132,7 +4132,7 @@
}
const char* suffix = ".java";
int len = (int)(prefix.len + strlen(suffix));
- bytes name; name.set(T_NEW(byte, len + 1), len);
+ bytes name; name.set(T_NEW(byte, add_size(len, 1)), len);
name.strcat(prefix).strcat(suffix);
ref = cp.ensureUtf8(name);
}
@@ -4647,7 +4647,7 @@
bytes& prefix = cur_class->ref(0)->value.b;
const char* suffix = ".class";
int len = (int)(prefix.len + strlen(suffix));
- bytes name; name.set(T_NEW(byte, len + 1), len);
+ bytes name; name.set(T_NEW(byte, add_size(len, 1)), len);
cur_file.name = name.strcat(prefix).strcat(suffix).strval();
}
} else {
@@ -4714,6 +4714,7 @@
input.ensureSize(fleft);
}
rplimit = rp = input.base();
+ CHECK;
input.setLimit(rp + fleft);
if (!ensure_input(fleft))
abort("EOF reading resource file");
--- a/jdk/src/share/native/java/lang/System.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/lang/System.c Tue Apr 20 01:24:48 2010 -0700
@@ -67,10 +67,13 @@
(*env)->DeleteLocalRef(env, r); \
} else ((void) 0)
-#define PUTPROP_ForPlatformCString(props, key, val) \
+/* "key" is a char type string with only ASCII character in it.
+ "val" is a nchar (typedefed in java_props.h) type string */
+
+#define PUTPROP_ForPlatformNString(props, key, val) \
if (1) { \
- jstring jkey = JNU_NewStringPlatform(env, key); \
- jstring jval = JNU_NewStringPlatform(env, val); \
+ jstring jkey = (*env)->NewStringUTF(env, key); \
+ jstring jval = GetStringPlatform(env, val); \
jobject r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
if ((*env)->ExceptionOccurred(env)) return NULL; \
(*env)->DeleteLocalRef(env, jkey); \
@@ -150,7 +153,7 @@
(sprops->cpu_isalist ? sprops->cpu_isalist : ""));
PUTPROP(props, "sun.cpu.endian", sprops->cpu_endian);
- /* !!! DO NOT call PUTPROP_ForPlatformCString before this line !!!
+ /* !!! DO NOT call PUTPROP_ForPlatformNString before this line !!!
* !!! I18n properties have not been set up yet !!!
*/
@@ -195,18 +198,18 @@
*/
PUTPROP(props, "java.awt.graphicsenv", sprops->graphics_env);
if (sprops->font_dir != NULL) {
- PUTPROP_ForPlatformCString(props,
+ PUTPROP_ForPlatformNString(props,
"sun.java2d.fontpath", sprops->font_dir);
}
- PUTPROP_ForPlatformCString(props, "java.io.tmpdir", sprops->tmp_dir);
+ PUTPROP_ForPlatformNString(props, "java.io.tmpdir", sprops->tmp_dir);
- PUTPROP_ForPlatformCString(props, "user.name", sprops->user_name);
- PUTPROP_ForPlatformCString(props, "user.home", sprops->user_home);
+ PUTPROP_ForPlatformNString(props, "user.name", sprops->user_name);
+ PUTPROP_ForPlatformNString(props, "user.home", sprops->user_home);
PUTPROP(props, "user.timezone", sprops->timezone);
- PUTPROP_ForPlatformCString(props, "user.dir", sprops->user_dir);
+ PUTPROP_ForPlatformNString(props, "user.dir", sprops->user_dir);
/* This is a sun. property as it is currently only set for Gnome and
* Windows desktops.
--- a/jdk/src/share/native/java/lang/java_props.h Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/lang/java_props.h Tue Apr 20 01:24:48 2010 -0700
@@ -28,21 +28,29 @@
#include <jni_util.h>
+/* The preferred native type for storing text on the current OS */
+#ifdef WIN32
+#include <tchar.h>
+typedef WCHAR nchar;
+#else
+typedef char nchar;
+#endif
+
typedef struct {
char *os_name;
char *os_version;
char *os_arch;
- char *tmp_dir;
- char *font_dir;
- char *user_dir;
+ nchar *tmp_dir;
+ nchar *font_dir;
+ nchar *user_dir;
char *file_separator;
char *path_separator;
char *line_separator;
- char *user_name;
- char *user_home;
+ nchar *user_name;
+ nchar *user_home;
char *language;
char *country;
@@ -71,5 +79,6 @@
} java_props_t;
java_props_t *GetJavaProperties(JNIEnv *env);
+jstring GetStringPlatform(JNIEnv *env, nchar* str);
#endif /* _JAVA_PROPS_H */
--- a/jdk/src/share/native/java/util/zip/Deflater.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/util/zip/Deflater.c Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,7 +38,6 @@
#define DEF_MEM_LEVEL 8
-static jfieldID strmID;
static jfieldID levelID;
static jfieldID strategyID;
static jfieldID setParamsID;
@@ -49,7 +48,6 @@
JNIEXPORT void JNICALL
Java_java_util_zip_Deflater_initIDs(JNIEnv *env, jclass cls)
{
- strmID = (*env)->GetFieldID(env, cls, "strm", "J");
levelID = (*env)->GetFieldID(env, cls, "level", "I");
strategyID = (*env)->GetFieldID(env, cls, "strategy", "I");
setParamsID = (*env)->GetFieldID(env, cls, "setParams", "Z");
@@ -94,7 +92,7 @@
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong strm,
+Java_java_util_zip_Deflater_setDictionary(JNIEnv *env, jclass cls, jlong addr,
jarray b, jint off, jint len)
{
Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
@@ -102,7 +100,7 @@
if (buf == 0) {/* out of memory */
return;
}
- res = deflateSetDictionary((z_stream *)jlong_to_ptr(strm), buf + off, len);
+ res = deflateSetDictionary((z_stream *)jlong_to_ptr(addr), buf + off, len);
(*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0);
switch (res) {
case Z_OK:
@@ -111,151 +109,144 @@
JNU_ThrowIllegalArgumentException(env, 0);
break;
default:
- JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+ JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg);
break;
}
}
JNIEXPORT jint JNICALL
-Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this,
+Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
jarray b, jint off, jint len, jint flush)
{
- z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID));
+ z_stream *strm = jlong_to_ptr(addr);
- if (strm == 0) {
- JNU_ThrowNullPointerException(env, 0);
- return 0;
- } else {
- jarray this_buf = (*env)->GetObjectField(env, this, bufID);
- jint this_off = (*env)->GetIntField(env, this, offID);
- jint this_len = (*env)->GetIntField(env, this, lenID);
- jbyte *in_buf;
- jbyte *out_buf;
- int res;
- if ((*env)->GetBooleanField(env, this, setParamsID)) {
- int level = (*env)->GetIntField(env, this, levelID);
- int strategy = (*env)->GetIntField(env, this, strategyID);
+ jarray this_buf = (*env)->GetObjectField(env, this, bufID);
+ jint this_off = (*env)->GetIntField(env, this, offID);
+ jint this_len = (*env)->GetIntField(env, this, lenID);
+ jbyte *in_buf;
+ jbyte *out_buf;
+ int res;
+ if ((*env)->GetBooleanField(env, this, setParamsID)) {
+ int level = (*env)->GetIntField(env, this, levelID);
+ int strategy = (*env)->GetIntField(env, this, strategyID);
- in_buf = (jbyte *) malloc(this_len);
- if (in_buf == 0) {
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+ in_buf = (jbyte *) malloc(this_len);
+ if (in_buf == 0) {
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+ out_buf = (jbyte *) malloc(len);
+ if (out_buf == 0) {
+ free(in_buf);
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
- out_buf = (jbyte *) malloc(len);
- if (out_buf == 0) {
- free(in_buf);
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
+ strm->next_in = (Bytef *) in_buf;
+ strm->next_out = (Bytef *) out_buf;
+ strm->avail_in = this_len;
+ strm->avail_out = len;
+ res = deflateParams(strm, level, strategy);
- strm->next_in = (Bytef *) in_buf;
- strm->next_out = (Bytef *) out_buf;
- strm->avail_in = this_len;
- strm->avail_out = len;
- res = deflateParams(strm, level, strategy);
-
- if (res == Z_OK) {
- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
- }
- free(out_buf);
- free(in_buf);
+ if (res == Z_OK) {
+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+ }
+ free(out_buf);
+ free(in_buf);
- switch (res) {
- case Z_OK:
- (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
- return len - strm->avail_out;
- case Z_BUF_ERROR:
- (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
- return 0;
- default:
- JNU_ThrowInternalError(env, strm->msg);
- return 0;
- }
- } else {
- jboolean finish = (*env)->GetBooleanField(env, this, finishID);
-
- in_buf = (jbyte *) malloc(this_len);
- if (in_buf == 0) {
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+ switch (res) {
+ case Z_OK:
+ (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
+ this_off += this_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off);
+ (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ return len - strm->avail_out;
+ case Z_BUF_ERROR:
+ (*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
+ return 0;
+ default:
+ JNU_ThrowInternalError(env, strm->msg);
+ return 0;
+ }
+ } else {
+ jboolean finish = (*env)->GetBooleanField(env, this, finishID);
+ in_buf = (jbyte *) malloc(this_len);
+ if (in_buf == 0) {
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
- out_buf = (jbyte *) malloc(len);
- if (out_buf == 0) {
- free(in_buf);
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
+ out_buf = (jbyte *) malloc(len);
+ if (out_buf == 0) {
+ free(in_buf);
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
- strm->next_in = (Bytef *) in_buf;
- strm->next_out = (Bytef *) out_buf;
- strm->avail_in = this_len;
- strm->avail_out = len;
- res = deflate(strm, finish ? Z_FINISH : flush);
+ strm->next_in = (Bytef *) in_buf;
+ strm->next_out = (Bytef *) out_buf;
+ strm->avail_in = this_len;
+ strm->avail_out = len;
+ res = deflate(strm, finish ? Z_FINISH : flush);
- if (res == Z_STREAM_END || res == Z_OK) {
- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
- }
- free(out_buf);
- free(in_buf);
+ if (res == Z_STREAM_END || res == Z_OK) {
+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+ }
+ free(out_buf);
+ free(in_buf);
- switch (res) {
- case Z_STREAM_END:
- (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
- /* fall through */
- case Z_OK:
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
- return len - strm->avail_out;
- case Z_BUF_ERROR:
- return 0;
+ switch (res) {
+ case Z_STREAM_END:
+ (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
+ /* fall through */
+ case Z_OK:
+ this_off += this_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off);
+ (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ return len - strm->avail_out;
+ case Z_BUF_ERROR:
+ return 0;
default:
- JNU_ThrowInternalError(env, strm->msg);
- return 0;
- }
+ JNU_ThrowInternalError(env, strm->msg);
+ return 0;
}
}
}
JNIEXPORT jint JNICALL
-Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getAdler(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->adler;
+ return ((z_stream *)jlong_to_ptr(addr))->adler;
}
JNIEXPORT jlong JNICALL
-Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->total_in;
+ return ((z_stream *)jlong_to_ptr(addr))->total_in;
}
JNIEXPORT jlong JNICALL
-Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->total_out;
+ return ((z_stream *)jlong_to_ptr(addr))->total_out;
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_reset(JNIEnv *env, jclass cls, jlong addr)
{
- if (deflateReset((z_stream *)jlong_to_ptr(strm)) != Z_OK) {
+ if (deflateReset((z_stream *)jlong_to_ptr(addr)) != Z_OK) {
JNU_ThrowInternalError(env, 0);
}
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Deflater_end(JNIEnv *env, jclass cls, jlong addr)
{
- if (deflateEnd((z_stream *)jlong_to_ptr(strm)) == Z_STREAM_ERROR) {
+ if (deflateEnd((z_stream *)jlong_to_ptr(addr)) == Z_STREAM_ERROR) {
JNU_ThrowInternalError(env, 0);
} else {
- free((z_stream *)jlong_to_ptr(strm));
+ free((z_stream *)jlong_to_ptr(addr));
}
}
--- a/jdk/src/share/native/java/util/zip/Inflater.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/util/zip/Inflater.c Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,6 @@
#define ThrowDataFormatException(env, msg) \
JNU_ThrowByName(env, "java/util/zip/DataFormatException", msg)
-static jfieldID strmID;
static jfieldID needDictID;
static jfieldID finishedID;
static jfieldID bufID, offID, lenID;
@@ -49,7 +48,6 @@
JNIEXPORT void JNICALL
Java_java_util_zip_Inflater_initIDs(JNIEnv *env, jclass cls)
{
- strmID = (*env)->GetFieldID(env, cls, "strm", "J");
needDictID = (*env)->GetFieldID(env, cls, "needDict", "Z");
finishedID = (*env)->GetFieldID(env, cls, "finished", "Z");
bufID = (*env)->GetFieldID(env, cls, "buf", "[B");
@@ -84,134 +82,129 @@
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong strm,
+Java_java_util_zip_Inflater_setDictionary(JNIEnv *env, jclass cls, jlong addr,
jarray b, jint off, jint len)
{
Bytef *buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
int res;
if (buf == 0) /* out of memory */
return;
- res = inflateSetDictionary(jlong_to_ptr(strm), buf + off, len);
+ res = inflateSetDictionary(jlong_to_ptr(addr), buf + off, len);
(*env)->ReleasePrimitiveArrayCritical(env, b, buf, 0);
switch (res) {
case Z_OK:
break;
case Z_STREAM_ERROR:
case Z_DATA_ERROR:
- JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+ JNU_ThrowIllegalArgumentException(env, ((z_stream *)jlong_to_ptr(addr))->msg);
break;
default:
- JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(strm))->msg);
+ JNU_ThrowInternalError(env, ((z_stream *)jlong_to_ptr(addr))->msg);
break;
}
}
JNIEXPORT jint JNICALL
-Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this,
+Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
jarray b, jint off, jint len)
{
- z_stream *strm = jlong_to_ptr((*env)->GetLongField(env, this, strmID));
+ z_stream *strm = jlong_to_ptr(addr);
- if (strm == 0) {
- JNU_ThrowNullPointerException(env, 0);
- return 0;
- } else {
- jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID);
- jint this_off = (*env)->GetIntField(env, this, offID);
- jint this_len = (*env)->GetIntField(env, this, lenID);
- jbyte *in_buf;
- jbyte *out_buf;
- int ret;
+ jarray this_buf = (jarray)(*env)->GetObjectField(env, this, bufID);
+ jint this_off = (*env)->GetIntField(env, this, offID);
+ jint this_len = (*env)->GetIntField(env, this, lenID);
+ jbyte *in_buf;
+ jbyte *out_buf;
+ int ret;
- in_buf = (jbyte *) malloc(this_len);
- if (in_buf == 0) {
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
- (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
+ in_buf = (jbyte *) malloc(this_len);
+ if (in_buf == 0) {
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
+ (*env)->GetByteArrayRegion(env, this_buf, this_off, this_len, in_buf);
- out_buf = (jbyte *) malloc(len);
- if (out_buf == 0) {
- free(in_buf);
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- }
+ out_buf = (jbyte *) malloc(len);
+ if (out_buf == 0) {
+ free(in_buf);
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ }
- strm->next_in = (Bytef *) in_buf;
- strm->next_out = (Bytef *) out_buf;
- strm->avail_in = this_len;
- strm->avail_out = len;
- ret = inflate(strm, Z_PARTIAL_FLUSH);
+ strm->next_in = (Bytef *) in_buf;
+ strm->next_out = (Bytef *) out_buf;
+ strm->avail_in = this_len;
+ strm->avail_out = len;
+ ret = inflate(strm, Z_PARTIAL_FLUSH);
- if (ret == Z_STREAM_END || ret == Z_OK) {
- (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
- }
- free(out_buf);
- free(in_buf);
+ if (ret == Z_STREAM_END || ret == Z_OK) {
+ (*env)->SetByteArrayRegion(env, b, off, len - strm->avail_out, out_buf);
+ }
+ free(out_buf);
+ free(in_buf);
- switch (ret) {
- case Z_STREAM_END:
- (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
- /* fall through */
- case Z_OK:
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
- return len - strm->avail_out;
- case Z_NEED_DICT:
- (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
- /* Might have consumed some input here! */
- this_off += this_len - strm->avail_in;
- (*env)->SetIntField(env, this, offID, this_off);
- (*env)->SetIntField(env, this, lenID, strm->avail_in);
- return 0;
- case Z_BUF_ERROR:
- return 0;
- case Z_DATA_ERROR:
- ThrowDataFormatException(env, strm->msg);
- return 0;
- case Z_MEM_ERROR:
- JNU_ThrowOutOfMemoryError(env, 0);
- return 0;
- default:
- JNU_ThrowInternalError(env, strm->msg);
- return 0;
- }
+ switch (ret) {
+ case Z_STREAM_END:
+ (*env)->SetBooleanField(env, this, finishedID, JNI_TRUE);
+ /* fall through */
+ case Z_OK:
+ this_off += this_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off);
+ (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ return len - strm->avail_out;
+ case Z_NEED_DICT:
+ (*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
+ /* Might have consumed some input here! */
+ this_off += this_len - strm->avail_in;
+ (*env)->SetIntField(env, this, offID, this_off);
+ (*env)->SetIntField(env, this, lenID, strm->avail_in);
+ return 0;
+ case Z_BUF_ERROR:
+ return 0;
+ case Z_DATA_ERROR:
+ ThrowDataFormatException(env, strm->msg);
+ return 0;
+ case Z_MEM_ERROR:
+ JNU_ThrowOutOfMemoryError(env, 0);
+ return 0;
+ default:
+ JNU_ThrowInternalError(env, strm->msg);
+ return 0;
}
}
JNIEXPORT jint JNICALL
-Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getAdler(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->adler;
+ return ((z_stream *)jlong_to_ptr(addr))->adler;
}
JNIEXPORT jlong JNICALL
-Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getBytesRead(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->total_in;
+ return ((z_stream *)jlong_to_ptr(addr))->total_in;
}
JNIEXPORT jlong JNICALL
-Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_getBytesWritten(JNIEnv *env, jclass cls, jlong addr)
{
- return ((z_stream *)jlong_to_ptr(strm))->total_out;
+ return ((z_stream *)jlong_to_ptr(addr))->total_out;
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_reset(JNIEnv *env, jclass cls, jlong addr)
{
- if (inflateReset(jlong_to_ptr(strm)) != Z_OK) {
+ if (inflateReset(jlong_to_ptr(addr)) != Z_OK) {
JNU_ThrowInternalError(env, 0);
}
}
JNIEXPORT void JNICALL
-Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong strm)
+Java_java_util_zip_Inflater_end(JNIEnv *env, jclass cls, jlong addr)
{
- if (inflateEnd(jlong_to_ptr(strm)) == Z_STREAM_ERROR) {
+ if (inflateEnd(jlong_to_ptr(addr)) == Z_STREAM_ERROR) {
JNU_ThrowInternalError(env, 0);
} else {
- free(jlong_to_ptr(strm));
+ free(jlong_to_ptr(addr));
}
}
--- a/jdk/src/share/native/java/util/zip/ZipFile.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/util/zip/ZipFile.c Tue Apr 20 01:24:48 2010 -0700
@@ -81,7 +81,8 @@
JNIEXPORT jlong JNICALL
Java_java_util_zip_ZipFile_open(JNIEnv *env, jclass cls, jstring name,
- jint mode, jlong lastModified)
+ jint mode, jlong lastModified,
+ jboolean usemmap)
{
const char *path = JNU_GetStringPlatformChars(env, name, 0);
char *msg = 0;
@@ -109,7 +110,7 @@
goto finally;
}
#endif
- zip = ZIP_Put_In_Cache(path, zfd, &msg, lastModified);
+ zip = ZIP_Put_In_Cache0(path, zfd, &msg, lastModified, usemmap);
}
if (zip != 0) {
--- a/jdk/src/share/native/java/util/zip/zip_util.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/util/zip/zip_util.c Tue Apr 20 01:24:48 2010 -0700
@@ -251,11 +251,16 @@
if (zip->lock != NULL) MDESTROY(zip->lock);
free(zip->name);
freeCEN(zip);
+
#ifdef USE_MMAP
- if (zip->maddr != NULL) munmap((char *)zip->maddr, zip->mlen);
-#else
- free(zip->cencache.data);
+ if (zip->usemmap) {
+ if (zip->maddr != NULL)
+ munmap((char *)zip->maddr, zip->mlen);
+ } else
#endif
+ {
+ free(zip->cencache.data);
+ }
if (zip->comment != NULL)
free(zip->comment);
if (zip->zfd != -1) ZFILE_Close(zip->zfd);
@@ -585,49 +590,53 @@
ZIP_FORMAT_ERROR("invalid END header (bad central directory offset)");
#ifdef USE_MMAP
- /* On Solaris & Linux prior to JDK 6, we used to mmap the whole jar file to
- * read the jar file contents. However, this greatly increased the perceived
- * footprint numbers because the mmap'ed pages were adding into the totals shown
- * by 'ps' and 'top'. We switched to mmaping only the central directory of jar
- * file while calling 'read' to read the rest of jar file. Here are a list of
- * reasons apart from above of why we are doing so:
- * 1. Greatly reduces mmap overhead after startup complete;
- * 2. Avoids dual path code maintainance;
- * 3. Greatly reduces risk of address space (not virtual memory) exhaustion.
- */
- if (pagesize == 0) {
- pagesize = (jlong)sysconf(_SC_PAGESIZE);
- if (pagesize == 0) goto Catch;
- }
- if (cenpos > pagesize) {
- offset = cenpos & ~(pagesize - 1);
- } else {
- offset = 0;
+ if (zip->usemmap) {
+ /* On Solaris & Linux prior to JDK 6, we used to mmap the whole jar file to
+ * read the jar file contents. However, this greatly increased the perceived
+ * footprint numbers because the mmap'ed pages were adding into the totals shown
+ * by 'ps' and 'top'. We switched to mmaping only the central directory of jar
+ * file while calling 'read' to read the rest of jar file. Here are a list of
+ * reasons apart from above of why we are doing so:
+ * 1. Greatly reduces mmap overhead after startup complete;
+ * 2. Avoids dual path code maintainance;
+ * 3. Greatly reduces risk of address space (not virtual memory) exhaustion.
+ */
+ if (pagesize == 0) {
+ pagesize = (jlong)sysconf(_SC_PAGESIZE);
+ if (pagesize == 0) goto Catch;
+ }
+ if (cenpos > pagesize) {
+ offset = cenpos & ~(pagesize - 1);
+ } else {
+ offset = 0;
+ }
+ /* When we are not calling recursively, knownTotal is -1. */
+ if (knownTotal == -1) {
+ void* mappedAddr;
+ /* Mmap the CEN and END part only. We have to figure
+ out the page size in order to make offset to be multiples of
+ page size.
+ */
+ zip->mlen = cenpos - offset + cenlen + endhdrlen;
+ zip->offset = offset;
+ mappedAddr = mmap64(0, zip->mlen, PROT_READ, MAP_SHARED, zip->zfd, (off64_t) offset);
+ zip->maddr = (mappedAddr == (void*) MAP_FAILED) ? NULL :
+ (unsigned char*)mappedAddr;
+
+ if (zip->maddr == NULL) {
+ jio_fprintf(stderr, "mmap failed for CEN and END part of zip file\n");
+ goto Catch;
+ }
+ }
+ cenbuf = zip->maddr + cenpos - offset;
+ } else
+#endif
+ {
+ if ((cenbuf = malloc((size_t) cenlen)) == NULL ||
+ (readFullyAt(zip->zfd, cenbuf, cenlen, cenpos) == -1))
+ goto Catch;
}
- /* When we are not calling recursively, knownTotal is -1. */
- if (knownTotal == -1) {
- void* mappedAddr;
- /* Mmap the CEN and END part only. We have to figure
- out the page size in order to make offset to be multiples of
- page size.
- */
- zip->mlen = cenpos - offset + cenlen + endhdrlen;
- zip->offset = offset;
- mappedAddr = mmap64(0, zip->mlen, PROT_READ, MAP_SHARED, zip->zfd, (off64_t) offset);
- zip->maddr = (mappedAddr == (void*) MAP_FAILED) ? NULL :
- (unsigned char*)mappedAddr;
- if (zip->maddr == NULL) {
- jio_fprintf(stderr, "mmap failed for CEN and END part of zip file\n");
- goto Catch;
- }
- }
- cenbuf = zip->maddr + cenpos - offset;
-#else
- if ((cenbuf = malloc((size_t) cenlen)) == NULL ||
- (readFullyAt(zip->zfd, cenbuf, cenlen, cenpos) == -1))
- goto Catch;
-#endif
cenend = cenbuf + cenlen;
/* Initialize zip file data structures based on the total number
@@ -700,9 +709,11 @@
cenpos = -1;
Finally:
-#ifndef USE_MMAP
- free(cenbuf);
+#ifdef USE_MMAP
+ if (!zip->usemmap)
#endif
+ free(cenbuf);
+
return cenpos;
}
@@ -782,9 +793,17 @@
* If a zip error occurs, then *pmsg will be set to the error message text if
* pmsg != 0. Otherwise, *pmsg will be set to NULL.
*/
+
jzfile *
ZIP_Put_In_Cache(const char *name, ZFILE zfd, char **pmsg, jlong lastModified)
{
+ return ZIP_Put_In_Cache0(name, zfd, pmsg, lastModified, JNI_TRUE);
+}
+
+jzfile *
+ZIP_Put_In_Cache0(const char *name, ZFILE zfd, char **pmsg, jlong lastModified,
+ jboolean usemmap)
+{
static char errbuf[256];
jlong len;
jzfile *zip;
@@ -793,6 +812,9 @@
return NULL;
}
+#ifdef USE_MMAP
+ zip->usemmap = usemmap;
+#endif
zip->refs = 1;
zip->lastModified = lastModified;
@@ -877,8 +899,6 @@
return;
}
-#ifndef USE_MMAP
-
/* Empirically, most CEN headers are smaller than this. */
#define AMPLE_CEN_HEADER_SIZE 160
@@ -928,7 +948,6 @@
cache->pos = cenpos;
return cen;
}
-#endif /* not USE_MMAP */
typedef enum { ACCESS_RANDOM, ACCESS_SEQUENTIAL } AccessHint;
@@ -953,14 +972,17 @@
ze->comment = NULL;
#ifdef USE_MMAP
- cen = (char*) zip->maddr + zc->cenpos - zip->offset;
-#else
- if (accessHint == ACCESS_RANDOM)
- cen = readCENHeader(zip, zc->cenpos, AMPLE_CEN_HEADER_SIZE);
- else
- cen = sequentialAccessReadCENHeader(zip, zc->cenpos);
- if (cen == NULL) goto Catch;
+ if (zip->usemmap) {
+ cen = (char*) zip->maddr + zc->cenpos - zip->offset;
+ } else
#endif
+ {
+ if (accessHint == ACCESS_RANDOM)
+ cen = readCENHeader(zip, zc->cenpos, AMPLE_CEN_HEADER_SIZE);
+ else
+ cen = sequentialAccessReadCENHeader(zip, zc->cenpos);
+ if (cen == NULL) goto Catch;
+ }
nlen = CENNAM(cen);
elen = CENEXT(cen);
@@ -976,7 +998,6 @@
if ((ze->name = malloc(nlen + 1)) == NULL) goto Catch;
memcpy(ze->name, cen + CENHDR, nlen);
ze->name[nlen] = '\0';
-
if (elen > 0) {
char *extra = cen + CENHDR + nlen;
@@ -1037,9 +1058,10 @@
ze = NULL;
Finally:
-#ifndef USE_MMAP
- if (cen != NULL && accessHint == ACCESS_RANDOM) free(cen);
+#ifdef USE_MMAP
+ if (!zip->usemmap)
#endif
+ if (cen != NULL && accessHint == ACCESS_RANDOM) free(cen);
return ze;
}
--- a/jdk/src/share/native/java/util/zip/zip_util.h Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/java/util/zip/zip_util.h Tue Apr 20 01:24:48 2010 -0700
@@ -45,9 +45,6 @@
* Header sizes including signatures
*/
-#ifdef USE_MMAP
-#define SIGSIZ 4
-#endif
#define LOCHDR 30
#define EXTHDR 16
#define CENHDR 46
@@ -211,9 +208,9 @@
jlong mlen; /* length (in bytes) mmaped */
jlong offset; /* offset of the mmapped region from the
start of the file. */
-#else
+ jboolean usemmap; /* if mmap is used. */
+#endif
cencache cencache; /* CEN header cache */
-#endif
ZFILE zfd; /* open file descriptor */
void *lock; /* read lock */
char *comment; /* zip file comment */
@@ -259,6 +256,9 @@
jzfile *
ZIP_Put_In_Cache(const char *name, ZFILE zfd, char **pmsg, jlong lastModified);
+jzfile *
+ZIP_Put_In_Cache0(const char *name, ZFILE zfd, char **pmsg, jlong lastModified, jboolean usemmap);
+
void JNICALL
ZIP_Close(jzfile *zip);
--- a/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/awt/image/jpeg/imageioJPEG.c Tue Apr 20 01:24:48 2010 -0700
@@ -258,6 +258,7 @@
typedef struct pixelBufferStruct {
jobject hpixelObject; // Usually a DataBuffer bank as a byte array
+ unsigned int byteBufferLength;
union pixptr {
INT32 *ip; // Pinned buffer pointer, as 32-bit ints
unsigned char *bp; // Pinned buffer pointer, as bytes
@@ -270,6 +271,7 @@
*/
static void initPixelBuffer(pixelBufferPtr pb) {
pb->hpixelObject = NULL;
+ pb->byteBufferLength = 0;
pb->buf.ip = NULL;
}
@@ -279,13 +281,13 @@
*/
static int setPixelBuffer(JNIEnv *env, pixelBufferPtr pb, jobject obj) {
pb->hpixelObject = (*env)->NewGlobalRef(env, obj);
-
if (pb->hpixelObject == NULL) {
JNU_ThrowByName( env,
"java/lang/OutOfMemoryError",
"Setting Pixel Buffer");
return NOT_OK;
}
+ pb->byteBufferLength = (*env)->GetArrayLength(env, pb->hpixelObject);
return OK;
}
@@ -302,6 +304,7 @@
unpinPixelBuffer(env, pb);
(*env)->DeleteGlobalRef(env, pb->hpixelObject);
pb->hpixelObject = NULL;
+ pb->byteBufferLength = 0;
}
}
@@ -1828,6 +1831,7 @@
boolean orderedBands = TRUE;
imageIODataPtr data = (imageIODataPtr) ptr;
j_decompress_ptr cinfo;
+ unsigned int numBytes;
/* verify the inputs */
@@ -2027,15 +2031,22 @@
// scanline buffer into the raster.
in = scanLinePtr + (sourceXStart * cinfo->output_components);
if (pixelLimit > in) {
- memcpy(out, in, pixelLimit - in);
+ numBytes = pixelLimit - in;
+ if (numBytes > data->pixelBuf.byteBufferLength) {
+ numBytes = data->pixelBuf.byteBufferLength;
+ }
+ memcpy(out, in, numBytes);
}
} else {
+ numBytes = numBands;
for (in = scanLinePtr+sourceXStart*cinfo->output_components;
- in < pixelLimit;
+ in < pixelLimit &&
+ numBytes <= data->pixelBuf.byteBufferLength;
in += pixelStride) {
for (i = 0; i < numBands; i++) {
*out++ = *(in+bands[i]);
}
+ numBytes += numBands;
}
}
--- a/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Tue Apr 20 01:24:48 2010 -0700
@@ -2239,7 +2239,8 @@
int dataType = BYTE_DATA_TYPE;
int width;
int height;
- int size = rasterP->width * rasterP->height * rasterP->numBands;
+ int dataSize;
+ int offset;
*dataPP = NULL;
@@ -2292,6 +2293,22 @@
#endif
switch (rasterP->type) {
case sun_awt_image_IntegerComponentRaster_TYPE_INT_8BIT_SAMPLES:
+ if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 4)) &&
+ SAFE_TO_ALLOC_2(width, 4) &&
+ SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 4)))
+ {
+ return -1;
+ }
+ offset = 4 * rasterP->chanOffsets[0];
+ dataSize = 4 * (*env)->GetArrayLength(env, rasterP->jdata);
+
+ if (offset < 0 || offset >= dataSize ||
+ width > rasterP->scanlineStride ||
+ height * rasterP->scanlineStride * 4 > dataSize - offset)
+ {
+ // raster data buffer is too short
+ return -1;
+ }
dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
NULL);
if (dataP == NULL) {
@@ -2300,11 +2317,25 @@
*mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, 4,
width, height,
rasterP->scanlineStride*4,
- (unsigned char *)dataP
- + rasterP->chanOffsets[0]*4);
+ (unsigned char *)dataP + offset);
*dataPP = dataP;
return 0;
case sun_awt_image_IntegerComponentRaster_TYPE_BYTE_SAMPLES:
+ if (!(SAFE_TO_ALLOC_2(width, rasterP->numBands) &&
+ SAFE_TO_ALLOC_2(height, rasterP->scanlineStride)))
+ {
+ return -1;
+ }
+ offset = rasterP->chanOffsets[0];
+ dataSize = (*env)->GetArrayLength(env, rasterP->jdata);
+
+ if (offset < 0 || offset >= dataSize ||
+ width * rasterP->numBands > rasterP->scanlineStride ||
+ height * rasterP->scanlineStride > dataSize - offset)
+ {
+ // raster data buffer is too short
+ return -1;
+ }
dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
NULL);
if (dataP == NULL) {
@@ -2313,11 +2344,26 @@
*mlibImagePP = (*sMlibSysFns.createStructFP)(MLIB_BYTE, rasterP->numBands,
width, height,
rasterP->scanlineStride,
- (unsigned char *)dataP
- + rasterP->chanOffsets[0]);
+ (unsigned char *)dataP + offset);
*dataPP = dataP;
return 0;
case sun_awt_image_IntegerComponentRaster_TYPE_USHORT_SAMPLES:
+ if (!((rasterP->chanOffsets[0] == 0 || SAFE_TO_ALLOC_2(rasterP->chanOffsets[0], 2)) &&
+ SAFE_TO_ALLOC_3(width, rasterP->numBands, 2) &&
+ SAFE_TO_ALLOC_3(height, rasterP->scanlineStride, 2)))
+ {
+ return -1;
+ }
+ offset = rasterP->chanOffsets[0] * 2;
+ dataSize = 2 * (*env)->GetArrayLength(env, rasterP->jdata);
+
+ if (offset < 0 || offset >= dataSize ||
+ width * rasterP->numBands > rasterP->scanlineStride ||
+ height * rasterP->scanlineStride * 2 > dataSize - offset)
+ {
+ // raster data buffer is too short
+ return -1;
+ }
dataP = (void *) (*env)->GetPrimitiveArrayCritical(env, rasterP->jdata,
NULL);
if (dataP == NULL) {
@@ -2327,8 +2373,7 @@
rasterP->numBands,
width, height,
rasterP->scanlineStride*2,
- (unsigned char *)dataP
- + rasterP->chanOffsets[0]*2);
+ (unsigned char *)dataP + offset);
*dataPP = dataP;
return 0;
--- a/jdk/src/share/native/sun/awt/medialib/safe_alloc.h Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/awt/medialib/safe_alloc.h Tue Apr 20 01:24:48 2010 -0700
@@ -35,11 +35,11 @@
*/
#define SAFE_TO_ALLOC_2(c, sz) \
(((c) > 0) && ((sz) > 0) && \
- ((0xffffffffu / ((juint)(c))) > (sz)))
+ ((0xffffffffu / ((juint)(c))) > ((juint)(sz))))
#define SAFE_TO_ALLOC_3(w, h, sz) \
(((w) > 0) && ((h) > 0) && ((sz) > 0) && \
- (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > (sz)))
+ (((0xffffffffu / ((juint)(w))) / ((juint)(h))) > ((juint)(sz))))
#endif // __SAFE_ALLOC_H__
--- a/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/cmsio1.c Tue Apr 20 01:24:48 2010 -0700
@@ -1433,6 +1433,9 @@
// If is in memory, the LUT is already there, so throw a copy
if (Icc -> TagPtrs[n]) {
+ if (!_cmsValidateLUT((LPLUT) Icc ->TagPtrs[n])) {
+ return NULL;
+ }
return cmsDupLUT((LPLUT) Icc ->TagPtrs[n]);
}
--- a/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/java2d/cmm/lcms/cmsxform.c Tue Apr 20 01:24:48 2010 -0700
@@ -1969,6 +1969,10 @@
goto ErrorCleanup;
}
+ if (Transforms[i] == NULL) {
+ cmsSignalError(LCMS_ERRC_ABORTED, "cmsCreateMultiprofileTransform: unable to create transform");
+ goto ErrorCleanup;
+ }
CurrentColorSpace = ColorSpaceOut;
}
--- a/jdk/src/share/native/sun/management/Flag.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/share/native/sun/management/Flag.c Tue Apr 20 01:24:48 2010 -0700
@@ -133,11 +133,8 @@
globals[i].value.j);
break;
default:
- // unsupported type
- sprintf(errmsg, "Unsupported VMGlobal Type %d", globals[i].type);
- JNU_ThrowInternalError(env, errmsg);
- free(globals);
- return 0;
+ // ignore unsupported type
+ continue;
}
switch (globals[i].origin) {
case JMM_VMGLOBAL_ORIGIN_DEFAULT:
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Fedora.properties Tue Apr 20 01:24:48 2010 -0700
@@ -26,134 +26,310 @@
# Version
-# Uses Fedora Core 6 fonts and file paths.
+# Uses Fedora 9 fonts and file paths.
version=1
# Component Font Mappings
-dialog.plain.latin-1=DejaVu LGC Sans
+dialog.plain.latin-1=DejaVu Sans
dialog.plain.japanese-x0208=Sazanami Gothic
dialog.plain.korean=Baekmuk Gulim
dialog.plain.chinese-big5=AR PL ShanHeiSun Uni
dialog.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.plain.bengali=Lohit Bengali
+dialog.plain.gujarati=Lohit Gujarati
+dialog.plain.hindi=Lohit Hindi
+dialog.plain.malayalam=Lohit Malayalam
+dialog.plain.oriya=Lohit Oriya
+dialog.plain.punjabi=Lohit Punjabi
+dialog.plain.tamil=Lohit Tamil
+dialog.plain.telugu=Lohit Telugu
+dialog.plain.sinhala=LKLUG
-dialog.bold.latin-1=DejaVu LGC Sans Bold
+dialog.bold.latin-1=DejaVu Sans Bold
dialog.bold.japanese-x0208=Sazanami Gothic
dialog.bold.korean=Baekmuk Gulim
dialog.bold.chinese-big5=AR PL ShanHeiSun Uni
dialog.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.bold.bengali=Lohit Bengali
+dialog.bold.gujarati=Lohit Gujarati
+dialog.bold.hindi=Lohit Hindi
+dialog.bold.malayalam=Lohit Malayalam
+dialog.bold.oriya=Lohit Oriya
+dialog.bold.punjabi=Lohit Punjabi
+dialog.bold.tamil=Lohit Tamil
+dialog.bold.telugu=Lohit Telugu
+dialog.bold.sinhala=LKLUG
-dialog.italic.latin-1=DejaVu LGC Sans Oblique
+dialog.italic.latin-1=DejaVu Sans Oblique
dialog.italic.japanese-x0208=Sazanami Gothic
dialog.italic.korean=Baekmuk Gulim
dialog.italic.chinese-big5=AR PL ShanHeiSun Uni
dialog.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialog.italic.bengali=Lohit Bengali
+dialog.italic.gujarati=Lohit Gujarati
+dialog.italic.hindi=Lohit Hindi
+dialog.italic.malayalam=Lohit Malayalam
+dialog.italic.oriya=Lohit Oriya
+dialog.italic.punjabi=Lohit Punjabi
+dialog.italic.tamil=Lohit Tamil
+dialog.italic.telugu=Lohit Telugu
+dialog.italic.sinhala=LKLUG
-dialog.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique
+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
dialog.bolditalic.japanese-x0208=Sazanami Gothic
dialog.bolditalic.korean=Baekmuk Gulim
dialog.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
dialog.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+dialog.bolditalic.bengali=Lohit Bengali
+dialog.bolditalic.gujarati=Lohit Gujarati
+dialog.bolditalic.hindi=Lohit Hindi
+dialog.bolditalic.malayalam=Lohit Malayalam
+dialog.bolditalic.oriya=Lohit Oriya
+dialog.bolditalic.punjabi=Lohit Punjabi
+dialog.bolditalic.tamil=Lohit Tamil
+dialog.bolditalic.telugu=Lohit Telugu
+dialog.bolditalic.sinhala=LKLUG
-sansserif.plain.latin-1=DejaVu LGC Sans
+sansserif.plain.latin-1=DejaVu Sans
sansserif.plain.japanese-x0208=Sazanami Gothic
sansserif.plain.korean=Baekmuk Gulim
sansserif.plain.chinese-big5=AR PL ShanHeiSun Uni
sansserif.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.plain.bengali=Lohit Bengali
+sansserif.plain.gujarati=Lohit Gujarati
+sansserif.plain.hindi=Lohit Hindi
+sansserif.plain.malayalam=Lohit Malayalam
+sansserif.plain.oriya=Lohit Oriya
+sansserif.plain.punjabi=Lohit Punjabi
+sansserif.plain.tamil=Lohit Tamil
+sansserif.plain.telugu=Lohit Telugu
+sansserif.plain.sinhala=LKLUG
-sansserif.bold.latin-1=DejaVu LGC Sans Bold
+sansserif.bold.latin-1=DejaVu Sans Bold
sansserif.bold.japanese-x0208=Sazanami Gothic
sansserif.bold.korean=Baekmuk Gulim
sansserif.bold.chinese-big5=AR PL ShanHeiSun Uni
sansserif.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.bold.bengali=Lohit Bengali
+sansserif.bold.gujarati=Lohit Gujarati
+sansserif.bold.hindi=Lohit Hindi
+sansserif.bold.malayalam=Lohit Malayalam
+sansserif.bold.oriya=Lohit Oriya
+sansserif.bold.punjabi=Lohit Punjabi
+sansserif.bold.tamil=Lohit Tamil
+sansserif.bold.telugu=Lohit Telugu
+sansserif.bold.sinhala=LKLUG
-sansserif.italic.latin-1=DejaVu LGC Sans Oblique
+sansserif.italic.latin-1=DejaVu Sans Oblique
sansserif.italic.japanese-x0208=Sazanami Gothic
sansserif.italic.korean=Baekmuk Gulim
sansserif.italic.chinese-big5=AR PL ShanHeiSun Uni
sansserif.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+sansserif.italic.bengali=Lohit Bengali
+sansserif.italic.gujarati=Lohit Gujarati
+sansserif.italic.hindi=Lohit Hindi
+sansserif.italic.malayalam=Lohit Malayalam
+sansserif.italic.oriya=Lohit Oriya
+sansserif.italic.punjabi=Lohit Punjabi
+sansserif.italic.tamil=Lohit Tamil
+sansserif.italic.telugu=Lohit Telugu
+sansserif.italic.sinhala=LKLUG
-sansserif.bolditalic.latin-1=DejaVu LGC Sans Bold Oblique
+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
sansserif.bolditalic.japanese-x0208=Sazanami Gothic
sansserif.bolditalic.korean=Baekmuk Gulim
sansserif.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
sansserif.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+sansserif.bolditalic.bengali=Lohit Bengali
+sansserif.bolditalic.gujarati=Lohit Gujarati
+sansserif.bolditalic.hindi=Lohit Hindi
+sansserif.bolditalic.malayalam=Lohit Malayalam
+sansserif.bolditalic.oriya=Lohit Oriya
+sansserif.bolditalic.punjabi=Lohit Punjabi
+sansserif.bolditalic.tamil=Lohit Tamil
+sansserif.bolditalic.telugu=Lohit Telugu
+sansserif.bolditalic.sinhala=LKLUG
-serif.plain.latin-1=DejaVu LGC Serif
+serif.plain.latin-1=DejaVu Serif
serif.plain.japanese-x0208=Sazanami Mincho
serif.plain.korean=Baekmuk Batang
serif.plain.chinese-big5=AR PL ZenKai Uni
serif.plain.chinese-gb18030=AR PL ZenKai Uni
+serif.plain.bengali=Lohit Bengali
+serif.plain.gujarati=Lohit Gujarati
+serif.plain.hindi=Lohit Hindi
+serif.plain.malayalam=Lohit Malayalam
+serif.plain.oriya=Lohit Oriya
+serif.plain.punjabi=Lohit Punjabi
+serif.plain.tamil=Lohit Tamil
+serif.plain.telugu=Lohit Telugu
+serif.plain.sinhala=LKLUG
-serif.bold.latin-1=DejaVu LGC Serif Bold
+serif.bold.latin-1=DejaVu Serif Bold
serif.bold.japanese-x0208=Sazanami Mincho
serif.bold.korean=Baekmuk Batang
serif.bold.chinese-big5=AR PL ZenKai Uni
serif.bold.chinese-gb18030=AR PL ZenKai Uni
+serif.bold.bengali=Lohit Bengali
+serif.bold.gujarati=Lohit Gujarati
+serif.bold.hindi=Lohit Hindi
+serif.bold.malayalam=Lohit Malayalam
+serif.bold.oriya=Lohit Oriya
+serif.bold.punjabi=Lohit Punjabi
+serif.bold.tamil=Lohit Tamil
+serif.bold.telugu=Lohit Telugu
+serif.bold.sinhala=LKLUG
-serif.italic.latin-1=DejaVu LGC Serif Oblique
+serif.italic.latin-1=DejaVu Serif Oblique
serif.italic.japanese-x0208=Sazanami Mincho
serif.italic.korean=Baekmuk Batang
serif.italic.chinese-big5=AR PL ZenKai Uni
serif.italic.chinese-gb18030=AR PL ZenKai Uni
+serif.italic.bengali=Lohit Bengali
+serif.italic.gujarati=Lohit Gujarati
+serif.italic.hindi=Lohit Hindi
+serif.italic.malayalam=Lohit Malayalam
+serif.italic.oriya=Lohit Oriya
+serif.italic.punjabi=Lohit Punjabi
+serif.italic.tamil=Lohit Tamil
+serif.italic.telugu=Lohit Telugu
+serif.italic.sinhala=LKLUG
-serif.bolditalic.latin-1=DejaVu LGC Serif Bold Oblique
+serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
serif.bolditalic.japanese-x0208=Sazanami Mincho
serif.bolditalic.korean=Baekmuk Batang
serif.bolditalic.chinese-big5=AR PL ZenKai Uni
serif.bolditalic.chinese-gb18030=AR PL ZenKai Uni
-
+serif.bolditalic.bengali=Lohit Bengali
+serif.bolditalic.gujarati=Lohit Gujarati
+serif.bolditalic.hindi=Lohit Hindi
+serif.bolditalic.malayalam=Lohit Malayalam
+serif.bolditalic.oriya=Lohit Oriya
+serif.bolditalic.punjabi=Lohit Punjabi
+serif.bolditalic.tamil=Lohit Tamil
+serif.bolditalic.telugu=Lohit Telugu
+serif.bolditalic.sinhala=LKLUG
-monospaced.plain.latin-1=DejaVu LGC Sans Mono
+monospaced.plain.latin-1=DejaVu Sans Mono
monospaced.plain.japanese-x0208=Sazanami Gothic
monospaced.plain.korean=Baekmuk Gulim
monospaced.plain.chinese-big5=AR PL ShanHeiSun Uni
monospaced.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.plain.bengali=Lohit Bengali
+monospaced.plain.gujarati=Lohit Gujarati
+monospaced.plain.hindi=Lohit Hindi
+monospaced.plain.malayalam=Lohit Malayalam
+monospaced.plain.oriya=Lohit Oriya
+monospaced.plain.punjabi=Lohit Punjabi
+monospaced.plain.tamil=Lohit Tamil
+monospaced.plain.telugu=Lohit Telugu
+monospaced.plain.sinhala=LKLUG
-monospaced.bold.latin-1=DejaVu LGC Sans Mono Bold
+monospaced.bold.latin-1=DejaVu Sans Mono Bold
monospaced.bold.japanese-x0208=Sazanami Gothic
monospaced.bold.korean=Baekmuk Gulim
monospaced.bold.chinese-big5=AR PL ShanHeiSun Uni
monospaced.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.bold.bengali=Lohit Bengali
+monospaced.bold.gujarati=Lohit Gujarati
+monospaced.bold.hindi=Lohit Hindi
+monospaced.bold.malayalam=Lohit Malayalam
+monospaced.bold.oriya=Lohit Oriya
+monospaced.bold.punjabi=Lohit Punjabi
+monospaced.bold.tamil=Lohit Tamil
+monospaced.bold.telugu=Lohit Telugu
+monospaced.bold.sinhala=LKLUG
-monospaced.italic.latin-1=DejaVu LGC Sans Mono Oblique
+monospaced.italic.latin-1=DejaVu Sans Mono Oblique
monospaced.italic.japanese-x0208=Sazanami Gothic
monospaced.italic.korean=Baekmuk Gulim
monospaced.italic.chinese-big5=AR PL ShanHeiSun Uni
monospaced.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+monospaced.italic.bengali=Lohit Bengali
+monospaced.italic.gujarati=Lohit Gujarati
+monospaced.italic.hindi=Lohit Hindi
+monospaced.italic.malayalam=Lohit Malayalam
+monospaced.italic.oriya=Lohit Oriya
+monospaced.italic.punjabi=Lohit Punjabi
+monospaced.italic.tamil=Lohit Tamil
+monospaced.italic.telugu=Lohit Telugu
+monospaced.italic.sinhala=LKLUG
-monospaced.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique
+monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
monospaced.bolditalic.japanese-x0208=Sazanami Gothic
monospaced.bolditalic.korean=Baekmuk Gulim
monospaced.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
monospaced.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
-
+monospaced.bolditalic.bengali=Lohit Bengali
+monospaced.bolditalic.gujarati=Lohit Gujarati
+monospaced.bolditalic.hindi=Lohit Hindi
+monospaced.bolditalic.malayalam=Lohit Malayalam
+monospaced.bolditalic.oriya=Lohit Oriya
+monospaced.bolditalic.punjabi=Lohit Punjabi
+monospaced.bolditalic.tamil=Lohit Tamil
+monospaced.bolditalic.telugu=Lohit Telugu
+monospaced.bolditalic.sinhala=LKLUG
-dialoginput.plain.latin-1=DejaVu LGC Sans Mono
+dialoginput.plain.latin-1=DejaVu Sans Mono
dialoginput.plain.japanese-x0208=Sazanami Gothic
dialoginput.plain.korean=Baekmuk Gulim
dialoginput.plain.chinese-big5=AR PL ShanHeiSun Uni
dialoginput.plain.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.plain.bengali=Lohit Bengali
+dialoginput.plain.gujarati=Lohit Gujarati
+dialoginput.plain.hindi=Lohit Hindi
+dialoginput.plain.malayalam=Lohit Malayalam
+dialoginput.plain.oriya=Lohit Oriya
+dialoginput.plain.punjabi=Lohit Punjabi
+dialoginput.plain.tamil=Lohit Tamil
+dialoginput.plain.telugu=Lohit Telugu
+dialoginput.plain.sinhala=LKLUG
-dialoginput.bold.latin-1=DejaVu LGC Sans Mono Bold
+dialoginput.bold.latin-1=DejaVu Sans Mono Bold
dialoginput.bold.japanese-x0208=Sazanami Gothic
dialoginput.bold.korean=Baekmuk Gulim
dialoginput.bold.chinese-big5=AR PL ShanHeiSun Uni
dialoginput.bold.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.bold.bengali=Lohit Bengali
+dialoginput.bold.gujarati=Lohit Gujarati
+dialoginput.bold.hindi=Lohit Hindi
+dialoginput.bold.malayalam=Lohit Malayalam
+dialoginput.bold.oriya=Lohit Oriya
+dialoginput.bold.punjabi=Lohit Punjabi
+dialoginput.bold.tamil=Lohit Tamil
+dialoginput.bold.telugu=Lohit Telugu
+dialoginput.bold.sinhala=LKLUG
-dialoginput.italic.latin-1=DejaVu LGC Sans Mono Oblique
+dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
dialoginput.italic.japanese-x0208=Sazanami Gothic
dialoginput.italic.korean=Baekmuk Gulim
dialoginput.italic.chinese-big5=AR PL ShanHeiSun Uni
dialoginput.italic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.italic.bengali=Lohit Bengali
+dialoginput.italic.gujarati=Lohit Gujarati
+dialoginput.italic.hindi=Lohit Hindi
+dialoginput.italic.malayalam=Lohit Malayalam
+dialoginput.italic.oriya=Lohit Oriya
+dialoginput.italic.punjabi=Lohit Punjabi
+dialoginput.italic.tamil=Lohit Tamil
+dialoginput.italic.telugu=Lohit Telugu
+dialoginput.italic.sinhala=LKLUG
-dialoginput.bolditalic.latin-1=DejaVu LGC Sans Mono Bold Oblique
+dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
dialoginput.bolditalic.japanese-x0208=Sazanami Gothic
dialoginput.bolditalic.korean=Baekmuk Gulim
dialoginput.bolditalic.chinese-big5=AR PL ShanHeiSun Uni
dialoginput.bolditalic.chinese-gb18030=AR PL ShanHeiSun Uni
+dialoginput.bolditalic.bengali=Lohit Bengali
+dialoginput.bolditalic.gujarati=Lohit Gujarati
+dialoginput.bolditalic.hindi=Lohit Hindi
+dialoginput.bolditalic.malayalam=Lohit Malayalam
+dialoginput.bolditalic.oriya=Lohit Oriya
+dialoginput.bolditalic.punjabi=Lohit Punjabi
+dialoginput.bolditalic.tamil=Lohit Tamil
+dialoginput.bolditalic.telugu=Lohit Telugu
+dialoginput.bolditalic.sinhala=LKLUG
# Search Sequences
@@ -162,28 +338,40 @@
sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
sequence.allfonts.EUC-KR=korean,latin-1
sequence.allfonts.GB18030=chinese-gb18030,latin-1
-sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
+sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
# Font File Names
-filename.DejaVu_LGC_Sans=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans.ttf
-filename.DejaVu_LGC_Sans_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Bold.ttf
-filename.DejaVu_LGC_Sans_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-Oblique.ttf
-filename.DejaVu_LGC_Sans_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSans-BoldOblique.ttf
+filename.DejaVu_Sans=/usr/share/fonts/dejavu/DejaVuSans.ttf
+filename.DejaVu_Sans_Bold=/usr/share/fonts/dejavu/DejaVuSans-Bold.ttf
+filename.DejaVu_Sans_Oblique=/usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf
+filename.DejaVu_Sans_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSans-BoldOblique.ttf
-filename.DejaVu_LGC_Sans_Mono=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono.ttf
-filename.DejaVu_LGC_Sans_Mono_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Bold.ttf
-filename.DejaVu_LGC_Sans_Mono_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-Oblique.ttf
-filename.DejaVu_LGC_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSansMono-BoldOblique.ttf
+filename.DejaVu_Sans_Mono=/usr/share/fonts/dejavu/DejaVuSansMono.ttf
+filename.DejaVu_Sans_Mono_Bold=/usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf
+filename.DejaVu_Sans_Mono_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-Oblique.ttf
+filename.DejaVu_Sans_Mono_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf
+
+filename.DejaVu_Serif=/usr/share/fonts/dejavu/DejaVuSerif.ttf
+filename.DejaVu_Serif_Bold=/usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf
+filename.DejaVu_Serif_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-Oblique.ttf
+filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/dejavu/DejaVuSerif-BoldOblique.ttf
-filename.DejaVu_LGC_Serif=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif.ttf
-filename.DejaVu_LGC_Serif_Bold=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Bold.ttf
-filename.DejaVu_LGC_Serif_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-Oblique.ttf
-filename.DejaVu_LGC_Serif_Bold_Oblique=/usr/share/fonts/dejavu-lgc/DejaVuLGCSerif-BoldOblique.ttf
+filename.Sazanami_Gothic=/usr/share/fonts/sazanami-fonts-gothic/sazanami-gothic.ttf
+filename.Sazanami_Mincho=/usr/share/fonts/sazanami-fonts-mincho/sazanami-mincho.ttf
+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/cjkunifonts-uming/uming.ttc
+filename.AR_PL_ZenKai_Uni=/usr/share/fonts/cjkunifonts-ukai/ukai.ttc
+filename.Baekmuk_Gulim=/usr/share/fonts/baekmuk-ttf-gulim/gulim.ttf
+filename.Baekmuk_Batang=/usr/share/fonts/baekmuk-ttf-batang/batang.ttf
-filename.Sazanami_Gothic=/usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf
-filename.Sazanami_Mincho=/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf
-filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/chinese/TrueType/uming.ttf
-filename.AR_PL_ZenKai_Uni=/usr/share/fonts/chinese/TrueType/ukai.ttf
-filename.Baekmuk_Gulim=/usr/share/fonts/korean/TrueType/gulim.ttf
-filename.Baekmuk_Batang=/usr/share/fonts/korean/TrueType/batang.ttf
+filename.Lohit_Bengali=/usr/share/fonts/lohit-bengali/lohit_bn.ttf
+filename.Lohit_Gujarati=/usr/share/fonts/lohit-gujarati/lohit_gu.ttf
+filename.Lohit_Hindi=/usr/share/fonts/lohit-hindi/lohit_hi.ttf
+filename.Lohit_Kannda=/usr/share/fonts/lohit-kannada/lohit_kn.ttf
+filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf
+filename.Lohit_Oriya=/usr/share/fonts/lohit-oriya/lohit_or.ttf
+filename.Lohit_Punjabi=/usr/share/fonts/lohit-punjabi/lohit_pa.ttf
+filename.Lohit_Tamil=/usr/share/fonts/lohit-tamil/lohit_ta.ttf
+filename.Lohit_Telugu=/usr/share/fonts/lohit-telugu/lohit_te.ttf
+filename.LKLUG=/usr/share/fonts/lklug/lklug.ttf
+
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.Ubuntu.properties Tue Apr 20 01:24:48 2010 -0700
@@ -26,106 +26,253 @@
# Version
-# Uses Ubuntu 6.10 (Edgy) fonts and file paths.
+# Uses Ubuntu 8.04 (hardy), Debian 6.0 (Squeeze) (and more recent releases) fonts and file paths.
version=1
# Component Font Mappings
-dialog.plain.latin-1=DejaVu Sans
-dialog.plain.japanese-x0208=Kochi Gothic
-dialog.plain.korean=Baekmuk Dotum
-
-dialog.bold.latin-1=DejaVu Sans Bold
-dialog.bold.japanese-x0208=Kochi Gothic
-dialog.bold.korean=Baekmuk Dotum
-
-dialog.italic.latin-1=DejaVu Sans Oblique
-dialog.italic.japanese-x0208=Kochi Gothic
-dialog.italic.korean=Baekmuk Dotum
-
-dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
-dialog.bolditalic.japanese-x0208=Kochi Gothic
-dialog.bolditalic.korean=Baekmuk Dotum
+# Chinese fonts
+allfonts.umingcn=AR PL UMing CN
+#allfonts.umingcn.motif=AR PL UMing CN
+allfonts.uminghk=AR PL UMing HK
+#allfonts.uminghk.motif=AR PL UMing HK
+allfonts.umingtw=AR PL UMing TW
+#allfonts.umingtw.motif=AR PL UMing TW
+allfonts.wqy-zenhei=WenQuanYi Zen Hei
+#allfonts.wqy-zenhei.motif=WenQuanYi Zen Hei
+allfonts.shanheisun=AR PL ShanHeiSun Uni
+#allfonts.shanheisun.motif=AR PL ShanHeiSun Uni
-
-sansserif.plain.latin-1=DejaVu Sans
-sansserif.plain.japanese-x0208=Kochi Gothic
-sansserif.plain.korean=Baekmuk Dotum
-
-sansserif.bold.latin-1=DejaVu Sans Bold
-sansserif.bold.japanese-x0208=Kochi Gothic
-sansserif.bold.korean=Baekmuk Dotum
-
-sansserif.italic.latin-1=DejaVu Sans Oblique
-sansserif.italic.japanese-x0208=Kochi Gothic
-sansserif.italic.korean=Baekmuk Dotum
-
-sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
-sansserif.bolditalic.japanese-x0208=Kochi Gothic
-sansserif.bolditalic.korean=Baekmuk Dotum
+# Indic scripts
+allfonts.bengali=Lohit Bengali
+allfonts.gujarati=Lohit Gujarati
+allfonts.hindi=Lohit Hindi
+#allfonts.malayalam=Lohit Malayalam
+allfonts.oriya=Lohit Oriya
+allfonts.punjabi=Lohit Punjabi
+allfonts.tamil=Lohit Tamil
+allfonts.telugu=Lohit Telugu
+allfonts.sinhala=LKLUG
serif.plain.latin-1=DejaVu Serif
-serif.plain.japanese-x0208=Kochi Mincho
-serif.plain.korean=Baekmuk Batang
+#serif.plain.latin-1.motif=LuxiSerif-Regular
+serif.plain.japanese-kochi=Kochi Mincho
+serif.plain.japanese-sazanami=Sazanami Mincho
+serif.plain.japanese-vlgothic=Sazanami Mincho
+serif.plain.korean-baekmuk=Baekmuk Batang
+#serif.plain.korean-baekmuk.motif=Baekmuk Batang
+serif.plain.korean-un=UnBatang
+#serif.plain.korean-un.motif=UnBatang
serif.bold.latin-1=DejaVu Serif Bold
-serif.bold.japanese-x0208=Kochi Mincho
-serif.bold.korean=Baekmuk Batang
+#serif.bold.latin-1.motif=LuxiSerif-Bold
+serif.bold.japanese-kochi=Kochi Mincho
+serif.bold.japanese-sazanami=Sazanami Mincho
+serif.bold.japanese-vlgothic=Sazanami Mincho
+serif.bold.korean-baekmuk=Baekmuk Batang
+#serif.bold.korean-baekmuk.motif=Baekmuk Batang
+serif.bold.korean-un=UnBatang Bold
+#serif.bold.korean-un.motif=UnBatang Bold
serif.italic.latin-1=DejaVu Serif Oblique
-serif.italic.japanese-x0208=Kochi Mincho
-serif.italic.korean=Baekmuk Batang
+#serif.italic.latin-1.motif=LuxiSerif-Oblique
+serif.italic.japanese-kochi=Kochi Mincho
+serif.italic.japanese-sazanami=Sazanami Mincho
+serif.italic.japanese-vlgothic=Sazanami Mincho
+serif.italic.korean-baekmuk=Baekmuk Batang
+#serif.italic.korean-baekmuk.motif=Baekmuk Batang
+serif.italic.korean-un=UnBatang
+#serif.italic.korean-un.motif=UnBatang
serif.bolditalic.latin-1=DejaVu Serif Bold Oblique
-serif.bolditalic.japanese-x0208=Kochi Mincho
-serif.bolditalic.korean=Baekmuk Batang
+#serif.bolditalic.latin-1.motif=LuxiSerif-BoldOblique
+serif.bolditalic.japanese-kochi=Kochi Mincho
+serif.bolditalic.japanese-sazanami=Sazanami Mincho
+serif.bolditalic.japanese-vlgothic=Sazanami Mincho
+serif.bolditalic.korean-baekmuk=Baekmuk Batang
+#serif.bolditalic.korean-baekmuk.motif=Baekmuk Batang
+serif.bolditalic.korean-un=UnBatang Bold
+#serif.bolditalic.korean-un.motif=UnBatang Bold
+
+sansserif.plain.latin-1=DejaVu Sans
+#sansserif.plain.latin-1.motif=LuxiSans-Regular
+sansserif.plain.japanese-kochi=Kochi Gothic
+sansserif.plain.japanese-sazanami=Sazanami Gothic
+sansserif.plain.japanese-vlgothic=VL PGothic
+sansserif.plain.korean-baekmuk=Baekmuk Gulim
+#sansserif.plain.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.plain.korean-un=UnDotum
+#sansserif.plain.korean-un.motif=UnDotum
+sansserif.bold.latin-1=DejaVu Sans Bold
+#sansserif.bold.latin-1.motif=LuxiSans-Bold
+sansserif.bold.japanese-kochi=Kochi Gothic
+sansserif.bold.japanese-sazanami=Sazanami Gothic
+sansserif.bold.japanese-vlgothic=VL PGothic
+sansserif.bold.korean-baekmuk=Baekmuk Gulim
+#sansserif.bold.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.bold.korean-un=UnDotum Bold
+#sansserif.bold.korean-un.motif=UnDotum Bold
+
+sansserif.italic.latin-1=DejaVu Sans Oblique
+#sansserif.italic.latin-1.motif=LuxiSans-Oblique
+sansserif.italic.japanese-kochi=Kochi Gothic
+sansserif.italic.japanese-sazanami=Sazanami Gothic
+sansserif.italic.japanese-vlgothic=VL PGothic
+sansserif.italic.korean-baekmuk=Baekmuk Gulim
+#sansserif.italic.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.italic.korean-un=UnDotum
+#sansserif.italic.korean-un.motif=UnDotum
+
+sansserif.bolditalic.latin-1=DejaVu Sans Bold Oblique
+#sansserif.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+sansserif.bolditalic.japanese-kochi=Kochi Gothic
+sansserif.bolditalic.japanese-sazanami=Sazanami Gothic
+sansserif.bolditalic.japanese-vlgothic=VL PGothic
+sansserif.bolditalic.korean-baekmuk=Baekmuk Gulim
+#sansserif.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+sansserif.bolditalic.korean-un=UnDotum Bold
+#sansserif.bolditalic.korean-un.motif=UnDotum Bold
monospaced.plain.latin-1=DejaVu Sans Mono
-monospaced.plain.japanese-x0208=Kochi Gothic
-monospaced.plain.korean=Baekmuk Dotum
+#monospaced.plain.latin-1.motif=LuxiMono-Regular
+monospaced.plain.japanese-kochi=Kochi Gothic
+monospaced.plain.japanese-sazanami=Sazanami Gothic
+monospaced.plain.japanese-vlgothic=VL Gothic
+monospaced.plain.korean-baekmuk=Baekmuk Gulim
+#monospaced.plain.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.plain.korean-un=UnDotum
+#monospaced.plain.korean-un.motif=UnDotum
monospaced.bold.latin-1=DejaVu Sans Mono Bold
-monospaced.bold.japanese-x0208=Kochi Gothic
-monospaced.bold.korean=Baekmuk Dotum
+#monospaced.bold.latin-1.motif=LuxiMono-Bold
+monospaced.bold.japanese-kochi=Kochi Gothic
+monospaced.bold.japanese-sazanami=Sazanami Gothic
+monospaced.bold.japanese-vlgothic=VL Gothic
+monospaced.bold.korean-baekmuk=Baekmuk Gulim
+#monospaced.bold.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.bold.korean-un=UnDotum Bold
+#monospaced.bold.korean-un.motif=UnDotum Bold
monospaced.italic.latin-1=DejaVu Sans Mono Oblique
-monospaced.italic.japanese-x0208=Kochi Gothic
-monospaced.italic.korean=Baekmuk Dotum
+#monospaced.italic.latin-1.motif=LuxiMono-Oblique
+monospaced.italic.japanese-kochi=Kochi Gothic
+monospaced.italic.japanese-sazanami=Sazanami Gothic
+monospaced.italic.japanese-vlgothic=VL Gothic
+monospaced.italic.korean-baekmuk=Baekmuk Gulim
+#monospaced.italic.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.italic.korean-un=UnDotum
+#monospaced.italic.korean-un.motif=UnDotum
monospaced.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
-monospaced.bolditalic.japanese-x0208=Kochi Gothic
-monospaced.bolditalic.korean=Baekmuk Dotum
+#monospaced.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+monospaced.bolditalic.japanese-kochi=Kochi Gothic
+monospaced.bolditalic.japanese-sazanami=Sazanami Gothic
+monospaced.bolditalic.japanese-vlgothic=VL Gothic
+monospaced.bolditalic.korean-baekmuk=Baekmuk Gulim
+#monospaced.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+monospaced.bolditalic.korean-un=UnDotum Bold
+#monospaced.bolditalic.korean-un.motif=UnDotum Bold
+
+dialog.plain.latin-1=DejaVu Sans
+#dialog.plain.latin-1.motif=LuxiSans-Regular
+dialog.plain.japanese-kochi=Kochi Gothic
+dialog.plain.japanese-sazanami=Sazanami Gothic
+dialog.plain.japanese-vlgothic=VL PGothic
+dialog.plain.korean-baekmuk=Baekmuk Gulim
+#dialog.plain.korean-baekmuk.motif=Baekmuk Gulim
+dialog.plain.korean-un=UnDotum
+#dialog.plain.korean-un.motif=UnDotum
+dialog.bold.latin-1=DejaVu Sans Bold
+#dialog.bold.latin-1.motif=LuxiSans-Bold
+dialog.bold.japanese-kochi=Kochi Gothic
+dialog.bold.japanese-sazanami=Sazanami Gothic
+dialog.bold.japanese-vlgothic=VL PGothic
+dialog.bold.korean-baekmuk=Baekmuk Gulim
+#dialog.bold.korean-baekmuk.motif=Baekmuk Gulim
+dialog.bold.korean-un=UnDotum Bold
+#dialog.bold.korean-un.motif=UnDotum Bold
+
+dialog.italic.latin-1=DejaVu Sans Oblique
+#dialog.italic.latin-1.motif=LuxiSans-Oblique
+dialog.italic.japanese-kochi=Kochi Gothic
+dialog.italic.japanese-sazanami=Sazanami Gothic
+dialog.italic.japanese-vlgothic=VL PGothic
+dialog.italic.korean-baekmuk=Baekmuk Gulim
+#dialog.italic.korean-baekmuk.motif=Baekmuk Gulim
+dialog.italic.korean-un=UnDotum
+#dialog.italic.korean-un.motif=UnDotum
+
+dialog.bolditalic.latin-1=DejaVu Sans Bold Oblique
+#dialog.bolditalic.latin-1.motif=LuxiSans-BoldOblique
+dialog.bolditalic.japanese-kochi=Kochi Gothic
+dialog.bolditalic.japanese-sazanami=Sazanami Gothic
+dialog.bolditalic.japanese-vlgothic=VL PGothic
+dialog.bolditalic.korean-baekmuk=Baekmuk Gulim
+#dialog.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+dialog.bolditalic.korean-un=UnDotum Bold
+#dialog.bolditalic.korean-un.motif=UnDotum Bold
dialoginput.plain.latin-1=DejaVu Sans Mono
-dialoginput.plain.japanese-x0208=Kochi Gothic
-dialoginput.plain.korean=Baekmuk Dotum
+#dialoginput.plain.latin-1.motif=LuxiMono-Regular
+dialoginput.plain.japanese-kochi=Kochi Gothic
+dialoginput.plain.japanese-sazanami=Sazanami Gothic
+dialoginput.plain.japanese-vlgothic=VL Gothic
+dialoginput.plain.korean-baekmuk=Baekmuk Gulim
+#dialoginput.plain.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.plain.korean-un=UnDotum
+#dialoginput.plain.korean-un.motif=UnDotum
dialoginput.bold.latin-1=DejaVu Sans Mono Bold
-dialoginput.bold.japanese-x0208=Kochi Gothic
-dialoginput.bold.korean=Baekmuk Dotum
+#dialoginput.bold.latin-1.motif=LuxiMono-Bold
+dialoginput.bold.japanese-kochi=Kochi Gothic
+dialoginput.bold.japanese-sazanami=Sazanami Gothic
+dialoginput.bold.japanese-vlgothic=VL Gothic
+dialoginput.bold.korean-baekmuk=Baekmuk Gulim
+#dialoginput.bold.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.bold.korean-un=UnDotum Bold
+#dialoginput.bold.korean-un.motif=UnDotum Bold
dialoginput.italic.latin-1=DejaVu Sans Mono Oblique
-dialoginput.italic.japanese-x0208=Kochi Gothic
-dialoginput.italic.korean=Baekmuk Dotum
+#dialoginput.italic.latin-1.motif=LuxiMono-Oblique
+dialoginput.italic.japanese-kochi=Kochi Gothic
+dialoginput.italic.japanese-sazanami=Sazanami Gothic
+dialoginput.italic.japanese-vlgothic=VL Gothic
+dialoginput.italic.korean-baekmuk=Baekmuk Gulim
+#dialoginput.italic.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.italic.korean-un=UnDotum
+#dialoginput.italic.korean-un.motif=UnDotum
dialoginput.bolditalic.latin-1=DejaVu Sans Mono Bold Oblique
-dialoginput.bolditalic.japanese-x0208=Kochi Gothic
-dialoginput.bolditalic.korean=Baekmuk Dotum
-
-allfonts.chinese-big5=AR PL ZenKai Uni
-allfonts.chinese-gb18030=AR PL ZenKai Uni
+#dialoginput.bolditalic.latin-1.motif=LuxiMono-BoldOblique
+dialoginput.bolditalic.japanese-kochi=Kochi Gothic
+dialoginput.bolditalic.japanese-sazanami=Sazanami Gothic
+dialoginput.bolditalic.japanese-vlgothic=VL Gothic
+dialoginput.bolditalic.korean-baekmuk=Baekmuk Gulim
+#dialoginput.bolditalic.korean-baekmuk.motif=Baekmuk Gulim
+dialoginput.bolditalic.korean-un=UnDotum Bold
+#dialoginput.bolditalic.korean-un.motif=UnDotum Bold
# Search Sequences
sequence.allfonts=latin-1
-sequence.allfonts.Big5=chinese-big5,latin-1
-sequence.allfonts.x-euc-jp-linux=japanese-x0208,latin-1
-sequence.allfonts.EUC-KR=korean,latin-1
-sequence.allfonts.GB18030=chinese-gb18030,latin-1
-sequence.fallback=chinese-big5,chinese-gb18030,japanese-x0208,korean
+sequence.allfonts.GB18030=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GB2312=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.GBK=latin-1,umingcn,shanheisun,wqy-zenhei
+sequence.allfonts.x-euc-jp-linux=latin-1,japanese-vlgothic,japanese-sazanami,japanese-kochi
+sequence.allfonts.EUC-KR=latin-1,korean-un,korean-baekmuk
+sequence.allfonts.Big5=latin-1,umingtw,shanheisun,wqy-zenhei
+sequence.allfonts.Big5-HKSCS=latin-1,uminghk,shanheisun,wqy-zenhei
+#sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-kochi,japanese-sazanami,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,malayalam,tamil,telugu,sinhala
+sequence.fallback=uminghk,shanheisun,wqy-zenhei,japanese-vlgothic,japanese-sazanami,japanese-kochi,korean-un,korean-baekmuk,bengali,gujarati,hindi,oriya,punjabi,tamil,telugu
+
+# Exclusion Ranges
+
+exclusion.japanese-kochi=0390-03d6,2200-22ef,2701-27be
+exclusion.japanese-sazanami=0390-03d6,2200-22ef,2701-27be
+exclusion.japanese-vlgothic=0390-03d6,2200-22ef,2701-27be
# Font File Names
@@ -144,8 +291,58 @@
filename.DejaVu_Serif_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-Oblique.ttf
filename.DejaVu_Serif_Bold_Oblique=/usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif-BoldOblique.ttf
-filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf
-filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho-subst.ttf
-filename.AR_PL_ZenKai_Uni=/usr/share/fonts//truetype/arphic/ukai.ttf
-filename.Baekmuk_Dotum=/usr/share/fonts/truetype/baekmuk/dotum.ttf
+filename.AR_PL_UMing_CN=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_UMing_HK=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_UMing_TW=/usr/share/fonts/truetype/arphic/uming.ttc
+filename.AR_PL_ShanHeiSun_Uni=/usr/share/fonts/truetype/arphic/uming.ttf
+
+filename.WenQuanYi_Zen_Hei=/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
filename.Baekmuk_Batang=/usr/share/fonts/truetype/baekmuk/batang.ttf
+filename.UnBatang=/usr/share/fonts/truetype/unfonts/UnBatang.ttf
+filename.UnBatang_Bold=/usr/share/fonts/truetype/unfonts/UnBatangBold.ttf
+filename.Baekmuk_Gulim=/usr/share/fonts/truetype/baekmuk/gulim.ttf
+filename.UnDotum=/usr/share/fonts/truetype/unfonts/UnDotum.ttf
+filename.UnDotum_Bold=/usr/share/fonts/truetype/unfonts/UnDotumBold.ttf
+filename.Kochi_Gothic=/usr/share/fonts/truetype/kochi/kochi-gothic.ttf
+filename.Sazanami_Gothic=/usr/share/fonts/truetype/sazanami/sazanami-gothic.ttf
+filename.Kochi_Mincho=/usr/share/fonts/truetype/kochi/kochi-mincho.ttf
+filename.Sazanami_Mincho=/usr/share/fonts/truetype/sazanami/sazanami-mincho.ttf
+filename.VL_Gothic=/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf
+filename.VL_PGothic=/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf
+
+filename.Lohit_Bengali=/usr/share/fonts/truetype/ttf-bengali-fonts/lohit_bn.ttf
+filename.Lohit_Gujarati=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_gu.ttf
+filename.Lohit_Hindi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_hi.ttf
+filename.Lohit_Kannda=/usr/share/fonts/truetype/ttf-kannada-fonts/lohit_kn.ttf
+#filename.Lohit_Malayalam=/usr/share/fonts/lohit-malayalam/lohit_ml.ttf
+filename.Lohit_Oriya=/usr/share/fonts/truetype/ttf-oriya-fonts/lohit_or.ttf
+filename.Lohit_Punjabi=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_pa.ttf
+filename.Lohit_Tamil=/usr/share/fonts/truetype/ttf-indic-fonts-core/lohit_ta.ttf
+filename.Lohit_Telugu=/usr/share/fonts/truetype/ttf-telugu-fonts/lohit_te.ttf
+filename.LKLUG=/usr/share/fonts/truetype/ttf-sinhala-lklug/lklug.ttf
+
+filename.LuxiSans-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisr.ttf
+filename.LuxiSans-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisb.ttf
+filename.LuxiSans-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisri.ttf
+filename.LuxiSans-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxisbi.ttf
+filename.LuxiMono-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximr.ttf
+filename.LuxiMono-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximb.ttf
+filename.LuxiMono-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximri.ttf
+filename.LuxiMono-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luximbi.ttf
+filename.LuxiSerif-Regular=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirr.ttf
+filename.LuxiSerif-Bold=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirb.ttf
+filename.LuxiSerif-Oblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirri.ttf
+filename.LuxiSerif-BoldOblique=/usr/share/fonts/truetype/ttf-xfree86-nonfree/luxirbi.ttf
+
+# AWT X11 font paths
+awtfontpath.latin-1=/usr/share/fonts/X11/Type1
+awtfontpath.umingcn=/usr/share/fonts/truetype/arphic
+awtfontpath.uminghk=/usr/share/fonts/truetype/arphic
+awtfontpath.umingtw=/usr/share/fonts/truetype/arphic
+awtfontpath.shanheisun=/usr/share/fonts/truetype/arphic
+awtfontpath.wqy-zenhei=/usr/share/fonts/truetype/wqy
+awtfontpath.japanese-kochi=/usr/share/fonts/truetype/kochi
+awtfontpath.japanese-sazanami=/usr/share/fonts/truetype/sazanami
+awtfontpath.japanese-vlgothic=/usr/share/fonts/truetype/vlgothic
+awtfontpath.korean-baekmuk=/usr/share/fonts/truetype/baekmuk
+awtfontpath.korean-un=/usr/share/fonts/truetype/unfonts
--- a/jdk/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/solaris/classes/sun/awt/fontconfigs/solaris.fontconfig.properties Tue Apr 20 01:24:48 2010 -0700
@@ -352,7 +352,7 @@
sequence.allfonts.Big5=latin-1,chinese-big5,dingbats,symbol
-sequence.allfonts.Big5-HKSCS=latin-1,chinese-big5,chinese-hkscs,dingbats,symbol
+sequence.allfonts.Big5-HKSCS-2001=latin-1,chinese-big5,chinese-hkscs,dingbats,symbol
sequence.allfonts.windows-1251=cyrillic-cp1251,latin-1,dingbats,symbol
--- a/jdk/src/solaris/native/java/lang/java_props_md.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/solaris/native/java/lang/java_props_md.c Tue Apr 20 01:24:48 2010 -0700
@@ -337,22 +337,24 @@
std_encoding = "EUC-JP-LINUX";
}
#else
- /* For Solaris use customized vendor defined character
- * customized EUC-JP converter
- */
if (strcmp(p,"eucJP") == 0) {
+ /* For Solaris use customized vendor defined character
+ * customized EUC-JP converter
+ */
std_encoding = "eucJP-open";
- }
-#endif
-#ifndef __linux__
- /*
- * Remap the encoding string to Big5_Solaris which augments
- * the default converter for Solaris Big5 locales to include
- * seven additional ideographic characters beyond those included
- * in the Java "Big5" converter.
- */
- if (strcmp(p, "Big5") == 0) {
- std_encoding = "Big5_Solaris";
+ } else if (strcmp(p, "Big5") == 0 || strcmp(p, "BIG5") == 0) {
+ /*
+ * Remap the encoding string to Big5_Solaris which augments
+ * the default converter for Solaris Big5 locales to include
+ * seven additional ideographic characters beyond those included
+ * in the Java "Big5" converter.
+ */
+ std_encoding = "Big5_Solaris";
+ } else if (strcmp(p, "Big5-HKSCS") == 0) {
+ /*
+ * Solaris uses HKSCS2001
+ */
+ std_encoding = "Big5-HKSCS-2001";
}
#endif
sprops.encoding = std_encoding;
@@ -414,3 +416,9 @@
return &sprops;
}
+
+jstring
+GetStringPlatform(JNIEnv *env, nchar* cstr)
+{
+ return JNU_NewStringPlatform(env, cstr);
+}
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Tue Apr 20 01:24:48 2010 -0700
@@ -1143,7 +1143,7 @@
jobject addr;
int i;
- if (ni_addrsID == NULL) {
+ if (ni_addrsID == NULL || ia_addressID == NULL) {
jclass c = (*env)->FindClass(env, "java/net/NetworkInterface");
CHECK_NULL(c);
ni_addrsID = (*env)->GetFieldID(env, c, "addrs",
--- a/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/windows/classes/sun/awt/windows/fontconfig.properties Tue Apr 20 01:24:48 2010 -0700
@@ -210,6 +210,12 @@
sequence.dialog.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
sequence.dialoginput.x-MS950-HKSCS=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.serif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.sansserif.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.monospaced.x-MS950-HKSCS-XP=chinese-ms950,alphabetic,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialog.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+sequence.dialoginput.x-MS950-HKSCS-XP=alphabetic,chinese-ms950,chinese-hkscs,dingbats,symbol,chinese-ms950-extb
+
sequence.allfonts.UTF-8.hi=alphabetic/1252,devanagari,dingbats,symbol
sequence.allfonts.UTF-8.ja=alphabetic,japanese,devanagari,dingbats,symbol
--- a/jdk/src/windows/native/java/lang/ProcessImpl_md.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/windows/native/java/lang/ProcessImpl_md.c Tue Apr 20 01:24:48 2010 -0700
@@ -145,11 +145,11 @@
HANDLE errWrite = INVALID_HANDLE_VALUE;
SECURITY_ATTRIBUTES sa;
PROCESS_INFORMATION pi;
- STARTUPINFO si;
- LPTSTR pcmd = NULL;
- LPCTSTR pdir = NULL;
- LPVOID penvBlock = NULL;
- jlong *handles = NULL;
+ STARTUPINFOW si;
+ const jchar* pcmd = NULL;
+ const jchar* pdir = NULL;
+ const jchar* penvBlock = NULL;
+ jlong *handles = NULL;
jlong ret = 0;
OSVERSIONINFO ver;
jboolean onNT = JNI_FALSE;
@@ -161,22 +161,17 @@
onNT = JNI_TRUE;
assert(cmd != NULL);
- pcmd = (LPTSTR) JNU_GetStringPlatformChars(env, cmd, NULL);
+ pcmd = (*env)->GetStringChars(env, cmd, NULL);
if (pcmd == NULL) goto Catch;
if (dir != 0) {
- pdir = (LPCTSTR) JNU_GetStringPlatformChars(env, dir, NULL);
+ pdir = (*env)->GetStringChars(env, dir, NULL);
if (pdir == NULL) goto Catch;
- pdir = (LPCTSTR) JVM_NativePath((char *)pdir);
}
-
if (envBlock != NULL) {
- penvBlock = onNT
- ? (LPVOID) ((*env)->GetStringChars(env, envBlock, NULL))
- : (LPVOID) JNU_GetStringPlatformChars(env, envBlock, NULL);
+ penvBlock = ((*env)->GetStringChars(env, envBlock, NULL));
if (penvBlock == NULL) goto Catch;
}
-
assert(stdHandles != NULL);
handles = (*env)->GetLongArrayElements(env, stdHandles, NULL);
if (handles == NULL) goto Catch;
@@ -237,30 +232,17 @@
if (onNT)
processFlag = CREATE_NO_WINDOW | CREATE_UNICODE_ENVIRONMENT;
else
- processFlag = selectProcessFlag(env, cmd);
-
- /* Java and Windows are both pure Unicode systems at heart.
- * Windows has both a legacy byte-based API and a 16-bit Unicode
- * "W" API. The Right Thing here is to call CreateProcessW, since
- * that will allow all process-related information like command
- * line arguments to be passed properly to the child. We don't do
- * that currently, since we would first have to have "W" versions
- * of JVM_NativePath and perhaps other functions. In the
- * meantime, we can call CreateProcess with the magic flag
- * CREATE_UNICODE_ENVIRONMENT, which passes only the environment
- * in "W" mode. We will fix this later. */
-
- ret = CreateProcess(0, /* executable name */
- pcmd, /* command line */
- 0, /* process security attribute */
- 0, /* thread security attribute */
- TRUE, /* inherits system handles */
- processFlag, /* selected based on exe type */
- penvBlock, /* environment block */
- pdir, /* change to the new current directory */
- &si, /* (in) startup information */
- &pi); /* (out) process information */
-
+ processFlag = selectProcessFlag(env, cmd) | CREATE_UNICODE_ENVIRONMENT;
+ ret = CreateProcessW(0, /* executable name */
+ (LPWSTR)pcmd, /* command line */
+ 0, /* process security attribute */
+ 0, /* thread security attribute */
+ TRUE, /* inherits system handles */
+ processFlag, /* selected based on exe type */
+ (LPVOID)penvBlock,/* environment block */
+ (LPCWSTR)pdir, /* change to the new current directory */
+ &si, /* (in) startup information */
+ &pi); /* (out) process information */
if (!ret) {
win32Error(env, "CreateProcess");
goto Catch;
@@ -276,18 +258,13 @@
closeSafely(errWrite);
if (pcmd != NULL)
- JNU_ReleaseStringPlatformChars(env, cmd, (char *) pcmd);
+ (*env)->ReleaseStringChars(env, cmd, pcmd);
if (pdir != NULL)
- JNU_ReleaseStringPlatformChars(env, dir, (char *) pdir);
- if (penvBlock != NULL) {
- if (onNT)
- (*env)->ReleaseStringChars(env, envBlock, (jchar *) penvBlock);
- else
- JNU_ReleaseStringPlatformChars(env, dir, (char *) penvBlock);
- }
+ (*env)->ReleaseStringChars(env, dir, pdir);
+ if (penvBlock != NULL)
+ (*env)->ReleaseStringChars(env, envBlock, penvBlock);
if (handles != NULL)
(*env)->ReleaseLongArrayElements(env, stdHandles, handles, 0);
-
return ret;
Catch:
--- a/jdk/src/windows/native/java/lang/java_props_md.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/windows/native/java/lang/java_props_md.c Tue Apr 20 01:24:48 2010 -0700
@@ -451,7 +451,7 @@
{
char * ret = encoding_names[langIDMap[index].encoding];
- //Traditional Chinese Windows should use MS950_HKSCS as the
+ //Traditional Chinese Windows should use MS950_HKSCS_XP as the
//default encoding, if HKSCS patch has been installed.
// "old" MS950 0xfa41 -> u+e001
// "new" MS950 0xfa41 -> u+92db
@@ -460,7 +460,7 @@
WCHAR unicodeChar;
MultiByteToWideChar(CP_ACP, 0, mbChar, 2, &unicodeChar, 1);
if (unicodeChar == 0x92db) {
- ret = "MS950_HKSCS";
+ ret = "MS950_HKSCS_XP";
}
} else {
//SimpChinese Windows should use GB18030 as the default
@@ -513,14 +513,14 @@
/*
* Code to figure out the user's home directory using the registry
*/
-static char *
+static WCHAR*
getHomeFromRegistry()
{
HKEY key;
int rc;
DWORD type;
- char *p;
- char path[MAX_PATH+1];
+ WCHAR *p;
+ WCHAR path[MAX_PATH+1];
int size = MAX_PATH+1;
rc = RegOpenKeyEx(HKEY_CURRENT_USER, SHELL_KEY, 0, KEY_READ, &key);
@@ -530,18 +530,18 @@
}
path[0] = 0;
- rc = RegQueryValueEx(key, "Desktop", 0, &type, path, &size);
+ rc = RegQueryValueExW(key, L"Desktop", 0, &type, (LPBYTE)path, &size);
if (rc != ERROR_SUCCESS || type != REG_SZ) {
return NULL;
}
RegCloseKey(key);
/* Get the parent of Desktop directory */
- p = strrchr(path, '\\');
+ p = wcsrchr(path, L'\\');
if (p == NULL) {
return NULL;
}
- *p = '\0';
- return strdup(path);
+ *p = L'\0';
+ return _wcsdup(path);
}
/*
@@ -550,16 +550,16 @@
typedef HRESULT (WINAPI *GetSpecialFolderType)(HWND, int, LPITEMIDLIST *);
typedef BOOL (WINAPI *GetPathFromIDListType)(LPCITEMIDLIST, LPSTR);
-char *
+WCHAR*
getHomeFromShell32()
{
- HMODULE lib = LoadLibrary("SHELL32.DLL");
+ HMODULE lib = LoadLibraryW(L"SHELL32.DLL");
GetSpecialFolderType do_get_folder;
GetPathFromIDListType do_get_path;
HRESULT rc;
LPITEMIDLIST item_list = 0;
- char *p;
- char path[MAX_PATH+1];
+ WCHAR *p;
+ WCHAR path[MAX_PATH+1];
int size = MAX_PATH+1;
if (lib == 0) {
@@ -568,7 +568,7 @@
}
do_get_folder = (GetSpecialFolderType)GetProcAddress(lib, "SHGetSpecialFolderLocation");
- do_get_path = (GetPathFromIDListType)GetProcAddress(lib, "SHGetPathFromIDListA");
+ do_get_path = (GetPathFromIDListType)GetProcAddress(lib, "SHGetPathFromIDListW");
if (do_get_folder == 0 || do_get_path == 0) {
// the library doesn't hold the right functions !!??
@@ -582,10 +582,10 @@
}
path[0] = 0;
- (*do_get_path)(item_list, path);
+ (*do_get_path)(item_list, (LPSTR)path);
/* Get the parent of Desktop directory */
- p = strrchr(path, '\\');
+ p = wcsrchr(path, L'\\');
if (p) {
*p = 0;
}
@@ -598,8 +598,7 @@
* We also don't unload the SHELL32 DLL. We've paid the hit for loading
* it and we may need it again later.
*/
-
- return strdup(path);
+ return _wcsdup(path);
}
static boolean
@@ -650,6 +649,8 @@
{
static java_props_t sprops = {0};
+ OSVERSIONINFOEX ver;
+
if (sprops.user_dir) {
return &sprops;
}
@@ -659,10 +660,10 @@
/* tmp dir */
{
- char tmpdir[MAX_PATH + 1];
+ WCHAR tmpdir[MAX_PATH + 1];
/* we might want to check that this succeed */
- GetTempPath(MAX_PATH + 1, tmpdir);
- sprops.tmp_dir = strdup(tmpdir);
+ GetTempPathW(MAX_PATH + 1, tmpdir);
+ sprops.tmp_dir = _wcsdup(tmpdir);
}
/* Printing properties */
@@ -672,14 +673,13 @@
sprops.graphics_env = "sun.awt.Win32GraphicsEnvironment";
{ /* This is used only for debugging of font problems. */
- char *path = getenv("JAVA2D_FONTPATH");
- sprops.font_dir = (path != 0) ? strdup(path) : NULL;
+ WCHAR *path = _wgetenv(L"JAVA2D_FONTPATH");
+ sprops.font_dir = (path != NULL) ? _wcsdup(path) : NULL;
}
/* OS properties */
{
char buf[100];
- OSVERSIONINFOEX ver;
SYSTEM_INFO si;
PGNSI pGNSI;
@@ -828,14 +828,14 @@
* 100 K of footprint.
*/
{
- char *uname = getenv("USERNAME");
- if (uname != NULL && strlen(uname) > 0) {
- sprops.user_name = strdup(uname);
+ WCHAR *uname = _wgetenv(L"USERNAME");
+ if (uname != NULL && wcslen(uname) > 0) {
+ sprops.user_name = _wcsdup(uname);
} else {
- char buf[100];
+ WCHAR buf[100];
int buflen = sizeof(buf);
sprops.user_name =
- GetUserName(buf, &buflen) ? strdup(buf) : "unknown";
+ GetUserNameW(buf, &buflen) ? _wcsdup(buf) : L"unknown";
}
}
@@ -856,14 +856,13 @@
* On single-user Win95, user.home gets set to c:\windows.
*/
{
- char *homep = getHomeFromRegistry();
+ WCHAR *homep = getHomeFromRegistry();
if (homep == NULL) {
homep = getHomeFromShell32();
- if (homep == NULL) {
- homep = "C:\\";
- }
+ if (homep == NULL)
+ homep = L"C:\\";
}
- sprops.user_home = homep;
+ sprops.user_home = _wcsdup(homep);
}
/*
@@ -932,6 +931,17 @@
} else {
sprops.sun_jnu_encoding = getEncodingInternal(index);
}
+ if (langID == 0x0c04 && ver.dwMajorVersion == 6) {
+ // MS claims "Vista has built-in support for HKSCS-2004.
+ // All of the HKSCS-2004 characters have Unicode 4.1.
+ // PUA code point assignments". But what it really means
+ // is that the HKSCS-2004 is ONLY supported in Unicode.
+ // Test indicates the MS950 in its zh_HK locale is a
+ // "regular" MS950 which does not handle HKSCS-2004 at
+ // all. Set encoding to MS950_HKSCS.
+ sprops.encoding = "MS950_HKSCS";
+ sprops.sun_jnu_encoding = "MS950_HKSCS";
+ }
}
}
@@ -950,9 +960,9 @@
/* Current directory */
{
- char buf[MAX_PATH];
- GetCurrentDirectory(sizeof(buf), buf);
- sprops.user_dir = strdup(buf);
+ WCHAR buf[MAX_PATH];
+ GetCurrentDirectoryW(sizeof(buf), buf);
+ sprops.user_dir = _wcsdup(buf);
}
sprops.file_separator = "\\";
@@ -961,3 +971,9 @@
return &sprops;
}
+
+jstring
+GetStringPlatform(JNIEnv *env, nchar* wcstr)
+{
+ return (*env)->NewString(env, wcstr, wcslen(wcstr));
+}
--- a/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/windows/native/java/net/TwoStacksPlainDatagramSocketImpl.c Tue Apr 20 01:24:48 2010 -0700
@@ -1579,7 +1579,7 @@
jobject addr;
int i;
- if (ni_addrsID == NULL) {
+ if (ni_addrsID == NULL || ia_familyID == NULL) {
jclass c = (*env)->FindClass(env, "java/net/NetworkInterface");
CHECK_NULL_RETURN (c, -1);
ni_addrsID = (*env)->GetFieldID(env, c, "addrs",
--- a/jdk/src/windows/native/sun/windows/awt_Component.cpp Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1996-2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1996-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -3707,8 +3707,7 @@
if (hIMC == NULL) {
return;
}
- COMPOSITIONFORM cf = {CFS_POINT, {0, r.bottom}, NULL};
- // Place the composition window right below the client Window
+ COMPOSITIONFORM cf = {CFS_DEFAULT, {0, 0}, {0, 0, 0, 0}};
ImmSetCompositionWindow(hIMC, &cf);
}
--- a/jdk/test/Makefile Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/Makefile Tue Apr 20 01:24:48 2010 -0700
@@ -70,6 +70,10 @@
ifeq ($(UNAME_S), Linux)
OS_NAME = linux
OS_ARCH := $(shell $(UNAME) -m)
+ # Check for unknown arch, try uname -p if uname -m says unknown
+ ifeq ($(OS_ARCH),unknown)
+ OS_ARCH := $(shell $(UNAME) -p)
+ endif
OS_VERSION := $(shell $(UNAME) -r)
endif
ifndef OS_NAME
@@ -93,16 +97,26 @@
# Only want major and minor numbers from os version
OS_VERSION := $(shell $(ECHO) "$(OS_VERSION)" | $(CUT) -d'.' -f1,2)
-# Try and use names i586, x64, and ia64 consistently
-OS_ARCH:=$(subst X64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst AMD64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst amd64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst x86_64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst EM64T,x64,$(OS_ARCH))
-OS_ARCH:=$(subst em64t,x64,$(OS_ARCH))
-OS_ARCH:=$(subst intel64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst Intel64,x64,$(OS_ARCH))
-OS_ARCH:=$(subst INTEL64,x64,$(OS_ARCH))
+# Name to use for x86_64 arch (historically amd64, but should change someday)
+OS_ARCH_X64_NAME:=amd64
+#OS_ARCH_X64_NAME:=x64
+
+# Alternate arch names (in case this arch is known by a second name)
+# PROBLEM_LISTS may use either name.
+OS_ARCH2-amd64:=x64
+#OS_ARCH2-x64:=amd64
+
+# Try and use the arch names consistently
+OS_ARCH:=$(subst x64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst X64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst AMD64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst amd64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst x86_64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst EM64T,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst em64t,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst Intel64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
+OS_ARCH:=$(subst INTEL64,$(OS_ARCH_X64_NAME),$(OS_ARCH))
OS_ARCH:=$(subst IA64,ia64,$(OS_ARCH))
OS_ARCH:=$(subst X86,i586,$(OS_ARCH))
OS_ARCH:=$(subst x86,i586,$(OS_ARCH))
@@ -110,17 +124,32 @@
OS_ARCH:=$(subst i486,i586,$(OS_ARCH))
OS_ARCH:=$(subst i686,i586,$(OS_ARCH))
-# Check for ARCH_DATA_MODEL, adjust OS_ARCH accordingly
+# Default ARCH_DATA_MODEL settings
+ARCH_DATA_MODEL-i586 = 32
+ARCH_DATA_MODEL-$(OS_ARCH_X64_NAME) = 64
+ARCH_DATA_MODEL-ia64 = 64
+ARCH_DATA_MODEL-sparc = 32
+ARCH_DATA_MODEL-sparcv9 = 64
+
+# If ARCH_DATA_MODEL is not defined, try and pick a reasonable default
+ifndef ARCH_DATA_MODEL
+ ARCH_DATA_MODEL:=$(ARCH_DATA_MODEL-$(OS_ARCH))
+endif
ifndef ARCH_DATA_MODEL
ARCH_DATA_MODEL=32
endif
+
+# Platform directory name
+PLATFORM_OS = $(OS_NAME)-$(OS_ARCH)
+
+# Check ARCH_DATA_MODEL, adjust OS_ARCH accordingly on solaris
ARCH_DATA_MODEL_ERROR= \
- ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) cannot be used with $(OS_NAME)-$(ARCH)
+ ARCH_DATA_MODEL=$(ARCH_DATA_MODEL) cannot be used with $(PLATFORM_OS)
ifeq ($(ARCH_DATA_MODEL),64)
- ifeq ($(OS_NAME)-$(OS_ARCH),solaris-i586)
- OS_ARCH=x64
+ ifeq ($(PLATFORM_OS),solaris-i586)
+ OS_ARCH=$(OS_ARCH_X64_NAME)
endif
- ifeq ($(OS_NAME)-$(OS_ARCH),solaris-sparc)
+ ifeq ($(PLATFORM_OS),solaris-sparc)
OS_ARCH=sparcv9
endif
ifeq ($(OS_ARCH),i586)
@@ -131,7 +160,7 @@
endif
else
ifeq ($(ARCH_DATA_MODEL),32)
- ifeq ($(OS_ARCH),x64)
+ ifeq ($(OS_ARCH),$(OS_ARCH_X64_NAME))
x:=$(warning "WARNING: $(ARCH_DATA_MODEL_ERROR)")
endif
ifeq ($(OS_ARCH),ia64)
@@ -145,6 +174,12 @@
endif
endif
+# Alternate OS_ARCH name (defaults to OS_ARCH)
+OS_ARCH2:=$(OS_ARCH2-$(OS_ARCH))
+ifeq ($(OS_ARCH2),)
+ OS_ARCH2:=$(OS_ARCH)
+endif
+
# Root of this test area (important to use full paths in some places)
TEST_ROOT := $(shell $(PWD))
@@ -152,21 +187,21 @@
ifdef ALT_OUTPUTDIR
ABS_OUTPUTDIR = $(ALT_OUTPUTDIR)
else
- ABS_OUTPUTDIR = $(TEST_ROOT)/../build/$(OS_NAME)-$(OS_ARCH)
+ ABS_OUTPUTDIR = $(TEST_ROOT)/../build/$(PLATFORM_OS)
endif
-ABS_BUILD_ROOT = $(ABS_OUTPUTDIR)
-ABS_TEST_OUTPUT_DIR := $(ABS_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
+ABS_PLATFORM_BUILD_ROOT = $(ABS_OUTPUTDIR)
+ABS_TEST_OUTPUT_DIR := $(ABS_PLATFORM_BUILD_ROOT)/testoutput/$(UNIQUE_DIR)
# Expect JPRT to set PRODUCT_HOME (the product or jdk in this case to test)
ifndef PRODUCT_HOME
# Try to use j2sdk-image if it exists
- ABS_JDK_IMAGE = $(ABS_BUILD_ROOT)/j2sdk-image
- PRODUCT_HOME := \
- $(shell \
- if [ -d $(ABS_JDK_IMAGE) ] ; then \
- $(ECHO) "$(ABS_JDK_IMAGE)"; \
- else \
- $(ECHO) "$(ABS_BUILD_ROOT)"; \
+ ABS_JDK_IMAGE = $(ABS_PLATFORM_BUILD_ROOT)/j2sdk-image
+ PRODUCT_HOME := \
+ $(shell \
+ if [ -d $(ABS_JDK_IMAGE) ] ; then \
+ $(ECHO) "$(ABS_JDK_IMAGE)"; \
+ else \
+ $(ECHO) "$(ABS_PLATFORM_BUILD_ROOT)"; \
fi)
PRODUCT_HOME := $(PRODUCT_HOME)
endif
@@ -325,8 +360,10 @@
@$(RM) $@ $@.temp1 $@.temp2
@(($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-all' ) ;\
($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_ARCH)' ) ;\
+ ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_ARCH2)' ) ;\
($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- '$(OS_NAME)-$(OS_VERSION)') ;\
($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH)' ) ;\
+ ($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-$(OS_ARCH2)' ) ;\
($(CAT) $(PROBLEM_LISTS) | $(EGREP) -- 'generic-all' ) ;\
($(ECHO) "#") ;\
) | $(SED) -e 's@^[\ ]*@@' \
--- a/jdk/test/ProblemList.txt Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/ProblemList.txt Tue Apr 20 01:24:48 2010 -0700
@@ -596,10 +596,6 @@
# Interrupted or IO exception, maybe writing to non-unique named file?
com/sun/net/httpserver/bugs/B6373555.java generic-all
-# Dies on pretty much all platforms when run with -ea -esa, Assertion error
-java/net/CookieHandler/TestHttpCookie.java generic-all
-java/net/URLClassLoader/closetest/CloseTest.java generic-all
-
# Fails on OpenSolaris, BindException unexpected
java/net/BindException/Test.java generic-all
@@ -647,9 +643,6 @@
# Linux i586, fails with unexpected output
java/net/MulticastSocket/NoLoopbackPackets.java linux-i586
-# Times out on windows x64, fails with samevm on solaris 11 i586
-java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java generic-all
-
# Address already in use
java/net/DatagramSocket/DatagramTimeout.java generic-all
@@ -661,7 +654,6 @@
java/net/Socket/AccurateTimeout.java generic-all
java/net/Socket/asyncClose/BrokenPipe.java generic-all
java/net/Socket/CloseAvailable.java generic-all
-java/net/Socket/FDClose.java generic-all
# Linux X64 address already in use, samevm issues
java/net/Socket/LingerTest.java generic-all
@@ -692,8 +684,6 @@
java/net/SocketInputStream/SocketTimeout.java generic-all
# Linux i586, address already in use or timeout, samevm issues
-java/net/URLConnection/B5052093.java generic-all
-java/net/URLConnection/contentHandler/UserContentHandler.java generic-all
java/net/URLConnection/DisconnectAfterEOF.java generic-all
java/net/URLConnection/HandleContentTypeWithAttrs.java generic-all
java/net/URLConnection/Responses.java generic-all
@@ -701,12 +691,9 @@
java/net/URLConnection/ZeroContentLength.java generic-all
# Solaris 11 i586 fails with samevm, not sure why
-java/net/HttpURLConnection/HttpResponseCode.java generic-all
java/net/ResponseCache/B6181108.java generic-all
java/net/ResponseCache/ResponseCacheTest.java generic-all
java/net/URL/GetContent.java generic-all
-java/net/URL/TestIPv6Addresses.java generic-all
-java/net/URLClassLoader/HttpTest.java generic-all
java/net/URLConnection/HttpContinueStackOverflow.java generic-all
java/net/URLConnection/Redirect307Test.java generic-all
java/net/URLConnection/RedirectLimit.java generic-all
@@ -735,9 +722,6 @@
# Connection refused, windows samevm
sun/net/www/protocol/http/DigestTest.java generic-all
-# Fails on Fedora 9 32bit & 64bit & Solaris 10, wrong proxy for http://localhost/index.html
-java/net/ProxySelector/B6737819.java generic-all
-
############################################################################
# jdk_nio
@@ -745,6 +729,9 @@
# Suspect many of these tests auffer from using fixed ports, no concrete
# evidence.
+# Failing on Solaris x86 and Linux x86, filed 6934585
+java/nio/channels/AsynchronousSocketChannel/Basic.java generic-all
+
# Occasionally Failing with java.lang.AssertionError on Windows X64
# at sun.nio.ch.PendingIoCache.clearPendingIoMap(PendingIoCache.java:144)
#java/nio/channels/FileChannel/ReleaseOnCloseDeadlock.java windows-all
@@ -948,6 +935,15 @@
# jdk_security
+# Failing on Solaris i586, 3/9/2010, not a -samevm issue (jdk_security3)
+sun/security/pkcs11/Secmod/AddPrivateKey.java solaris-i586
+sun/security/pkcs11/ec/ReadCertificates.java solaris-i586
+sun/security/pkcs11/ec/ReadPKCS12.java solaris-i586
+sun/security/pkcs11/ec/TestCurves.java solaris-i586
+sun/security/pkcs11/ec/TestECDSA.java solaris-i586
+sun/security/pkcs11/ec/TestECGenSpec.java solaris-i586
+sun/security/pkcs11/ec/TestKeyFactory.java solaris-i586
+
# Unknown problem, could be a jtreg -samevm issue?
# Error while cleaning up threads after test
java/security/Security/SynchronizedAccess.java generic-all
--- a/jdk/test/java/beans/EventHandler/Test6277246.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/beans/EventHandler/Test6277246.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,10 +49,10 @@
catch (NoSuchMethodException exception) {
throw new Error("unexpected exception", exception);
}
+ catch (SecurityException exception) {
+ // expected security exception
+ }
catch (RuntimeException exception) {
- if (exception.getCause() instanceof SecurityException) {
- return; // expected security exception
- }
throw new Error("unexpected exception", exception);
}
}
--- a/jdk/test/java/beans/EventHandler/Test6277266.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/beans/EventHandler/Test6277266.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,7 +51,7 @@
);
throw new Error("SecurityException expected");
} catch (InvocationTargetException exception) {
- if (exception.getCause().getCause() instanceof SecurityException){
+ if (exception.getCause() instanceof SecurityException){
return; // expected security exception
}
throw new Error("unexpected exception", exception);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/beans/Statement/Test6707226.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6707226
+ * @summary Tests the value updating in Expression
+ * @author Sergey Malenkov
+ */
+
+import java.beans.Expression;
+
+public class Test6707226 {
+ public static void main(String[] args) throws Exception {
+ Object value = new Object();
+
+ Expression expression = new Expression(value, Object.class, "new", null);
+ if (!value.equals(expression.getValue()))
+ throw new Error("the value is updated unexpectedly");
+
+ expression.execute();
+ if (value.equals(expression.getValue()))
+ throw new Error("the value is not updated as expected");
+ }
+}
--- a/jdk/test/java/lang/ProcessBuilder/Basic.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/lang/ProcessBuilder/Basic.java Tue Apr 20 01:24:48 2010 -0700
@@ -26,6 +26,7 @@
* @bug 4199068 4738465 4937983 4930681 4926230 4931433 4932663 4986689
* 5026830 5023243 5070673 4052517 4811767 6192449 6397034 6413313
* 6464154 6523983 6206031 4960438 6631352 6631966 6850957 6850958
+ * 4947220
* @summary Basic tests for Process and Environment Variable code
* @run main/othervm Basic
* @author Martin Buchholz
@@ -1456,13 +1457,14 @@
new File(System.getProperty("user.dir")).getCanonicalPath();
String[] sdirs = new String[]
{".", "..", "/", "/bin",
- "C:", "c:", "C:/", "c:\\", "\\", "\\bin" };
+ "C:", "c:", "C:/", "c:\\", "\\", "\\bin",
+ "c:\\windows ", "c:\\Program Files", "c:\\Program Files\\" };
for (String sdir : sdirs) {
File dir = new File(sdir);
if (! (dir.isDirectory() && dir.exists()))
continue;
out.println("Testing directory " + dir);
- dir = new File(dir.getCanonicalPath());
+ //dir = new File(dir.getCanonicalPath());
ProcessBuilder pb = new ProcessBuilder();
equal(pb.directory(), null);
@@ -1470,7 +1472,7 @@
pb.directory(dir);
equal(pb.directory(), dir);
- equal(pwdInChild(pb), dir.toString());
+ equal(pwdInChild(pb), dir.getCanonicalPath());
pb.directory(null);
equal(pb.directory(), null);
@@ -1481,6 +1483,27 @@
} catch (Throwable t) { unexpected(t); }
//----------------------------------------------------------------
+ // Working directory with Unicode in child
+ //----------------------------------------------------------------
+ try {
+ if (UnicodeOS.is()) {
+ File dir = new File(System.getProperty("test.dir", "."),
+ "ProcessBuilderDir\u4e00\u4e02");
+ try {
+ if (!dir.exists())
+ dir.mkdir();
+ out.println("Testing Unicode directory:" + dir);
+ ProcessBuilder pb = new ProcessBuilder();
+ pb.directory(dir);
+ equal(pwdInChild(pb), dir.getCanonicalPath());
+ } finally {
+ if (dir.exists())
+ dir.delete();
+ }
+ }
+ } catch (Throwable t) { unexpected(t); }
+
+ //----------------------------------------------------------------
// OOME in child allocating maximally sized array
// Test for hotspot/jvmti bug 6850957
//----------------------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/Authenticator/Deadlock.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6648001
+ * @run main/othervm/timeout=20 -ea:sun.net.www.protocol.http.AuthenticationInfo -Dhttp.auth.serializeRequests=true Deadlock
+ * @summary cancelling HTTP authentication causes deadlock
+ */
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ExecutorService;
+import java.io.InputStream;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.InetSocketAddress;
+import java.net.PasswordAuthentication;
+import java.net.URL;
+import com.sun.net.httpserver.BasicAuthenticator;
+import com.sun.net.httpserver.Headers;
+import com.sun.net.httpserver.HttpContext;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpPrincipal;
+import com.sun.net.httpserver.HttpServer;
+
+public class Deadlock {
+
+ public static void main (String[] args) throws Exception {
+ Handler handler = new Handler();
+ InetSocketAddress addr = new InetSocketAddress (0);
+ HttpServer server = HttpServer.create(addr, 0);
+ HttpContext ctx = server.createContext("/test", handler);
+ BasicAuthenticator a = new BasicAuthenticator("foobar@test.realm") {
+ @Override
+ public boolean checkCredentials (String username, String pw) {
+ return "fred".equals(username) && pw.charAt(0) == 'x';
+ }
+ };
+
+ ctx.setAuthenticator(a);
+ ExecutorService executor = Executors.newCachedThreadPool();
+ server.setExecutor(executor);
+ server.start ();
+ java.net.Authenticator.setDefault(new MyAuthenticator());
+
+ System.out.print("Deadlock: " );
+ for (int i=0; i<2; i++) {
+ Runner t = new Runner(server, i);
+ t.start();
+ t.join();
+ }
+ server.stop(2);
+ executor.shutdown();
+ if (error) {
+ throw new RuntimeException("test failed error");
+ }
+
+ if (count != 2) {
+ throw new RuntimeException("test failed count = " + count);
+ }
+ System.out.println("OK");
+
+ }
+
+ static class Runner extends Thread {
+ HttpServer server;
+ int i;
+ Runner(HttpServer s, int i) {
+ server = s;
+ this.i = i;
+ }
+
+ @Override
+ public void run() {
+ URL url;
+ HttpURLConnection urlc;
+ try {
+ url = new URL("http://localhost:"+server.getAddress().getPort()+"/test/foo.html");
+ urlc = (HttpURLConnection)url.openConnection ();
+ } catch (IOException e) {
+ error = true;
+ return;
+ }
+ InputStream is = null;
+ try {
+ is = urlc.getInputStream();
+ while (is.read()!= -1) {}
+ } catch (IOException e) {
+ if (i == 1) error = true;
+ } finally {
+ if (is != null) try { is.close(); } catch (IOException e) {}
+ }
+ }
+ }
+
+ public static boolean error = false;
+ public static int count = 0;
+
+ static class MyAuthenticator extends java.net.Authenticator {
+ @Override
+ public PasswordAuthentication getPasswordAuthentication() {
+ PasswordAuthentication pw;
+ if (!getRequestingPrompt().equals("foobar@test.realm")) {
+ Deadlock.error = true;
+ }
+ if (count == 0) {
+ pw = null;
+ } else {
+ pw = new PasswordAuthentication("fred", "xyz".toCharArray());
+ }
+ count++;
+ return pw;
+ }
+ }
+
+ static class Handler implements HttpHandler {
+ int invocation = 1;
+
+ @Override
+ public void handle (HttpExchange t)
+ throws IOException
+ {
+ InputStream is = t.getRequestBody();
+ Headers map = t.getRequestHeaders();
+ Headers rmap = t.getResponseHeaders();
+ while (is.read() != -1);
+ is.close();
+ t.sendResponseHeaders(200, -1);
+ HttpPrincipal p = t.getPrincipal();
+ if (!p.getUsername().equals("fred")) {
+ error = true;
+ }
+ if (!p.getRealm().equals("foobar@test.realm")) {
+ error = true;
+ }
+ t.close();
+ }
+ }
+}
--- a/jdk/test/java/net/CookieHandler/CookieHandlerTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/CookieHandler/CookieHandlerTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -24,9 +24,13 @@
/* @test
* @summary Unit test for java.net.CookieHandler
* @bug 4696506
+ * @run main/othervm CookieHandlerTest
* @author Yingxian Wang
*/
+// Run in othervm since a default cookier handler is set and this
+// can effect other HTTP related tests.
+
import java.net.*;
import java.util.*;
import java.io.*;
--- a/jdk/test/java/net/CookieHandler/TestHttpCookie.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/CookieHandler/TestHttpCookie.java Tue Apr 20 01:24:48 2010 -0700
@@ -48,7 +48,6 @@
}
TestHttpCookie(String cHeader) {
- assert cHeader != null;
this.cHeader = cHeader;
try {
--- a/jdk/test/java/net/MulticastSocket/NoLoopbackPackets.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/MulticastSocket/NoLoopbackPackets.java Tue Apr 20 01:24:48 2010 -0700
@@ -29,9 +29,7 @@
import java.util.*;
import java.net.*;
-
public class NoLoopbackPackets {
- private static int PORT = 9001;
private static String osname;
static boolean isWindows() {
@@ -68,40 +66,47 @@
return;
}
- // we will send packets to three multicast groups :-
- // 224.1.1.1, ::ffff:224.1.1.2, and ff02::1:1
- //
- List<SocketAddress> groups = new ArrayList<SocketAddress>();
- groups.add(new InetSocketAddress(InetAddress.getByName("224.1.1.1"), PORT));
- groups.add(new InetSocketAddress(InetAddress.getByName("::ffff:224.1.1.2"), PORT));
- groups.add(new InetSocketAddress(InetAddress.getByName("ff02::1:1"), PORT));
+ MulticastSocket msock = null;
+ List<SocketAddress> failedGroups = new ArrayList<SocketAddress>();
+ try {
+ msock = new MulticastSocket();
+ int port = msock.getLocalPort();
- Thread sender = new Thread(new Sender(groups));
- sender.setDaemon(true); // we want sender to stop when main thread exits
- sender.start();
+ // we will send packets to three multicast groups :-
+ // 224.1.1.1, ::ffff:224.1.1.2, and ff02::1:1
+ //
+ List<SocketAddress> groups = new ArrayList<SocketAddress>();
+ groups.add(new InetSocketAddress(InetAddress.getByName("224.1.1.1"), port));
+ groups.add(new InetSocketAddress(InetAddress.getByName("::ffff:224.1.1.2"), port));
+ groups.add(new InetSocketAddress(InetAddress.getByName("ff02::1:1"), port));
+
+ Thread sender = new Thread(new Sender(groups));
+ sender.setDaemon(true); // we want sender to stop when main thread exits
+ sender.start();
- // Now try to receive multicast packets. we should not see any of them
- // since we disable loopback mode.
- //
- MulticastSocket msock = new MulticastSocket(PORT);
- msock.setSoTimeout(5000); // 5 seconds
+ // Now try to receive multicast packets. we should not see any of them
+ // since we disable loopback mode.
+ //
+ msock.setSoTimeout(5000); // 5 seconds
+
+ byte[] buf = new byte[1024];
+ DatagramPacket packet = new DatagramPacket(buf, 0, buf.length);
+ for (SocketAddress group : groups) {
+ msock.joinGroup(group, null);
- byte[] buf = new byte[1024];
- DatagramPacket packet = new DatagramPacket(buf, 0, buf.length);
- List<SocketAddress> failedGroups = new ArrayList<SocketAddress>();
- for (SocketAddress group : groups) {
- msock.joinGroup(group, null);
+ try {
+ msock.receive(packet);
- try {
- msock.receive(packet);
+ // it is an error if we receive something
+ failedGroups.add(group);
+ } catch (SocketTimeoutException e) {
+ // we expect this
+ }
- // it is an error if we receive something
- failedGroups.add(group);
- } catch (SocketTimeoutException e) {
- // we expect this
+ msock.leaveGroup(group, null);
}
-
- msock.leaveGroup(group, null);
+ } finally {
+ if (msock != null) try { msock.close(); } catch (Exception e) {}
}
if (failedGroups.size() > 0) {
@@ -111,36 +116,36 @@
throw new RuntimeException("test failed.");
}
}
-}
+
+ static class Sender implements Runnable {
+ private List<SocketAddress> sendToGroups;
-class Sender implements Runnable {
- private List<SocketAddress> sendToGroups;
-
- public Sender(List<SocketAddress> groups) {
- sendToGroups = groups;
- }
+ public Sender(List<SocketAddress> groups) {
+ sendToGroups = groups;
+ }
- public void run() {
- byte[] buf = "hello world".getBytes();
- List<DatagramPacket> packets = new ArrayList<DatagramPacket>();
+ public void run() {
+ byte[] buf = "hello world".getBytes();
+ List<DatagramPacket> packets = new ArrayList<DatagramPacket>();
- try {
- for (SocketAddress group : sendToGroups) {
- DatagramPacket packet = new DatagramPacket(buf, buf.length, group);
- packets.add(packet);
- }
-
- MulticastSocket msock = new MulticastSocket();
- msock.setLoopbackMode(true); // disable loopback mode
- for (;;) {
- for (DatagramPacket packet : packets) {
- msock.send(packet);
+ try {
+ for (SocketAddress group : sendToGroups) {
+ DatagramPacket packet = new DatagramPacket(buf, buf.length, group);
+ packets.add(packet);
}
- Thread.currentThread().sleep(1000); // 1 second
+ MulticastSocket msock = new MulticastSocket();
+ msock.setLoopbackMode(true); // disable loopback mode
+ for (;;) {
+ for (DatagramPacket packet : packets) {
+ msock.send(packet);
+ }
+
+ Thread.sleep(1000); // 1 second
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
- } catch (Exception e) {
- throw new RuntimeException(e);
}
}
}
--- a/jdk/test/java/net/ProxySelector/B6737819.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ProxySelector/B6737819.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,9 +23,15 @@
/*
* @test
* @bug 6737819
+ * @run main/othervm B6737819
* @summary sun.misc.net.DefaultProxySelector doesn't use proxy setting to localhost
*/
+/* Run in othervm mode since the test sets HTTP proxy system properties that
+ * are read once and cached by the protocol handler. A previous test using the
+ * HTTP handler may run and these system properties may be ignored for this test.
+ */
+
import java.net.ProxySelector;
import java.net.Proxy;
import java.net.URI;
--- a/jdk/test/java/net/ResponseCache/ResponseCacheTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ResponseCache/ResponseCacheTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -150,10 +150,14 @@
}
}
public static void main(String args[]) throws Exception {
- ResponseCache.setDefault(new MyResponseCache());
- FNPrefix = System.getProperty("test.src", ".")+"/";
- OutFNPrefix = System.getProperty("test.scratch", ".")+"/";
- new ResponseCacheTest();
+ try {
+ ResponseCache.setDefault(new MyResponseCache());
+ FNPrefix = System.getProperty("test.src", ".")+"/";
+ OutFNPrefix = System.getProperty("test.scratch", ".")+"/";
+ new ResponseCacheTest();
+ } finally{
+ ResponseCache.setDefault(null);
+ }
}
static class MyResponseCache extends ResponseCache {
--- a/jdk/test/java/net/ResponseCache/getResponseCode.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ResponseCache/getResponseCode.java Tue Apr 20 01:24:48 2010 -0700
@@ -30,8 +30,7 @@
import java.net.*;
import java.util.*;
import java.io.*;
-import java.nio.*;
-import sun.net.www.ParseUtil;
+
/**
* Request should get serviced by the cache handler. Response get
@@ -52,9 +51,13 @@
}
}
public static void main(String args[]) throws Exception {
- ResponseCache.setDefault(new MyResponseCache());
- FNPrefix = System.getProperty("test.src", ".")+"/";
- new getResponseCode();
+ try {
+ ResponseCache.setDefault(new MyResponseCache());
+ FNPrefix = System.getProperty("test.src", ".")+"/";
+ new getResponseCode();
+ } finally{
+ ResponseCache.setDefault(null);
+ }
}
static class MyResponseCache extends ResponseCache {
--- a/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java Tue Apr 20 01:24:48 2010 -0700
@@ -22,17 +22,16 @@
*/
/*
- * @test
- * @summary configuring unconnected Socket before passing to implAccept can cause fd leak
- * @bug 6368984
- * @author Edward Wang
+ * Test run from script, AcceptCauseFileDescriptorLeak.sh
+ * author Edward Wang
*/
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.Socket;
public class AcceptCauseFileDescriptorLeak {
- private static final int REPS = 1000;
+ private static final int REPS = 2048;
public static void main(String[] args) throws Exception {
final ServerSocket ss = new ServerSocket(0) {
@@ -60,31 +59,5 @@
}
ss.close();
t.join();
-
- //
- // The threshold 20 below is a little arbitrary. The point here is that
- // the remaining open file descriptors should be constant independent
- // of REPS.
- //
- if (countOpenFD() > 20) {
- throw new RuntimeException("File descriptor leak detected.");
- }
- }
-
-
- /*
- * Actually, this approach to count open file descriptors only
- * works for Solaris/Linux. On Windows platform, this method
- * will simply return zero. So the test will always be passed
- * on Windows, too.
- */
- private static int countOpenFD() {
- File dirOfFD = new File("/proc/self/fd");
- File[] fds = dirOfFD.listFiles();
-
- if (fds != null)
- return fds.length;
- else
- return 0;
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.sh Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,48 @@
+#
+# Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6368984
+# @summary configuring unconnected Socket before passing to implAccept can cause fd leak
+# @build AcceptCauseFileDescriptorLeak
+# @run shell AcceptCauseFileDescriptorLeak.sh
+
+OS=`uname -s`
+case "$OS" in
+ Windows_* | CYGWIN* )
+ echo "ulimit not on Windows"
+ exit 0
+ ;;
+ * )
+ CLASSPATH=${TESTCLASSES}:${TESTSRC}
+ ;;
+esac
+export CLASSPATH
+
+# hard limit needs to be less than 1024 for this bug
+NOFILES=`ulimit -n -H`
+if [ "$NOFILES" = "unlimited" ] || [ $NOFILES -ge 1024 ]; then
+ ulimit -n 1024
+fi
+
+${TESTJAVA}/bin/java AcceptCauseFileDescriptorLeak
--- a/jdk/test/java/net/Socket/FDClose.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
- * Copyright 1998-2002 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/**
- * @test
- * @bug 4152799
- * @summary test to see if interrupting a socket accept closes fd0
- */
-import java.net.*;
-import java.io.*;
-import java.util.*;
-
-public class FDClose {
-
- static boolean isServerReady = false;
-
- public static void main(String[] args) throws Exception {
-
- Thread me = Thread.currentThread();
-
- // Put a thread waiting on SocketServer.Accept
- AReader test = new AReader();
- Thread readerThread = new Thread(test);
- readerThread.start();
-
- // wait for the server socket to be ready
- while (!isServerReady) {
- me.sleep(100);
- }
-
- // Interrupt the waiting thread
- readerThread.interrupt();
-
- // Wait another moment
- me.sleep(100);
-
- // Check to see if fd0 is closed
- System.in.available();
- }
-
- public static class AReader implements Runnable {
- public void run() {
- try {
- ServerSocket sock = new ServerSocket(0);
- isServerReady = true;
- sock.accept();
- } catch (Exception e) {
- }
- }
- }
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/net/Socket/SocksConnectTimeout.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6223635
+ * @summary Code hangs at connect call even when Timeout is specified
+ */
+
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Proxy;
+import java.net.Socket;
+import java.net.ServerSocket;
+import java.net.SocketTimeoutException;
+import java.io.IOException;
+import java.io.Closeable;
+import java.util.concurrent.Phaser;
+import java.util.concurrent.TimeUnit;
+
+public class SocksConnectTimeout {
+ static ServerSocket serverSocket;
+ static final boolean debug = true;
+ static final Phaser startPhaser = new Phaser(2);
+ static final Phaser finishPhaser = new Phaser(2);
+ static int failed, passed;
+
+ public static void main(String[] args) {
+ try {
+ serverSocket = new ServerSocket(0);
+
+ (new Thread() {
+ @Override
+ public void run() { serve(); }
+ }).start();
+
+ Proxy socksProxy = new Proxy(Proxy.Type.SOCKS,
+ new InetSocketAddress(InetAddress.getLocalHost(), serverSocket.getLocalPort()));
+
+ test(socksProxy);
+ } catch (IOException e) {
+ unexpected(e);
+ } finally {
+ close(serverSocket);
+
+ if (failed > 0)
+ throw new RuntimeException("Test Failed: passed:" + passed + ", failed:" + failed);
+ }
+ }
+
+ static void test(Proxy proxy) {
+ startPhaser.arriveAndAwaitAdvance();
+ Socket socket = null;
+ try {
+ socket = new Socket(proxy);
+ connectWithTimeout(socket);
+ failed("connected successfully!");
+ } catch (SocketTimeoutException socketTimeout) {
+ debug("Passed: Received: " + socketTimeout);
+ passed();
+ } catch (Exception exception) {
+ failed("Connect timeout test failed", exception);
+ } finally {
+ finishPhaser.arriveAndAwaitAdvance();
+ close(socket);
+ }
+ }
+
+ static void connectWithTimeout(Socket socket) throws IOException {
+ socket.connect(new InetSocketAddress(InetAddress.getLocalHost(), 1234), 500);
+ }
+
+ static void serve() {
+ Socket client = null;
+ try {
+ startPhaser.arriveAndAwaitAdvance();
+ client = serverSocket.accept();
+ finishPhaser.awaitAdvanceInterruptibly(finishPhaser.arrive(), 5, TimeUnit.SECONDS);
+ } catch (Exception e) {
+ unexpected(e);
+ } finally {
+ close(client);
+ }
+ }
+
+ static void debug(String message) {
+ if (debug)
+ System.out.println(message);
+ }
+
+ static void unexpected(Exception e ) {
+ System.out.println("Unexcepted Exception: " + e);
+ }
+
+ static void close(Closeable closeable) {
+ if (closeable != null) try { closeable.close(); } catch (IOException e) {unexpected(e);}
+ }
+
+ static void failed(String message) {
+ System.out.println(message);
+ failed++;
+ }
+
+ static void failed(String message, Exception e) {
+ System.out.println(message);
+ System.out.println(e);
+ failed++;
+ }
+
+ static void passed() { passed++; };
+
+}
--- a/jdk/test/java/net/URL/TestIPv6Addresses.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/URL/TestIPv6Addresses.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,8 +23,12 @@
/* @test
* @bug 4451522 4460484
+ * @run main/othervm TestIPv6Addresses
* @summary URI and URL getHost() methods don't comform to RFC 2732
*/
+
+// Run in othervm because the tests sets a SecurityManager
+
import java.net.*;
public class TestIPv6Addresses {
--- a/jdk/test/java/net/URLClassLoader/HttpTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/URLClassLoader/HttpTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -56,9 +56,9 @@
}
public void run() {
+ InputStream in = null;
try {
-
- InputStream in = s.getInputStream();
+ in = s.getInputStream();
for (;;) {
// read entire request from client
@@ -111,6 +111,9 @@
} // for
} catch (Exception e) {
+ unexpected(e);
+ } finally {
+ if (in != null) { try {in.close(); } catch(IOException e) {unexpected(e);} }
}
}
}
@@ -131,6 +134,11 @@
}
}
+ void unexpected(Exception e) {
+ System.out.println(e);
+ e.printStackTrace();
+ }
+
public static HttpServer create() throws Exception {
if (svr != null)
return svr;
@@ -211,6 +219,7 @@
// one GET request
svr.counters().reset();
InputStream in = cl.getResourceAsStream("foo2.gif");
+ in.close();
System.out.println(svr.counters());
if (svr.counters().getCount() > 1) {
failed = true;
--- a/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/URLClassLoader/closetest/CloseTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -34,7 +34,6 @@
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
-import java.util.concurrent.*;
import com.sun.net.httpserver.*;
public class CloseTest {
@@ -107,7 +106,6 @@
} else {
copyFile (new File (src, f), new File (dst, f));
}
- assert false;
}
}
--- a/jdk/test/java/net/URLConnection/B5052093.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/URLConnection/B5052093.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,12 +1,10 @@
/*
- * Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun in the LICENSE file that accompanied this code.
+ * published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
@@ -66,17 +64,29 @@
public static void main(String[] args) throws Exception {
server = new HttpServer(new B5052093(), 1, 10, 0);
- URL url = new URL("http://localhost:"+server.getLocalPort()+"/foo");
- URLConnection conn = url.openConnection();
- int i = conn.getContentLength();
- long l = conn.getContentLengthLong();
- if (i != -1 || l != testSize)
- throw new RuntimeException("Wrong content-length from http");
+ try {
+ URL url = new URL("http://localhost:"+server.getLocalPort()+"/foo");
+ URLConnection conn = url.openConnection();
+ int i = conn.getContentLength();
+ long l = conn.getContentLengthLong();
+ if (i != -1 || l != testSize) {
+ System.out.println("conn.getContentLength = " + i);
+ System.out.println("conn.getContentLengthLong = " + l);
+ System.out.println("testSize = " + testSize);
+ throw new RuntimeException("Wrong content-length from http");
+ }
- URLConnection fu = new LargeFileURLConnection(new LargeFile());
- i = fu.getContentLength();
- l = fu.getContentLengthLong();
- if (i != -1 || l != testSize)
- throw new RuntimeException("Wrong content-length from file");
+ URLConnection fu = new LargeFileURLConnection(new LargeFile());
+ i = fu.getContentLength();
+ l = fu.getContentLengthLong();
+ if (i != -1 || l != testSize) {
+ System.out.println("fu.getContentLength = " + i);
+ System.out.println("fu.getContentLengthLong = " + l);
+ System.out.println("testSize = " + testSize);
+ throw new RuntimeException("Wrong content-length from file");
+ }
+ } finally {
+ server.terminate();
+ }
}
}
--- a/jdk/test/java/net/URLConnection/contentHandler/UserContentHandler.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/URLConnection/contentHandler/UserContentHandler.java Tue Apr 20 01:24:48 2010 -0700
@@ -25,8 +25,16 @@
* @bug 4191147
* @summary 1.2beta4 does not load user defined content handlers
* @build UserContentHandler
- * @run main UserContentHandler
+ * @run main/othervm UserContentHandler
*/
+
+/* Run in othervm mode since the test sets a system property, java.content.handler.pkgs,
+ * that prepends a specific package prefix defining a text/plain content
+ * handler. If other URLConnection tests run before this one they might trigger
+ * the Sun implementation text/plain content handler in sun.net.www.content
+ * to be loaded and cached, this will break this test.
+ */
+
import java.net.*;
import java.io.*;
import java.util.*;
@@ -55,7 +63,7 @@
// don't close the connection immediately as otherwise
// the http headers may not have been received and the
// http client will re-connect.
- Thread.currentThread().sleep(2000);
+ Thread.sleep(2000);
s.close();
--- a/jdk/test/java/net/ipv6tests/TcpTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ipv6tests/TcpTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -47,9 +47,11 @@
try {
ia4any = InetAddress.getByName ("0.0.0.0");
ia6any = InetAddress.getByName ("::0");
- int scope = ia6addr.getScopeId();
- if (scope != 0) {
- ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+ if (ia6addr != null) {
+ int scope = ia6addr.getScopeId();
+ if (scope != 0) {
+ ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6%"+scope);
+ }
} else {
ia6bad = InetAddress.getByName ("fe80::1:2:3:4:5:6");
}
--- a/jdk/test/java/net/ipv6tests/Tests.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/net/ipv6tests/Tests.java Tue Apr 20 01:24:48 2010 -0700
@@ -38,12 +38,25 @@
OutputStream o1 = s1.getOutputStream();
OutputStream o2 = s2.getOutputStream();
- simpleWrite (o1, 100);
- simpleWrite (o2, 200);
+ startSimpleWriter("SimpleWriter-1", o1, 100);
+ startSimpleWriter("SimpleWriter-2", o2, 200);
simpleRead (i2, 100);
simpleRead (i1, 200);
}
+ static void startSimpleWriter(String threadName, final OutputStream os, final int start) {
+ (new Thread(new Runnable() {
+ public void run() {
+ try { simpleWrite(os, start); }
+ catch (Exception e) {unexpected(e); }
+ }}, threadName)).start();
+ }
+
+ static void unexpected(Exception e ) {
+ System.out.println("Unexcepted Exception: " + e);
+ e.printStackTrace();
+ }
+
/**
* Send a packet from s1 to s2 (ia2/s2.localPort) and check it
* Send a packet from s2 to s1 (ia1/s1.localPort) and check it
@@ -247,13 +260,15 @@
}
private NetworkInterface getNextIf () {
- while (ifs.hasMoreElements()) {
- NetworkInterface nic = (NetworkInterface)ifs.nextElement();
- try {
- if (nic.isUp() && !nic.isLoopback())
- return nic;
- } catch (SocketException e) {
- // ignore
+ if (ifs != null) {
+ while (ifs.hasMoreElements()) {
+ NetworkInterface nic = (NetworkInterface)ifs.nextElement();
+ try {
+ if (nic.isUp() && !nic.isLoopback())
+ return nic;
+ } catch (SocketException e) {
+ // ignore
+ }
}
}
--- a/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/nio/charset/Charset/NIOCharsetAvailabilityTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4777124 6920545
+ * @bug 4777124 6920545 6911753
* @summary Verify that all Charset subclasses are available through the API
*/
@@ -65,8 +65,6 @@
// remove the known pseudo-charsets that serve only to implement
// other charsets, but shouldn't be known to the public
charsets.remove(Class.forName("sun.nio.cs.Unicode"));
- charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS"));
- charsets.remove(Class.forName("sun.nio.cs.ext.HKSCS_2001"));
charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022"));
charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_GB"));
charsets.remove(Class.forName("sun.nio.cs.ext.ISO2022_CN_CNS"));
--- a/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/java/nio/charset/Charset/RegisteredCharsets.java Tue Apr 20 01:24:48 2010 -0700
@@ -22,7 +22,7 @@
*/
/* @test
- * @bug 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668
+ * @bug 4473201 4696726 4652234 4482298 4784385 4966197 4267354 5015668 6911753
* @summary Check that registered charsets are actually registered
*/
@@ -240,7 +240,6 @@
"Big5_HKSCS",
"big5hk",
"big5-hkscs",
- "big5-hkscs:unicode3.0",
"big5hkscs"
});
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/ReturnStream.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6813340
+ * @summary X509Factory should not depend on is.available()==0
+ */
+import java.io.*;
+import java.security.cert.*;
+
+/**
+ * Tests ol'Mac style file, end witha single '\r'
+ */
+public class ReturnStream {
+
+ public static void main(String[] args) throws Exception {
+ FileInputStream fin = new FileInputStream(new File(new File(
+ System.getProperty("test.src", "."), "openssl"), "pem"));
+ byte[] buffer = new byte[4096];
+ int size = 0;
+ while (true) {
+ int len = fin.read(buffer, size, 4096-size);
+ if (len < 0) break;
+ size += len;
+ }
+ fin.close();
+
+ // Make a copy
+ System.arraycopy(buffer, 0, buffer, size, size);
+ size += size;
+
+ // Create a ol'Mac style file.
+ for (int i=0; i<size; i++) {
+ if (buffer[i] == '\n') buffer[i] = '\r';
+ }
+
+ CertificateFactory factory = CertificateFactory.getInstance("X.509");
+ if (factory.generateCertificates(
+ new ByteArrayInputStream(buffer, 0, size)).size() != 2) {
+ throw new Exception("Cert not OK");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/SlowStream.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import java.io.*;
+import java.security.cert.*;
+
+class SlowStreamReader {
+
+ public static void main(String[] args) throws Exception {
+ CertificateFactory factory = CertificateFactory.getInstance("X.509");
+ if (factory.generateCertificates(System.in).size() != 5) {
+ throw new Exception("Not all certs read");
+ }
+ }
+}
+
+class SlowStreamWriter {
+ public static void main(String[] args) throws Exception {
+ for (int i=0; i<5; i++) {
+ FileInputStream fin = new FileInputStream(new File(new File(
+ System.getProperty("test.src", "."), "openssl"), "pem"));
+ byte[] buffer = new byte[4096];
+ while (true) {
+ int len = fin.read(buffer);
+ if (len < 0) break;
+ System.out.write(buffer, 0, len);
+ }
+ Thread.sleep(2000);
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/security/cert/CertificateFactory/slowstream.sh Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,50 @@
+#
+# Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+# @test
+# @bug 6813340
+# @summary X509Factory should not depend on is.available()==0
+
+if [ "${TESTSRC}" = "" ] ; then
+ TESTSRC="."
+fi
+if [ "${TESTJAVA}" = "" ] ; then
+ echo "TESTJAVA not set. Test cannot execute."
+ echo "FAILED!!!"
+ exit 1
+fi
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ Windows_* )
+ FS="\\"
+ ;;
+ * )
+ FS="/"
+ ;;
+esac
+
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}SlowStream.java
+${TESTJAVA}${FS}bin${FS}java -Dtest.src=${TESTSRC} SlowStreamWriter | \
+ ${TESTJAVA}${FS}bin${FS}java SlowStreamReader
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/concurrent/Semaphore/PermitOverflow.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,102 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * This file is available under and governed by the GNU General Public
+ * License version 2 only, as published by the Free Software Foundation.
+ * However, the following notice accompanied the original version of this
+ * file:
+ *
+ * Written by Doug Lea with assistance from members of JCP JSR-166
+ * Expert Group and released to the public domain, as explained at
+ * http://creativecommons.org/licenses/publicdomain
+ */
+
+/*
+ * @test
+ * @bug 6941130
+ * @summary Numeric overflow/underflow of permits causes Error throw
+ */
+
+import java.util.concurrent.Semaphore;
+
+public class PermitOverflow {
+
+ public static void main(String[] args) throws Throwable {
+ for (boolean fair : new boolean[] { true, false }) {
+ Semaphore sem = new Semaphore(Integer.MAX_VALUE - 1, fair);
+ if (sem.availablePermits() != Integer.MAX_VALUE - 1)
+ throw new RuntimeException();
+ try {
+ sem.release(2);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ sem.release(1);
+ if (sem.availablePermits() != Integer.MAX_VALUE)
+ throw new RuntimeException();
+ try {
+ sem.release(1);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ try {
+ sem.release(Integer.MAX_VALUE);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ }
+
+ class Sem extends Semaphore {
+ public Sem(int permits, boolean fair) {
+ super(permits, fair);
+ }
+ public void reducePermits(int reduction) {
+ super.reducePermits(reduction);
+ }
+ }
+
+ for (boolean fair : new boolean[] { true, false }) {
+ Sem sem = new Sem(Integer.MIN_VALUE + 1, fair);
+ if (sem.availablePermits() != Integer.MIN_VALUE + 1)
+ throw new RuntimeException();
+ try {
+ sem.reducePermits(2);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ sem.reducePermits(1);
+ if (sem.availablePermits() != Integer.MIN_VALUE)
+ throw new RuntimeException();
+ try {
+ sem.reducePermits(1);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ try {
+ sem.reducePermits(Integer.MAX_VALUE);
+ throw new RuntimeException();
+ } catch (Error expected) {
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/plaf/synth/Test6933784.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,76 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ @bug 6933784
+ @summary NIMBUS: ImageView getNoImageIcon and getLoadingImageIcon returns nulls instead of an icon
+ @author Pavel Porvatov
+ @run main Test6933784
+*/
+
+import javax.swing.*;
+import javax.swing.plaf.nimbus.NimbusLookAndFeel;
+import javax.swing.plaf.synth.SynthLookAndFeel;
+import javax.swing.text.Element;
+import javax.swing.text.html.HTMLDocument;
+import javax.swing.text.html.HTMLEditorKit;
+import javax.swing.text.html.ImageView;
+import java.io.StringReader;
+
+public class Test6933784 {
+ public static void main(String[] args) throws Exception {
+ UIManager.setLookAndFeel(new SynthLookAndFeel());
+
+ checkImages();
+
+ UIManager.setLookAndFeel(new NimbusLookAndFeel());
+
+ checkImages();
+ }
+
+ private static void checkImages() throws Exception {
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ HTMLEditorKit c = new HTMLEditorKit();
+ HTMLDocument doc = new HTMLDocument();
+
+ try {
+ c.read(new StringReader("<HTML><TITLE>Test</TITLE><BODY><IMG id=test></BODY></HTML>"), doc, 0);
+ } catch (Exception e) {
+ throw new RuntimeException("The test failed", e);
+ }
+
+ Element elem = doc.getElement("test");
+ ImageView iv = new ImageView(elem);
+
+ if (iv.getLoadingImageIcon() == null) {
+ throw new RuntimeException("getLoadingImageIcon returns null");
+ }
+
+ if (iv.getNoImageIcon() == null) {
+ throw new RuntimeException("getNoImageIcon returns null");
+ }
+ }
+ });
+ }
+}
--- a/jdk/test/lib/security/cacerts/VerifyCACerts.java Sun Apr 11 23:21:23 2010 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-/**
- * @test
- * @bug 4400624 6321453 6728890 6732157 6754779 6768559
- * @summary Make sure all self-signed root cert signatures are valid
- */
-import java.io.FileInputStream;
-import java.security.KeyStore;
-import java.security.MessageDigest;
-import java.security.cert.*;
-import java.util.*;
-
-public class VerifyCACerts {
-
- private final static String cacertsFileName =
- System.getProperty("java.home") +
- System.getProperty("file.separator") + "lib" +
- System.getProperty("file.separator") + "security" +
- System.getProperty("file.separator") + "cacerts";
-
- private static boolean atLeastOneFailed = false;
-
- private static MessageDigest md;
-
- // map of cert alias to SHA1 fingerprint
- private static Map<String, String> fpMap = new HashMap<String, String>();
-
- private static String[][] entries = {
- { "swisssignsilverg2ca", "9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB"},
- { "swisssigngoldg2ca", "D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61"},
- { "swisssignplatinumg2ca", "56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66"},
- { "verisigntsaca", "BE:36:A4:56:2F:B2:EE:05:DB:B3:D3:23:23:AD:F4:45:08:4E:D6:56"},
- { "camerfirmachambersignca", "4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C"},
- { "camerfirmachambersca", "78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C"},
- { "camerfirmachamberscommerceca", "6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1"},
- { "deutschetelekomrootca2", "85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF"},
- };
-
- static {
- for (String[] entry : entries) {
- fpMap.put(entry[0], entry[1]);
- }
- };
-
- public static void main(String[] args) throws Exception {
- md = MessageDigest.getInstance("SHA1");
- KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(new FileInputStream(cacertsFileName), "changeit".toCharArray());
-
- // check that all entries in the map are in the keystore
- for (String alias : fpMap.keySet()) {
- if (!ks.isCertificateEntry(alias)) {
- atLeastOneFailed = true;
- System.err.println(alias + " is not in cacerts");
- }
- }
- // pull all the trusted self-signed CA certs out of the cacerts file
- // and verify their signatures
- Enumeration<String> aliases = ks.aliases();
- while (aliases.hasMoreElements()) {
- String alias = aliases.nextElement();
- System.out.println("Verifying " + alias);
- if (!ks.isCertificateEntry(alias)) {
- atLeastOneFailed = true;
- System.err.println(alias + " is not a trusted cert entry");
- }
- Certificate cert = ks.getCertificate(alias);
- // remember the GTE CyberTrust CA cert for further tests
- if (alias.equals("gtecybertrustca")) {
- atLeastOneFailed = true;
- System.err.println
- ("gtecybertrustca is expired and should be deleted");
- }
- cert.verify(cert.getPublicKey());
- if (!checkFingerprint(alias, cert)) {
- atLeastOneFailed = true;
- System.err.println
- (alias + " SHA1 fingerprint is incorrect");
- }
- }
-
- if (atLeastOneFailed) {
- throw new Exception("At least one cacert test failed");
- }
- }
-
- private static boolean checkFingerprint(String alias, Certificate cert)
- throws Exception {
- String fingerprint = fpMap.get(alias);
- if (fingerprint == null) {
- // no entry for alias
- return true;
- }
- System.out.println("Checking fingerprint of " + alias);
- byte[] digest = md.digest(cert.getEncoded());
- return fingerprint.equals(toHexString(digest));
- }
-
- private static String toHexString(byte[] block) {
- StringBuffer buf = new StringBuffer();
- int len = block.length;
- for (int i = 0; i < len; i++) {
- byte2hex(block[i], buf);
- if (i < len-1) {
- buf.append(":");
- }
- }
- return buf.toString();
- }
-
- private static void byte2hex(byte b, StringBuffer buf) {
- char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8',
- '9', 'A', 'B', 'C', 'D', 'E', 'F' };
- int high = ((b & 0xf0) >> 4);
- int low = (b & 0x0f);
- buf.append(hexChars[high]);
- buf.append(hexChars[low]);
- }
-}
--- a/jdk/test/sun/security/krb5/auto/HttpNegotiateServer.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/krb5/auto/HttpNegotiateServer.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2009-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,9 @@
/*
* @test
- * @bug 6578647
+ * @bug 6578647 6829283
* @summary Undefined requesting URL in java.net.Authenticator.getPasswordAuthentication()
+ * @summary HTTP/Negotiate: Authenticator triggered again when user cancels the first one
*/
import com.sun.net.httpserver.Headers;
@@ -35,6 +36,8 @@
import com.sun.net.httpserver.HttpPrincipal;
import com.sun.security.auth.module.Krb5LoginModule;
import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
@@ -79,6 +82,9 @@
// web page content
final static String CONTENT = "Hello, World!";
+ // For 6829283, count how many times the Authenticator is called.
+ static int count = 0;
+
// URLs for web test, proxy test. The proxy server is not a real proxy
// since it fakes the same content for any URL. :)
final static URL webUrl, proxyUrl;
@@ -134,6 +140,17 @@
}
}
+ /**
+ * This Authenticator knows nothing
+ */
+ static class KnowNothingAuthenticator extends java.net.Authenticator {
+ @Override
+ public PasswordAuthentication getPasswordAuthentication () {
+ HttpNegotiateServer.count++;
+ return null;
+ }
+ }
+
public static void main(String[] args)
throws Exception {
@@ -147,7 +164,6 @@
kdcp.addPrincipalRandKey("krbtgt/" + REALM_PROXY);
kdcp.addPrincipalRandKey("HTTP/" + PROXY_HOST);
- KDC.writeMultiKtab(KRB5_TAB, kdcw, kdcp);
KDC.saveConfig(KRB5_CONF, kdcw, kdcp,
"default_keytab_name = " + KRB5_TAB,
"[domain_realm]",
@@ -157,6 +173,19 @@
System.setProperty("java.security.krb5.conf", KRB5_CONF);
Config.refresh();
+ KDC.writeMultiKtab(KRB5_TAB, kdcw, kdcp);
+
+ // Write a customized JAAS conf file, so that any kinit cache
+ // will be ignored.
+ System.setProperty("java.security.auth.login.config", OneKDC.JAAS_CONF);
+ File f = new File(OneKDC.JAAS_CONF);
+ FileOutputStream fos = new FileOutputStream(f);
+ fos.write((
+ "com.sun.security.jgss.krb5.initiate {\n" +
+ " com.sun.security.auth.module.Krb5LoginModule required;\n};\n"
+ ).getBytes());
+ fos.close();
+ f.deleteOnExit();
HttpServer h1 = httpd(WEB_PORT, "Negotiate", false,
"HTTP/" + WEB_HOST + "@" + REALM_WEB, KRB5_TAB);
@@ -164,23 +193,21 @@
"HTTP/" + PROXY_HOST + "@" + REALM_PROXY, KRB5_TAB);
try {
-
- BufferedReader reader;
- java.net.Authenticator.setDefault(new KnowAllAuthenticator());
-
- reader = new BufferedReader(new InputStreamReader(
- webUrl.openConnection().getInputStream()));
- if (!reader.readLine().equals(CONTENT)) {
- throw new RuntimeException("Bad content");
+ Exception e1 = null, e2 = null;
+ try {
+ test6578647();
+ } catch (Exception e) {
+ e1 = e;
+ e.printStackTrace();
}
-
- reader = new BufferedReader(new InputStreamReader(
- proxyUrl.openConnection(
- new Proxy(Proxy.Type.HTTP,
- new InetSocketAddress(PROXY_HOST, PROXY_PORT)))
- .getInputStream()));
- if (!reader.readLine().equals(CONTENT)) {
- throw new RuntimeException("Bad content");
+ try {
+ test6829283();
+ } catch (Exception e) {
+ e2 = e;
+ e.printStackTrace();
+ }
+ if (e1 != null || e2 != null) {
+ throw new RuntimeException("Test error");
}
} finally {
// Must stop. Seems there's no HttpServer.startAsDaemon()
@@ -189,6 +216,40 @@
}
}
+ static void test6578647() throws Exception {
+ BufferedReader reader;
+ java.net.Authenticator.setDefault(new KnowAllAuthenticator());
+
+ reader = new BufferedReader(new InputStreamReader(
+ webUrl.openConnection().getInputStream()));
+ if (!reader.readLine().equals(CONTENT)) {
+ throw new RuntimeException("Bad content");
+ }
+
+ reader = new BufferedReader(new InputStreamReader(
+ proxyUrl.openConnection(
+ new Proxy(Proxy.Type.HTTP,
+ new InetSocketAddress(PROXY_HOST, PROXY_PORT)))
+ .getInputStream()));
+ if (!reader.readLine().equals(CONTENT)) {
+ throw new RuntimeException("Bad content");
+ }
+ }
+
+ static void test6829283() throws Exception {
+ BufferedReader reader;
+ java.net.Authenticator.setDefault(new KnowNothingAuthenticator());
+ try {
+ new BufferedReader(new InputStreamReader(
+ webUrl.openConnection().getInputStream()));
+ } catch (IOException ioe) {
+ // Will fail since no username and password is provided.
+ }
+ if (count > 1) {
+ throw new RuntimeException("Authenticator called twice");
+ }
+ }
+
/**
* Creates and starts an HTTP or proxy server that requires
* Negotiate authentication.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/SecureRandom/TestDeserialization.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6837847
+ * @summary Ensure a deserialized PKCS#11 SecureRandom is functional.
+ * @library ..
+ */
+
+import java.security.*;
+import java.io.*;
+
+public class TestDeserialization extends PKCS11Test {
+
+ public void main(Provider p) throws Exception {
+ // Skip this test for providers not found by java.security.Security
+ if (Security.getProvider(p.getName()) != p) {
+ System.out.println("Skip test for provider " + p.getName());
+ return;
+ }
+ SecureRandom r;
+ try {
+ r = SecureRandom.getInstance("PKCS11", p);
+ System.out.println("SecureRandom instance " + r);
+ } catch (NoSuchAlgorithmException e) {
+ System.out.println("Provider " + p +
+ " does not support SecureRandom, skipping");
+ e.printStackTrace();
+ return;
+ }
+ r.setSeed(System.currentTimeMillis());
+ byte[] buf = new byte[16];
+ byte[] ser = toByteArray(r);
+ System.out.println("Serialized Len = " + ser.length);
+ SecureRandom r2 = fromByteArray(ser);
+ System.out.println("Deserialized into " + r2);
+ r2.nextBytes(buf);
+ System.out.println("Done");
+ }
+
+ public static void main(String[] args) throws Exception {
+ main(new TestDeserialization());
+ }
+
+ private byte[] toByteArray(SecureRandom r) throws Exception {
+ ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
+ ObjectOutputStream outStream = null;
+ try {
+ outStream = new ObjectOutputStream(out);
+ outStream.writeObject(r);
+ return out.toByteArray();
+ } finally {
+ if (outStream != null) {
+ outStream.close();
+ }
+ }
+ }
+
+ private SecureRandom fromByteArray(byte[] buf) throws Exception {
+ SecureRandom r = null;
+ ByteArrayInputStream is = new ByteArrayInputStream(buf);
+ ObjectInputStream ois = null;
+ try {
+ ois = new ObjectInputStream(is);
+ r = (SecureRandom) ois.readObject();
+ } finally {
+ if (ois != null) {
+ ois.close();
+ }
+ }
+ return r;
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/pkcs11/Signature/TestRSAKeyLength.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,74 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test %W% %E%
+ * @bug 6695485
+ * @summary Make sure initSign/initVerify() check RSA key lengths
+ * @author Yu-Ching Valerie Peng
+ * @library ..
+ */
+
+import java.security.*;
+
+public class TestRSAKeyLength extends PKCS11Test {
+ public static void main(String[] args) throws Exception {
+ main(new TestRSAKeyLength());
+ }
+ public void main(Provider p) throws Exception {
+ boolean isValidKeyLength[] = { true, true, false, false };
+ String algos[] = { "SHA1withRSA", "SHA256withRSA",
+ "SHA384withRSA", "SHA512withRSA" };
+ KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA", p);
+ kpg.initialize(512);
+ KeyPair kp = kpg.generateKeyPair();
+ PrivateKey privKey = kp.getPrivate();
+ PublicKey pubKey = kp.getPublic();
+
+ for (int i = 0; i < algos.length; i++) {
+ Signature sig = Signature.getInstance(algos[i], p);
+ System.out.println("Testing RSA signature " + algos[i]);
+ try {
+ sig.initSign(privKey);
+ if (!isValidKeyLength[i]) {
+ throw new Exception("initSign: Expected IKE not thrown!");
+ }
+ } catch (InvalidKeyException ike) {
+ if (isValidKeyLength[i]) {
+ throw new Exception("initSign: Unexpected " + ike);
+ }
+ }
+ try {
+ sig.initVerify(pubKey);
+ if (!isValidKeyLength[i]) {
+ throw new RuntimeException("initVerify: Expected IKE not thrown!");
+ }
+ new SignedObject("Test string for getSignature test.", privKey, sig);
+ } catch (InvalidKeyException ike) {
+ if (isValidKeyLength[i]) {
+ throw new Exception("initSign: Unexpected " + ike);
+ }
+ }
+ }
+ }
+}
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/InvalidateServerSessionRenegotiate.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
* @test
* @bug 4403428
* @summary Invalidating JSSE session on server causes SSLProtocolException
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ * reenable when safe renegotiation is implemented.
* @author Brad Wetmore
*/
Binary file jdk/test/sun/security/ssl/etc/keystore has changed
Binary file jdk/test/sun/security/ssl/etc/truststore has changed
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/JSSERenegotiate.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
* @bug 4280338
* @summary "Unsupported SSL message version" SSLProtocolException
* w/SSL_RSA_WITH_NULL_MD5
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ * reenable when safe renegotiation is implemented.
*
* @author Ram Marti
* @author Brad Wetmore
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/CheckStatus.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
* @test
* @bug 4948079
* @summary SSLEngineResult needs updating [none yet]
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ * reenable when safe renegotiation is implemented.
*
* This is a simple hack to test a bunch of conditions and check
* their return codes.
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/ConnectionTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,6 +26,8 @@
* @bug 4495742
* @summary Add non-blocking SSL/TLS functionality, usable with any
* I/O abstraction
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ * reenable when safe renegotiation is implemented.
*
* This is a bit hacky, meant to test various conditions. The main
* thing I wanted to do with this was to do buffer reads/writes
--- a/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/javax/net/ssl/NewAPIs/SSLEngine/NoAuthClientAuth.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
* @test
* @bug 4495742
* @summary Demonstrate SSLEngine switch from no client auth to client auth.
+ * @ignore incompatible with disabled unsafe renegotiation (6898739), please
+ * reenable when safe renegotiation is implemented.
*
* @author Brad R. Wetmore
*/
--- a/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/ssl/sanity/ciphersuites/CheckCipherSuites.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,9 +40,21 @@
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
@@ -59,11 +71,27 @@
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
@@ -81,9 +109,21 @@
"SSL_RSA_WITH_RC4_128_MD5",
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
@@ -93,14 +133,23 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
+ "TLS_ECDH_ECDSA_WITH_NULL_SHA",
+ "TLS_ECDH_RSA_WITH_NULL_SHA",
+ "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
+ "TLS_ECDHE_RSA_WITH_NULL_SHA",
"SSL_DH_anon_WITH_RC4_128_MD5",
"TLS_DH_anon_WITH_AES_128_CBC_SHA",
"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_WITH_DES_CBC_SHA",
+ "TLS_ECDH_anon_WITH_RC4_128_SHA",
+ "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
"SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_ECDH_anon_WITH_NULL_SHA",
"TLS_KRB5_WITH_RC4_128_SHA",
"TLS_KRB5_WITH_RC4_128_MD5",
"TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
@@ -110,7 +159,7 @@
"TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
"TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
- "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"
+ "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
};
// supported ciphersuites using unlimited JCE policy jurisdiction files
@@ -120,11 +169,27 @@
"SSL_RSA_WITH_RC4_128_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_RC4_128_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_256_CBC_SHA",
"SSL_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA",
+ "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA",
"SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA",
"SSL_RSA_WITH_DES_CBC_SHA",
@@ -134,15 +199,25 @@
"SSL_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA",
"SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA",
+
"SSL_RSA_WITH_NULL_MD5",
"SSL_RSA_WITH_NULL_SHA",
+ "TLS_ECDH_ECDSA_WITH_NULL_SHA",
+ "TLS_ECDH_RSA_WITH_NULL_SHA",
+ "TLS_ECDHE_ECDSA_WITH_NULL_SHA",
+ "TLS_ECDHE_RSA_WITH_NULL_SHA",
"SSL_DH_anon_WITH_RC4_128_MD5",
"TLS_DH_anon_WITH_AES_128_CBC_SHA",
"TLS_DH_anon_WITH_AES_256_CBC_SHA",
"SSL_DH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_WITH_DES_CBC_SHA",
+ "TLS_ECDH_anon_WITH_RC4_128_SHA",
+ "TLS_ECDH_anon_WITH_AES_128_CBC_SHA",
+ "TLS_ECDH_anon_WITH_AES_256_CBC_SHA",
+ "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA",
"SSL_DH_anon_EXPORT_WITH_RC4_40_MD5",
"SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA",
+ "TLS_ECDH_anon_WITH_NULL_SHA",
"TLS_KRB5_WITH_RC4_128_SHA",
"TLS_KRB5_WITH_RC4_128_MD5",
"TLS_KRB5_WITH_3DES_EDE_CBC_SHA",
@@ -152,7 +227,7 @@
"TLS_KRB5_EXPORT_WITH_RC4_40_SHA",
"TLS_KRB5_EXPORT_WITH_RC4_40_MD5",
"TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA",
- "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5"
+ "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5",
};
private static void showSuites(String[] suites) {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/DNSIdentities.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,879 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ * 37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ * d6:11:4c:99:c7
+ * prime2:
+ * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ * e0:e1:84:ff:2f
+ * exponent1:
+ * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ * 12:b7:6e:91
+ * exponent2:
+ * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ * 19:7b:b0:de:53
+ * coefficient:
+ * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ * 12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 8 (0x8)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:43:04 2008 GMT
+ * Not After : Aug 25 03:43:04 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption0
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac
+ * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi
+ * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn
+ * JqCpf5uZGOo=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ * e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ * e2:a0:4d:ab:b5
+ * prime2:
+ * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ * 76:7d:ce:32:8f
+ * exponent1:
+ * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ * 4c:de:38:95
+ * exponent2:
+ * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ * 0d:78:df:fd
+ * coefficient:
+ * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ * 35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 9 (0x9)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:43:24 2008 GMT
+ * Not After : Aug 25 03:43:24 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F
+ * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj
+ * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN
+ * cl/epUcHL7E=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 0 (0x0)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 02:43:36 2008 GMT
+ * Not After : Aug 25 02:43:36 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ * 89:2a:95:12:4c:d8:09:2a:e9
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Subject Key Identifier:
+ * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ * serial:00
+ *
+ * X509v3 Basic Constraints:
+ * CA:TRUE
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class DNSIdentities {
+ static Map cookies;
+ ServerSocket ss;
+
+ /*
+ * =============================================================
+ * Set the various variables needed for the tests, then
+ * specify what tests to run on each side.
+ */
+
+ /*
+ * Should we run the client or server in a separate thread?
+ * Both sides can throw exceptions, but do you have a preference
+ * as to which side should be the main thread.
+ */
+ static boolean separateServerThread = true;
+
+ /*
+ * Where do we find the keystores?
+ */
+ static String trusedCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+ "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+ "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+ "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+ "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+ "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+ "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+ "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+ "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+ "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+ "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+ "-----END CERTIFICATE-----";
+
+ static String serverCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+ "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+ "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+ "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+ "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" +
+ "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" +
+ "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" +
+ "JqCpf5uZGOo=\n" +
+ "-----END CERTIFICATE-----";
+
+ static String clientCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+ "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+ "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+ "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+ "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" +
+ "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" +
+ "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" +
+ "cl/epUcHL7E=\n" +
+ "-----END CERTIFICATE-----";
+
+ static byte serverPrivateExponent[] = {
+ (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+ (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+ (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+ (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+ (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+ (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+ (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+ (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+ (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+ (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+ (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+ (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+ (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+ (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+ (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+ (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+ (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+ (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+ (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+ (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+ (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+ (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+ (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+ (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+ (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+ (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+ (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+ (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+ (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+ (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+ (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+ (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+ };
+
+ static byte serverModulus[] = {
+ (byte)0x00,
+ (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+ (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+ (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+ (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+ (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+ (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+ (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+ (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+ (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+ (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+ (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+ (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+ (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+ (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+ (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+ (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+ (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+ (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+ (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+ (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+ (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+ (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+ (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+ (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+ (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+ (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+ (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+ (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+ (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+ (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+ (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+ (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+ };
+
+ static byte clientPrivateExponent[] = {
+ (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+ (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+ (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+ (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+ (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+ (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+ (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+ (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+ (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+ (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+ (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+ (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+ (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+ (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+ (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+ (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+ (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+ (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+ (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+ (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+ (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+ (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+ (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+ (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+ (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+ (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+ (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+ (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+ (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+ (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+ (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+ (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+ };
+
+ static byte clientModulus[] = {
+ (byte)0x00,
+ (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+ (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+ (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+ (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+ (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+ (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+ (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+ (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+ (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+ (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+ (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+ (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+ (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+ (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+ (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+ (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+ (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+ (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+ (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+ (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+ (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+ (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+ (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+ (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+ (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+ (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+ (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+ (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+ (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+ (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+ (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+ (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+ };
+
+ static char passphrase[] = "passphrase".toCharArray();
+
+ /*
+ * Is the server ready to serve?
+ */
+ volatile static boolean serverReady = false;
+
+ /*
+ * Turn on SSL debugging?
+ */
+ static boolean debug = false;
+
+ private SSLServerSocket sslServerSocket = null;
+
+ /*
+ * Define the server side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doServerSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+ serverModulus, serverPrivateExponent, passphrase);
+ SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+ sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort);
+ serverPort = sslServerSocket.getLocalPort();
+
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ serverReady = true;
+
+ SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslSocket.setNeedClientAuth(true);
+ if (sslSocket instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+ }
+
+ PrintStream out =
+ new PrintStream(sslSocket.getOutputStream());
+
+ try {
+ // ignore request data
+
+ // send the response
+ out.print("HTTP/1.1 200 OK\r\n");
+ out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+ out.print("Content-Length: "+ 9 +"\r\n");
+ out.print("\r\n");
+ out.print("Testing\r\n");
+ out.flush();
+ } finally {
+ // close the socket
+ Thread.sleep(2000);
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
+ }
+
+ }
+
+ /*
+ * Define the client side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doClientSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+ clientModulus, clientPrivateExponent, passphrase);
+
+ SSLContext.setDefault(context);
+
+ /*
+ * Wait for server to get started.
+ */
+ while (!serverReady) {
+ Thread.sleep(50);
+ }
+
+ HttpsURLConnection http = null;
+
+ /* establish http connection to server */
+ URL url = new URL("https://localhost:" + serverPort+"/");
+ System.out.println("url is "+url.toString());
+
+ http = (HttpsURLConnection)url.openConnection();
+
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+
+ http.disconnect();
+ }
+
+ /*
+ * =============================================================
+ * The remainder is just support stuff
+ */
+
+ // use any free port by default
+ volatile int serverPort = 0;
+
+ volatile Exception serverException = null;
+ volatile Exception clientException = null;
+
+ public static void main(String args[]) throws Exception {
+ if (debug)
+ System.setProperty("javax.net.debug", "all");
+
+ /*
+ * Start the tests.
+ */
+ new DNSIdentities();
+ }
+
+ Thread clientThread = null;
+ Thread serverThread = null;
+ /*
+ * Primary constructor, used to drive remainder of the test.
+ *
+ * Fork off the other side, then do your work.
+ */
+ DNSIdentities() throws Exception {
+ if (separateServerThread) {
+ startServer(true);
+ startClient(false);
+ } else {
+ startClient(true);
+ startServer(false);
+ }
+
+ /*
+ * Wait for other side to close down.
+ */
+ if (separateServerThread) {
+ serverThread.join();
+ } else {
+ clientThread.join();
+ }
+
+ /*
+ * When we get here, the test is pretty much over.
+ *
+ * If the main thread excepted, that propagates back
+ * immediately. If the other thread threw an exception, we
+ * should report back.
+ */
+ if (serverException != null)
+ throw serverException;
+ if (clientException != null)
+ throw clientException;
+ }
+
+ void startServer(boolean newThread) throws Exception {
+ if (newThread) {
+ serverThread = new Thread() {
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ /*
+ * Our server thread just died.
+ *
+ * Release the client, if not active already...
+ */
+ System.err.println("Server died...");
+ serverReady = true;
+ serverException = e;
+ }
+ }
+ };
+ serverThread.start();
+ } else {
+ doServerSide();
+ }
+ }
+
+ void startClient(boolean newThread) throws Exception {
+ if (newThread) {
+ clientThread = new Thread() {
+ public void run() {
+ try {
+ doClientSide();
+ } catch (Exception e) {
+ /*
+ * Our client thread just died.
+ */
+ System.err.println("Client died...");
+ clientException = e;
+ }
+ }
+ };
+ clientThread.start();
+ } else {
+ doClientSide();
+ }
+ }
+
+ // get the ssl context
+ private static SSLContext getSSLContext(String trusedCertStr,
+ String keyCertStr, byte[] modulus,
+ byte[] privateExponent, char[] passphrase) throws Exception {
+
+ // generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ ByteArrayInputStream is =
+ new ByteArrayInputStream(trusedCertStr.getBytes());
+ Certificate trusedCert = cf.generateCertificate(is);
+ is.close();
+
+ // create a key store
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(null, null);
+
+ // import the trused cert
+ ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+ if (keyCertStr != null) {
+ // generate the private key.
+ RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+ new BigInteger(modulus),
+ new BigInteger(privateExponent));
+ KeyFactory kf = KeyFactory.getInstance("RSA");
+ RSAPrivateKey priKey =
+ (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+ // generate certificate chain
+ is = new ByteArrayInputStream(keyCertStr.getBytes());
+ Certificate keyCert = cf.generateCertificate(is);
+ is.close();
+
+ Certificate[] chain = new Certificate[2];
+ chain[0] = keyCert;
+ chain[1] = trusedCert;
+
+ // import the key entry.
+ ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+ }
+
+ // create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ks);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+
+ if (keyCertStr != null) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ ctx.init(null, tmf.getTrustManagers(), null);
+ }
+
+ return ctx;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsCreateSockTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,210 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6771432
+ * @summary createSocket() - smpatch fails using 1.6.0_10 because of "Unconnected sockets not implemented"
+ */
+
+import javax.net.SocketFactory;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+import java.security.NoSuchAlgorithmException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.URL;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsConfigurator;
+
+/*
+ * This class tests that the HTTPS protocol handler is using its socket factory for
+ * creating new Sockets. It does this by wrapping the default SSLSocketFactory with
+ * its own socket factory, SimpleSSLSocketFactory, and verifying that when a https
+ * connection is made one of the socket factories createSocket methods, that
+ * actually creates a Socket, is being invoked by the protocol handler.
+ */
+
+public class HttpsCreateSockTest
+{
+ /*
+ * Where do we find the keystores?
+ */
+ static String pathToStores = "../../../../../../etc";
+ static String keyStoreFile = "keystore";
+ static String trustStoreFile = "truststore";
+ static String passwd = "passphrase";
+
+ com.sun.net.httpserver.HttpsServer httpsServer;
+ MyHandler httpHandler;
+
+ public static void main(String[] args) {
+ String keyFilename =
+ System.getProperty("test.src", "./") + "/" + pathToStores +
+ "/" + keyStoreFile;
+ String trustFilename =
+ System.getProperty("test.src", "./") + "/" + pathToStores +
+ "/" + trustStoreFile;
+
+ System.setProperty("javax.net.ssl.keyStore", keyFilename);
+ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+ System.setProperty("javax.net.ssl.trustStore", trustFilename);
+ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+ new HttpsCreateSockTest();
+ }
+
+ public HttpsCreateSockTest() {
+ try {
+ startHttpsServer();
+ doClient();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ } finally {
+ httpsServer.stop(1);
+ }
+ }
+
+ void doClient() throws IOException {
+ InetSocketAddress address = httpsServer.getAddress();
+
+ URL url = new URL("https://localhost:" + address.getPort() + "/");
+ System.out.println("trying to connect to " + url + "...");
+
+ HttpsURLConnection uc = (HttpsURLConnection) url.openConnection();
+ uc.setHostnameVerifier(new AllHostnameVerifier());
+ if (uc instanceof javax.net.ssl.HttpsURLConnection) {
+ ((javax.net.ssl.HttpsURLConnection) uc).setSSLSocketFactory(new SimpleSSLSocketFactory());
+ System.out.println("Using TestSocketFactory");
+ }
+ uc.connect();
+ System.out.println("CONNECTED " + uc);
+ System.out.println(uc.getResponseMessage());
+ uc.disconnect();
+ }
+
+ /**
+ * Https Server
+ */
+ public void startHttpsServer() throws IOException, NoSuchAlgorithmException {
+ httpsServer = com.sun.net.httpserver.HttpsServer.create(new InetSocketAddress(0), 0);
+ httpsServer.createContext("/", new MyHandler());
+ httpsServer.setHttpsConfigurator(new HttpsConfigurator(SSLContext.getDefault()));
+ httpsServer.start();
+ }
+
+ class MyHandler implements HttpHandler {
+ private String message = "This is a message!";
+
+ @Override
+ public void handle(HttpExchange t) throws IOException {
+ t.sendResponseHeaders(200, message.length());
+ BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(t.getResponseBody(), "ISO8859-1"));
+ writer.write(message, 0, message.length());
+ writer.close();
+ t.close();
+ }
+ }
+
+ /**
+ * Simple wrapper on default SSLSocketFactory
+ */
+ class SimpleSSLSocketFactory extends SSLSocketFactory
+ {
+ /*
+ * true if this factory has been used to create a new Socket, i.e.
+ * one of the SocketFactory methods has been called.
+ */
+ boolean socketCreated = false;
+
+ /*
+ * true if this factory has been used to wrap a Socket, i.e.
+ * the SSLSocketFactory method,
+ * createSocket(Socket, String, int, boolean), has been called.
+ */
+ boolean socketWrapped = false;
+
+ @Override
+ public Socket createSocket(InetAddress host, int port) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port);
+ }
+
+ @Override
+ public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
+ int localPort) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(address, port, localAddress, localPort);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port, InetAddress localHost,
+ int localPort) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port, localHost, localPort);
+ }
+
+ // methods from SSLSocketFactory
+ @Override
+ public Socket createSocket(Socket s, String host, int port,
+ boolean autoClose) throws IOException {
+ socketWrapped = true;
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket
+ (s, host, port, autoClose);
+ }
+
+ @Override
+ public String[] getDefaultCipherSuites() {
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getDefaultCipherSuites();
+ }
+
+ @Override
+ public String[] getSupportedCipherSuites() {
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getSupportedCipherSuites();
+ }
+ }
+
+ class AllHostnameVerifier implements HostnameVerifier
+ {
+ @Override
+ public boolean verify(String hostname, SSLSession session) {
+ return true;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/HttpsSocketFacTest.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,225 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6614957
+ * @summary HttpsURLConnection not using the set SSLSocketFactory for creating all its Sockets
+ * @run main/othervm HttpsSocketFacTest
+ */
+
+import javax.net.SocketFactory;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+import java.security.NoSuchAlgorithmException;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.Socket;
+import java.net.URL;
+import java.io.BufferedWriter;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import com.sun.net.httpserver.HttpExchange;
+import com.sun.net.httpserver.HttpHandler;
+import com.sun.net.httpserver.HttpsConfigurator;
+
+/*
+ * This class tests that the HTTPS protocol handler is using its socket factory for
+ * creating new Sockets. It does this by wrapping the default SSLSocketFactory with
+ * its own socket factory, SimpleSSLSocketFactory, and verifying that when a https
+ * connection is made one of the socket factories createSocket methods, that
+ * actually creates a Socket, is being invoked by the protocol handler.
+ */
+
+public class HttpsSocketFacTest
+{
+ /*
+ * Where do we find the keystores?
+ */
+ static String pathToStores = "../../../../../../etc";
+ static String keyStoreFile = "keystore";
+ static String trustStoreFile = "truststore";
+ static String passwd = "passphrase";
+
+ com.sun.net.httpserver.HttpsServer httpsServer;
+ MyHandler httpHandler;
+
+ public static void main(String[] args) {
+ String keyFilename =
+ System.getProperty("test.src", "./") + "/" + pathToStores +
+ "/" + keyStoreFile;
+ String trustFilename =
+ System.getProperty("test.src", "./") + "/" + pathToStores +
+ "/" + trustStoreFile;
+
+ System.setProperty("javax.net.ssl.keyStore", keyFilename);
+ System.setProperty("javax.net.ssl.keyStorePassword", passwd);
+ System.setProperty("javax.net.ssl.trustStore", trustFilename);
+ System.setProperty("javax.net.ssl.trustStorePassword", passwd);
+
+ new HttpsSocketFacTest();
+ }
+
+ public HttpsSocketFacTest() {
+ try {
+ startHttpsServer();
+ doClient();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ } finally {
+ httpsServer.stop(1);
+ }
+ }
+
+ void doClient() throws IOException {
+ InetSocketAddress address = httpsServer.getAddress();
+ URL url = new URL("https://localhost:" + address.getPort() + "/test6614957/");
+ System.out.println("trying to connect to " + url + "...");
+
+ HttpsURLConnection uc = (HttpsURLConnection) url.openConnection();
+ SimpleSSLSocketFactory sssf = new SimpleSSLSocketFactory();
+ uc.setSSLSocketFactory(sssf);
+ uc.setHostnameVerifier(new AllHostnameVerifier());
+ InputStream is = uc.getInputStream();
+
+ byte[] ba = new byte[1024];
+ int read = 0;
+ while ((read = is.read(ba)) != -1) {
+ System.out.println(new String(ba, 0, read));
+ }
+
+ System.out.println("SimpleSSLSocketFactory.socketCreated = " + sssf.socketCreated);
+ System.out.println("SimpleSSLSocketFactory.socketWrapped = " + sssf.socketWrapped);
+
+ if (!sssf.socketCreated)
+ throw new RuntimeException("Failed: Socket Factory not being called to create Socket");
+ }
+
+ /**
+ * Https Server
+ */
+ public void startHttpsServer() throws IOException, NoSuchAlgorithmException {
+ httpsServer = com.sun.net.httpserver.HttpsServer.create(new InetSocketAddress(0), 0);
+ httpsServer.createContext("/test6614957/", new MyHandler());
+ httpsServer.setHttpsConfigurator(new HttpsConfigurator(SSLContext.getDefault()));
+ httpsServer.start();
+ }
+
+ class MyHandler implements HttpHandler {
+ private String message = "This is a message!";
+
+ @Override
+ public void handle(HttpExchange t) throws IOException {
+ t.sendResponseHeaders(200, message.length());
+ BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(t.getResponseBody(), "ISO8859-1"));
+ writer.write(message, 0, message.length());
+ writer.close();
+ t.close();
+ }
+ }
+
+ /**
+ * Simple wrapper on default SSLSocketFactory
+ */
+ class SimpleSSLSocketFactory extends SSLSocketFactory
+ {
+ /*
+ * true if this factory has been used to create a new Socket, i.e.
+ * one of the SocketFactory methods has been called.
+ */
+ boolean socketCreated = false;
+
+ /*
+ * true if this factory has been used to wrap a Socket, i.e.
+ * the SSLSocketFactory method,
+ * createSocket(Socket, String, int, boolean), has been called.
+ */
+ boolean socketWrapped = false;
+
+ // methods for SocketFactory
+ @Override
+ public Socket createSocket() throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket();
+ }
+
+ @Override
+ public Socket createSocket(InetAddress host, int port) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port);
+ }
+
+ @Override
+ public Socket createSocket(InetAddress address, int port, InetAddress localAddress,
+ int localPort) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(address, port, localAddress, localPort);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port);
+ }
+
+ @Override
+ public Socket createSocket(String host, int port, InetAddress localHost,
+ int localPort) throws IOException {
+ socketCreated = true;
+ return SocketFactory.getDefault().createSocket(host, port, localHost, localPort);
+ }
+
+ // methods from SSLSocketFactory
+ @Override
+ public Socket createSocket(Socket s, String host, int port,
+ boolean autoClose) throws IOException {
+ socketWrapped = true;
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket
+ (s, host, port, autoClose);
+ }
+
+ @Override
+ public String[] getDefaultCipherSuites() {
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getDefaultCipherSuites();
+ }
+
+ @Override
+ public String[] getSupportedCipherSuites() {
+ return ((SSLSocketFactory) SSLSocketFactory.getDefault()).getSupportedCipherSuites();
+ }
+ }
+
+ class AllHostnameVerifier implements HostnameVerifier
+ {
+ @Override
+ public boolean verify(String hostname, SSLSession session) {
+ return true;
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressDNSIdentities.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,887 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ * 37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ * d6:11:4c:99:c7
+ * prime2:
+ * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ * e0:e1:84:ff:2f
+ * exponent1:
+ * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ * 12:b7:6e:91
+ * exponent2:
+ * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ * 19:7b:b0:de:53
+ * coefficient:
+ * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ * 12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 8 (0x8)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:43:04 2008 GMT
+ * Not After : Aug 25 03:43:04 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption0
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac
+ * PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi
+ * nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn
+ * JqCpf5uZGOo=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ * e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ * e2:a0:4d:ab:b5
+ * prime2:
+ * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ * 76:7d:ce:32:8f
+ * exponent1:
+ * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ * 4c:de:38:95
+ * exponent2:
+ * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ * 0d:78:df:fd
+ * coefficient:
+ * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ * 35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 9 (0x9)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:43:24 2008 GMT
+ * Not After : Aug 25 03:43:24 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh
+ * bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F
+ * HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj
+ * XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN
+ * cl/epUcHL7E=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 0 (0x0)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 02:43:36 2008 GMT
+ * Not After : Aug 25 02:43:36 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ * 89:2a:95:12:4c:d8:09:2a:e9
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Subject Key Identifier:
+ * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ * serial:00
+ *
+ * X509v3 Basic Constraints:
+ * CA:TRUE
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPAddressDNSIdentities {
+ static Map cookies;
+ ServerSocket ss;
+
+ /*
+ * =============================================================
+ * Set the various variables needed for the tests, then
+ * specify what tests to run on each side.
+ */
+
+ /*
+ * Should we run the client or server in a separate thread?
+ * Both sides can throw exceptions, but do you have a preference
+ * as to which side should be the main thread.
+ */
+ static boolean separateServerThread = true;
+
+ /*
+ * Where do we find the keystores?
+ */
+ static String trusedCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+ "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+ "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+ "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+ "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+ "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+ "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+ "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+ "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+ "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+ "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+ "-----END CERTIFICATE-----";
+
+ static String serverCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICpDCCAg2gAwIBAgIBCDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMDRaFw0yODA4MjUwMzQzMDRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+ "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+ "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+ "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+ "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAoqVTciHtcvsUj+YaTct8tUh3aTCsKsac\n" +
+ "PHhfQ+ObjiXSgxsKYTX7ym/wk/wvlbUcbqLKxsu7qrcJitH+H9heV1hEHEu65Uoi\n" +
+ "nRugFruyOrwvAylV8Cm2af7ddilmYJ+sdJA6N2M3xJRxR0G2LFHEXDNEjYReyexn\n" +
+ "JqCpf5uZGOo=\n" +
+ "-----END CERTIFICATE-----";
+
+ static String clientCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICpDCCAg2gAwIBAgIBCTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzQzMjRaFw0yODA4MjUwMzQzMjRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+ "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+ "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+ "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjczBxMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAXBgNVHREBAf8EDTALgglsb2Nh\n" +
+ "bGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAm25gJyqW1JznQ1EyOtTGswBVwfgBOf+F\n" +
+ "HJuBTcflYQLbTD/AETPQJGvZU9tdhuLtbG3OPhR7vSY8zeAbfM3dbH7QFr3r47Gj\n" +
+ "XEH7qM/MX+Z3ifVaC4MeJmrYQkYFSuKeyyKpdRVX4w4nnFHF6OsNASsYrMW6LpxN\n" +
+ "cl/epUcHL7E=\n" +
+ "-----END CERTIFICATE-----";
+
+ static byte serverPrivateExponent[] = {
+ (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+ (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+ (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+ (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+ (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+ (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+ (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+ (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+ (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+ (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+ (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+ (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+ (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+ (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+ (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+ (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+ (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+ (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+ (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+ (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+ (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+ (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+ (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+ (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+ (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+ (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+ (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+ (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+ (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+ (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+ (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+ (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+ };
+
+ static byte serverModulus[] = {
+ (byte)0x00,
+ (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+ (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+ (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+ (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+ (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+ (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+ (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+ (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+ (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+ (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+ (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+ (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+ (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+ (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+ (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+ (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+ (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+ (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+ (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+ (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+ (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+ (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+ (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+ (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+ (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+ (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+ (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+ (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+ (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+ (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+ (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+ (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+ };
+
+ static byte clientPrivateExponent[] = {
+ (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+ (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+ (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+ (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+ (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+ (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+ (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+ (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+ (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+ (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+ (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+ (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+ (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+ (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+ (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+ (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+ (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+ (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+ (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+ (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+ (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+ (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+ (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+ (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+ (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+ (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+ (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+ (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+ (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+ (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+ (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+ (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+ };
+
+ static byte clientModulus[] = {
+ (byte)0x00,
+ (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+ (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+ (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+ (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+ (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+ (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+ (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+ (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+ (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+ (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+ (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+ (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+ (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+ (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+ (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+ (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+ (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+ (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+ (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+ (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+ (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+ (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+ (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+ (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+ (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+ (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+ (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+ (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+ (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+ (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+ (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+ (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+ };
+
+ static char passphrase[] = "passphrase".toCharArray();
+
+ /*
+ * Is the server ready to serve?
+ */
+ volatile static boolean serverReady = false;
+
+ /*
+ * Turn on SSL debugging?
+ */
+ static boolean debug = false;
+
+ private SSLServerSocket sslServerSocket = null;
+
+ /*
+ * Define the server side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doServerSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+ serverModulus, serverPrivateExponent, passphrase);
+ SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+ sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort);
+ serverPort = sslServerSocket.getLocalPort();
+
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ serverReady = true;
+
+ SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslSocket.setNeedClientAuth(true);
+ if (sslSocket instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+ }
+
+ PrintStream out =
+ new PrintStream(sslSocket.getOutputStream());
+
+ try {
+ // ignore request data
+
+ // send the response
+ out.print("HTTP/1.1 200 OK\r\n");
+ out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+ out.print("Content-Length: "+ 9 +"\r\n");
+ out.print("\r\n");
+ out.print("Testing\r\n");
+ out.flush();
+ } finally {
+ // close the socket
+ Thread.sleep(2000);
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
+ }
+
+ }
+
+ /*
+ * Define the client side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doClientSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+ clientModulus, clientPrivateExponent, passphrase);
+
+ SSLContext.setDefault(context);
+
+ /*
+ * Wait for server to get started.
+ */
+ while (!serverReady) {
+ Thread.sleep(50);
+ }
+
+ HttpsURLConnection http = null;
+
+ /* establish http connection to server */
+ URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+ System.out.println("url is "+url.toString());
+
+ try {
+ http = (HttpsURLConnection)url.openConnection();
+
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+
+ throw new Exception("Unexpectly found subject alternative name " +
+ "matching IP address");
+ } catch (SSLHandshakeException sslhe) {
+ // no subject alternative names matching IP address 127.0.0.1 found
+ // that's the expected exception, ignore it.
+ } finally {
+ http.disconnect();
+ }
+ }
+
+ /*
+ * =============================================================
+ * The remainder is just support stuff
+ */
+
+ // use any free port by default
+ volatile int serverPort = 0;
+
+ volatile Exception serverException = null;
+ volatile Exception clientException = null;
+
+ public static void main(String args[]) throws Exception {
+ if (debug)
+ System.setProperty("javax.net.debug", "all");
+
+ /*
+ * Start the tests.
+ */
+ new IPAddressDNSIdentities();
+ }
+
+ Thread clientThread = null;
+ Thread serverThread = null;
+ /*
+ * Primary constructor, used to drive remainder of the test.
+ *
+ * Fork off the other side, then do your work.
+ */
+ IPAddressDNSIdentities() throws Exception {
+ if (separateServerThread) {
+ startServer(true);
+ startClient(false);
+ } else {
+ startClient(true);
+ startServer(false);
+ }
+
+ /*
+ * Wait for other side to close down.
+ */
+ if (separateServerThread) {
+ serverThread.join();
+ } else {
+ clientThread.join();
+ }
+
+ /*
+ * When we get here, the test is pretty much over.
+ *
+ * If the main thread excepted, that propagates back
+ * immediately. If the other thread threw an exception, we
+ * should report back.
+ */
+ if (serverException != null)
+ throw serverException;
+ if (clientException != null)
+ throw clientException;
+ }
+
+ void startServer(boolean newThread) throws Exception {
+ if (newThread) {
+ serverThread = new Thread() {
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ /*
+ * Our server thread just died.
+ *
+ * Release the client, if not active already...
+ */
+ System.err.println("Server died...");
+ serverReady = true;
+ serverException = e;
+ }
+ }
+ };
+ serverThread.start();
+ } else {
+ doServerSide();
+ }
+ }
+
+ void startClient(boolean newThread) throws Exception {
+ if (newThread) {
+ clientThread = new Thread() {
+ public void run() {
+ try {
+ doClientSide();
+ } catch (Exception e) {
+ /*
+ * Our client thread just died.
+ */
+ System.err.println("Client died...");
+ clientException = e;
+ }
+ }
+ };
+ clientThread.start();
+ } else {
+ doClientSide();
+ }
+ }
+
+ // get the ssl context
+ private static SSLContext getSSLContext(String trusedCertStr,
+ String keyCertStr, byte[] modulus,
+ byte[] privateExponent, char[] passphrase) throws Exception {
+
+ // generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ ByteArrayInputStream is =
+ new ByteArrayInputStream(trusedCertStr.getBytes());
+ Certificate trusedCert = cf.generateCertificate(is);
+ is.close();
+
+ // create a key store
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(null, null);
+
+ // import the trused cert
+ ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+ if (keyCertStr != null) {
+ // generate the private key.
+ RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+ new BigInteger(modulus),
+ new BigInteger(privateExponent));
+ KeyFactory kf = KeyFactory.getInstance("RSA");
+ RSAPrivateKey priKey =
+ (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+ // generate certificate chain
+ is = new ByteArrayInputStream(keyCertStr.getBytes());
+ Certificate keyCert = cf.generateCertificate(is);
+ is.close();
+
+ Certificate[] chain = new Certificate[2];
+ chain[0] = keyCert;
+ chain[1] = trusedCert;
+
+ // import the key entry.
+ ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+ }
+
+ // create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ks);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+
+ if (keyCertStr != null) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ ctx.init(null, tmf.getTrustManagers(), null);
+ }
+
+ return ctx;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPAddressIPIdentities.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,880 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ * 37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ * d6:11:4c:99:c7
+ * prime2:
+ * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ * e0:e1:84:ff:2f
+ * exponent1:
+ * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ * 12:b7:6e:91
+ * exponent2:
+ * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ * 19:7b:b0:de:53
+ * coefficient:
+ * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ * 12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 7 (0x7)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:27:57 2008 GMT
+ * Not After : Aug 25 03:27:57 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva
+ * cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h
+ * pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun
+ * nZif
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ * e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ * e2:a0:4d:ab:b5
+ * prime2:
+ * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ * 76:7d:ce:32:8f
+ * exponent1:
+ * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ * 4c:de:38:95
+ * exponent2:
+ * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ * 0d:78:df:fd
+ * coefficient:
+ * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ * 35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 6 (0x6)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:27:34 2008 GMT
+ * Not After : Aug 25 03:27:34 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx
+ * HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP
+ * i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC
+ * I9aw
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 0 (0x0)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 02:43:36 2008 GMT
+ * Not After : Aug 25 02:43:36 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ * 89:2a:95:12:4c:d8:09:2a:e9
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Subject Key Identifier:
+ * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ * serial:00
+ *
+ * X509v3 Basic Constraints:
+ * CA:TRUE
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPAddressIPIdentities {
+ static Map cookies;
+ ServerSocket ss;
+
+ /*
+ * =============================================================
+ * Set the various variables needed for the tests, then
+ * specify what tests to run on each side.
+ */
+
+ /*
+ * Should we run the client or server in a separate thread?
+ * Both sides can throw exceptions, but do you have a preference
+ * as to which side should be the main thread.
+ */
+ static boolean separateServerThread = true;
+
+ /*
+ * Where do we find the keystores?
+ */
+ static String trusedCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+ "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+ "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+ "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+ "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+ "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+ "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+ "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+ "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+ "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+ "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+ "-----END CERTIFICATE-----";
+
+ static String serverCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+ "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+ "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+ "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+ "MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva\n" +
+ "cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h\n" +
+ "pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun\n" +
+ "nZif\n" +
+ "-----END CERTIFICATE-----";
+
+ static String clientCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+ "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+ "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+ "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+ "MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx\n" +
+ "HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP\n" +
+ "i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC\n" +
+ "I9aw\n" +
+ "-----END CERTIFICATE-----";
+
+
+ static byte serverPrivateExponent[] = {
+ (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+ (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+ (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+ (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+ (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+ (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+ (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+ (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+ (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+ (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+ (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+ (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+ (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+ (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+ (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+ (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+ (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+ (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+ (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+ (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+ (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+ (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+ (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+ (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+ (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+ (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+ (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+ (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+ (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+ (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+ (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+ (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+ };
+
+ static byte serverModulus[] = {
+ (byte)0x00,
+ (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+ (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+ (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+ (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+ (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+ (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+ (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+ (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+ (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+ (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+ (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+ (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+ (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+ (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+ (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+ (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+ (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+ (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+ (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+ (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+ (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+ (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+ (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+ (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+ (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+ (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+ (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+ (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+ (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+ (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+ (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+ (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+ };
+
+ static byte clientPrivateExponent[] = {
+ (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+ (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+ (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+ (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+ (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+ (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+ (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+ (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+ (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+ (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+ (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+ (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+ (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+ (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+ (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+ (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+ (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+ (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+ (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+ (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+ (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+ (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+ (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+ (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+ (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+ (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+ (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+ (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+ (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+ (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+ (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+ (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+ };
+
+ static byte clientModulus[] = {
+ (byte)0x00,
+ (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+ (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+ (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+ (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+ (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+ (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+ (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+ (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+ (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+ (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+ (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+ (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+ (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+ (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+ (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+ (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+ (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+ (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+ (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+ (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+ (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+ (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+ (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+ (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+ (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+ (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+ (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+ (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+ (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+ (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+ (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+ (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+ };
+
+ static char passphrase[] = "passphrase".toCharArray();
+
+ /*
+ * Is the server ready to serve?
+ */
+ volatile static boolean serverReady = false;
+
+ /*
+ * Turn on SSL debugging?
+ */
+ static boolean debug = false;
+
+ private SSLServerSocket sslServerSocket = null;
+
+ /*
+ * Define the server side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doServerSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+ serverModulus, serverPrivateExponent, passphrase);
+ SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+ sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort);
+ serverPort = sslServerSocket.getLocalPort();
+
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ serverReady = true;
+
+ SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslSocket.setNeedClientAuth(true);
+ if (sslSocket instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+ }
+
+ PrintStream out =
+ new PrintStream(sslSocket.getOutputStream());
+
+ try {
+ // ignore request data
+
+ // send the response
+ out.print("HTTP/1.1 200 OK\r\n");
+ out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+ out.print("Content-Length: "+ 9 +"\r\n");
+ out.print("\r\n");
+ out.print("Testing\r\n");
+ out.flush();
+ } finally {
+ // close the socket
+ Thread.sleep(2000);
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
+ }
+
+ }
+
+ /*
+ * Define the client side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doClientSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+ clientModulus, clientPrivateExponent, passphrase);
+
+ SSLContext.setDefault(context);
+
+ /*
+ * Wait for server to get started.
+ */
+ while (!serverReady) {
+ Thread.sleep(50);
+ }
+
+ HttpsURLConnection http = null;
+
+ /* establish http connection to server */
+ URL url = new URL("https://127.0.0.1:" + serverPort+"/");
+ System.out.println("url is "+url.toString());
+
+ http = (HttpsURLConnection)url.openConnection();
+
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+
+ http.disconnect();
+ }
+
+ /*
+ * =============================================================
+ * The remainder is just support stuff
+ */
+
+ // use any free port by default
+ volatile int serverPort = 0;
+
+ volatile Exception serverException = null;
+ volatile Exception clientException = null;
+
+ public static void main(String args[]) throws Exception {
+ if (debug)
+ System.setProperty("javax.net.debug", "all");
+
+ /*
+ * Start the tests.
+ */
+ new IPAddressIPIdentities();
+ }
+
+ Thread clientThread = null;
+ Thread serverThread = null;
+ /*
+ * Primary constructor, used to drive remainder of the test.
+ *
+ * Fork off the other side, then do your work.
+ */
+ IPAddressIPIdentities() throws Exception {
+ if (separateServerThread) {
+ startServer(true);
+ startClient(false);
+ } else {
+ startClient(true);
+ startServer(false);
+ }
+
+ /*
+ * Wait for other side to close down.
+ */
+ if (separateServerThread) {
+ serverThread.join();
+ } else {
+ clientThread.join();
+ }
+
+ /*
+ * When we get here, the test is pretty much over.
+ *
+ * If the main thread excepted, that propagates back
+ * immediately. If the other thread threw an exception, we
+ * should report back.
+ */
+ if (serverException != null)
+ throw serverException;
+ if (clientException != null)
+ throw clientException;
+ }
+
+ void startServer(boolean newThread) throws Exception {
+ if (newThread) {
+ serverThread = new Thread() {
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ /*
+ * Our server thread just died.
+ *
+ * Release the client, if not active already...
+ */
+ System.err.println("Server died...");
+ serverReady = true;
+ serverException = e;
+ }
+ }
+ };
+ serverThread.start();
+ } else {
+ doServerSide();
+ }
+ }
+
+ void startClient(boolean newThread) throws Exception {
+ if (newThread) {
+ clientThread = new Thread() {
+ public void run() {
+ try {
+ doClientSide();
+ } catch (Exception e) {
+ /*
+ * Our client thread just died.
+ */
+ System.err.println("Client died...");
+ clientException = e;
+ }
+ }
+ };
+ clientThread.start();
+ } else {
+ doClientSide();
+ }
+ }
+
+ // get the ssl context
+ private static SSLContext getSSLContext(String trusedCertStr,
+ String keyCertStr, byte[] modulus,
+ byte[] privateExponent, char[] passphrase) throws Exception {
+
+ // generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ ByteArrayInputStream is =
+ new ByteArrayInputStream(trusedCertStr.getBytes());
+ Certificate trusedCert = cf.generateCertificate(is);
+ is.close();
+
+ // create a key store
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(null, null);
+
+ // import the trused cert
+ ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+ if (keyCertStr != null) {
+ // generate the private key.
+ RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+ new BigInteger(modulus),
+ new BigInteger(privateExponent));
+ KeyFactory kf = KeyFactory.getInstance("RSA");
+ RSAPrivateKey priKey =
+ (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+ // generate certificate chain
+ is = new ByteArrayInputStream(keyCertStr.getBytes());
+ Certificate keyCert = cf.generateCertificate(is);
+ is.close();
+
+ Certificate[] chain = new Certificate[2];
+ chain[0] = keyCert;
+ chain[1] = trusedCert;
+
+ // import the key entry.
+ ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+ }
+
+ // create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ks);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+
+ if (keyCertStr != null) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ ctx.init(null, tmf.getTrustManagers(), null);
+ }
+
+ return ctx;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/IPIdentities.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,880 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ * 37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ * d6:11:4c:99:c7
+ * prime2:
+ * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ * e0:e1:84:ff:2f
+ * exponent1:
+ * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ * 12:b7:6e:91
+ * exponent2:
+ * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ * 19:7b:b0:de:53
+ * coefficient:
+ * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ * 12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 7 (0x7)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:27:57 2008 GMT
+ * Not After : Aug 25 03:27:57 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva
+ * cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h
+ * pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun
+ * nZif
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ * e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ * e2:a0:4d:ab:b5
+ * prime2:
+ * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ * 76:7d:ce:32:8f
+ * exponent1:
+ * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ * 4c:de:38:95
+ * exponent2:
+ * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ * 0d:78:df:fd
+ * coefficient:
+ * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ * 35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 6 (0x6)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:27:34 2008 GMT
+ * Not After : Aug 25 03:27:34 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB
+ * MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx
+ * HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP
+ * i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC
+ * I9aw
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 0 (0x0)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 02:43:36 2008 GMT
+ * Not After : Aug 25 02:43:36 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ * 89:2a:95:12:4c:d8:09:2a:e9
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Subject Key Identifier:
+ * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ * serial:00
+ *
+ * X509v3 Basic Constraints:
+ * CA:TRUE
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class IPIdentities {
+ static Map cookies;
+ ServerSocket ss;
+
+ /*
+ * =============================================================
+ * Set the various variables needed for the tests, then
+ * specify what tests to run on each side.
+ */
+
+ /*
+ * Should we run the client or server in a separate thread?
+ * Both sides can throw exceptions, but do you have a preference
+ * as to which side should be the main thread.
+ */
+ static boolean separateServerThread = true;
+
+ /*
+ * Where do we find the keystores?
+ */
+ static String trusedCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+ "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+ "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+ "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+ "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+ "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+ "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+ "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+ "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+ "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+ "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+ "-----END CERTIFICATE-----";
+
+ static String serverCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICnzCCAgigAwIBAgIBBzANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3NTdaFw0yODA4MjUwMzI3NTdaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+ "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+ "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+ "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+ "MA0GCSqGSIb3DQEBBAUAA4GBAFJjItCtCBZcjD69wdqfIbKmRFa6eJAjR6LcoDva\n" +
+ "cKC/sDOLelpspiZ66Zb0Xdv5qQ7QrfOXt3K8QqJKRMdZLF9WfUfy0gJDM32ub91h\n" +
+ "pu+TmcGPs+6RdrAQcuvU1ZDV9X8SMj7BtKaim4d5sqFw1npncKiA5xFn8vOYwdun\n" +
+ "nZif\n" +
+ "-----END CERTIFICATE-----";
+
+ static String clientCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICnzCCAgigAwIBAgIBBjANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzI3MzRaFw0yODA4MjUwMzI3MzRaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+ "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+ "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+ "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjbjBsMAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDASBgNVHREBAf8ECDAGhwR/AAAB\n" +
+ "MA0GCSqGSIb3DQEBBAUAA4GBACjj9PS+W6XOF7toFMwMOv/AemZeBOpcEF1Ei1Hx\n" +
+ "HjvB6EOHkMY8tFm5OPzkiWiK3+s3awpSW0jWdzMYwrQJ3/klMsPDpI7PEuirqwHP\n" +
+ "i5Wyl/vk7jmfWVcBO9MVhPUo4BYl4vS9aj6JA5QbkbkB95LOgT/BowY0WmHeVsXC\n" +
+ "I9aw\n" +
+ "-----END CERTIFICATE-----";
+
+
+ static byte serverPrivateExponent[] = {
+ (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+ (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+ (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+ (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+ (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+ (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+ (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+ (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+ (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+ (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+ (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+ (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+ (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+ (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+ (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+ (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+ (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+ (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+ (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+ (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+ (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+ (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+ (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+ (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+ (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+ (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+ (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+ (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+ (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+ (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+ (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+ (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+ };
+
+ static byte serverModulus[] = {
+ (byte)0x00,
+ (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+ (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+ (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+ (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+ (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+ (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+ (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+ (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+ (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+ (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+ (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+ (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+ (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+ (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+ (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+ (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+ (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+ (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+ (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+ (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+ (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+ (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+ (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+ (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+ (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+ (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+ (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+ (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+ (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+ (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+ (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+ (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+ };
+
+ static byte clientPrivateExponent[] = {
+ (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+ (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+ (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+ (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+ (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+ (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+ (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+ (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+ (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+ (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+ (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+ (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+ (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+ (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+ (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+ (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+ (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+ (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+ (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+ (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+ (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+ (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+ (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+ (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+ (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+ (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+ (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+ (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+ (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+ (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+ (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+ (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+ };
+
+ static byte clientModulus[] = {
+ (byte)0x00,
+ (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+ (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+ (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+ (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+ (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+ (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+ (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+ (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+ (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+ (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+ (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+ (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+ (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+ (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+ (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+ (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+ (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+ (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+ (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+ (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+ (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+ (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+ (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+ (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+ (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+ (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+ (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+ (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+ (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+ (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+ (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+ (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+ };
+
+ static char passphrase[] = "passphrase".toCharArray();
+
+ /*
+ * Is the server ready to serve?
+ */
+ volatile static boolean serverReady = false;
+
+ /*
+ * Turn on SSL debugging?
+ */
+ static boolean debug = false;
+
+ private SSLServerSocket sslServerSocket = null;
+
+ /*
+ * Define the server side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doServerSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+ serverModulus, serverPrivateExponent, passphrase);
+ SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+ sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort);
+ serverPort = sslServerSocket.getLocalPort();
+
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ serverReady = true;
+
+ SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslSocket.setNeedClientAuth(true);
+ if (sslSocket instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+ }
+
+ PrintStream out =
+ new PrintStream(sslSocket.getOutputStream());
+
+ try {
+ // ignore request data
+
+ // send the response
+ out.print("HTTP/1.1 200 OK\r\n");
+ out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+ out.print("Content-Length: "+ 9 +"\r\n");
+ out.print("\r\n");
+ out.print("Testing\r\n");
+ out.flush();
+ } finally {
+ // close the socket
+ Thread.sleep(2000);
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
+ }
+
+ }
+
+ /*
+ * Define the client side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doClientSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+ clientModulus, clientPrivateExponent, passphrase);
+
+ SSLContext.setDefault(context);
+
+ /*
+ * Wait for server to get started.
+ */
+ while (!serverReady) {
+ Thread.sleep(50);
+ }
+
+ HttpsURLConnection http = null;
+
+ /* establish http connection to server */
+ URL url = new URL("https://localhost:" + serverPort+"/");
+ System.out.println("url is "+url.toString());
+
+ http = (HttpsURLConnection)url.openConnection();
+
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+
+ http.disconnect();
+ }
+
+ /*
+ * =============================================================
+ * The remainder is just support stuff
+ */
+
+ // use any free port by default
+ volatile int serverPort = 0;
+
+ volatile Exception serverException = null;
+ volatile Exception clientException = null;
+
+ public static void main(String args[]) throws Exception {
+ if (debug)
+ System.setProperty("javax.net.debug", "all");
+
+ /*
+ * Start the tests.
+ */
+ new IPIdentities();
+ }
+
+ Thread clientThread = null;
+ Thread serverThread = null;
+ /*
+ * Primary constructor, used to drive remainder of the test.
+ *
+ * Fork off the other side, then do your work.
+ */
+ IPIdentities() throws Exception {
+ if (separateServerThread) {
+ startServer(true);
+ startClient(false);
+ } else {
+ startClient(true);
+ startServer(false);
+ }
+
+ /*
+ * Wait for other side to close down.
+ */
+ if (separateServerThread) {
+ serverThread.join();
+ } else {
+ clientThread.join();
+ }
+
+ /*
+ * When we get here, the test is pretty much over.
+ *
+ * If the main thread excepted, that propagates back
+ * immediately. If the other thread threw an exception, we
+ * should report back.
+ */
+ if (serverException != null)
+ throw serverException;
+ if (clientException != null)
+ throw clientException;
+ }
+
+ void startServer(boolean newThread) throws Exception {
+ if (newThread) {
+ serverThread = new Thread() {
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ /*
+ * Our server thread just died.
+ *
+ * Release the client, if not active already...
+ */
+ System.err.println("Server died...");
+ serverReady = true;
+ serverException = e;
+ }
+ }
+ };
+ serverThread.start();
+ } else {
+ doServerSide();
+ }
+ }
+
+ void startClient(boolean newThread) throws Exception {
+ if (newThread) {
+ clientThread = new Thread() {
+ public void run() {
+ try {
+ doClientSide();
+ } catch (Exception e) {
+ /*
+ * Our client thread just died.
+ */
+ System.err.println("Client died...");
+ clientException = e;
+ }
+ }
+ };
+ clientThread.start();
+ } else {
+ doClientSide();
+ }
+ }
+
+ // get the ssl context
+ private static SSLContext getSSLContext(String trusedCertStr,
+ String keyCertStr, byte[] modulus,
+ byte[] privateExponent, char[] passphrase) throws Exception {
+
+ // generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ ByteArrayInputStream is =
+ new ByteArrayInputStream(trusedCertStr.getBytes());
+ Certificate trusedCert = cf.generateCertificate(is);
+ is.close();
+
+ // create a key store
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(null, null);
+
+ // import the trused cert
+ ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+ if (keyCertStr != null) {
+ // generate the private key.
+ RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+ new BigInteger(modulus),
+ new BigInteger(privateExponent));
+ KeyFactory kf = KeyFactory.getInstance("RSA");
+ RSAPrivateKey priKey =
+ (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+ // generate certificate chain
+ is = new ByteArrayInputStream(keyCertStr.getBytes());
+ Certificate keyCert = cf.generateCertificate(is);
+ is.close();
+
+ Certificate[] chain = new Certificate[2];
+ chain[0] = keyCert;
+ chain[1] = trusedCert;
+
+ // import the key entry.
+ ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+ }
+
+ // create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ks);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+
+ if (keyCertStr != null) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ ctx.init(null, tmf.getTrustManagers(), null);
+ }
+
+ return ctx;
+ }
+
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/Identities.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,879 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/* @test
+ * @summary X509 certificate hostname checking is broken in JDK1.6.0_10
+ * @bug 6766775
+ * @author Xuelei Fan
+ */
+
+import java.net.*;
+import java.util.*;
+import java.io.*;
+import javax.net.ssl.*;
+import java.security.KeyStore;
+import java.security.KeyFactory;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateFactory;
+import java.security.spec.*;
+import java.security.interfaces.*;
+import java.math.BigInteger;
+
+import sun.security.ssl.SSLSocketImpl;
+
+/*
+ * Certificates and key used in the test.
+ *
+ * TLS server certificate:
+ * server private key:
+ * -----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,D9AE407F6D0E389A
+ *
+ * WPrA7TFol/cQCcp9oHnXWNpYlvRbbIcQj0m+RKT2Iuzfus+DHt3Zadf8nJpKfX2e
+ * h2rnhlzCN9M7djRDooZKDOPCsdBn51Au7HlZF3S3Opgo7D8XFM1a8t1Je4ke14oI
+ * nw6QKYsBblRziPnP2PZ0zvX24nOv7bbY8beynlJHGs00VWSFdoH2DS0aE1p6D+3n
+ * ptJuJ75dVfZFK4X7162APlNXevX8D6PEQpSiRw1rjjGGcnvQ4HdWk3BxDVDcCNJb
+ * Y1aGNRxsjTDvPi3R9Qx2M+W03QzEPx4SR3ZHVskeSJHaetM0TM/w/45Paq4GokXP
+ * ZeTnbEx1xmjkA7h+t4doLL4watx5F6yLsJzu8xB3lt/1EtmkYtLz1t7X4BetPAXz
+ * zS69X/VwhKfsOI3qXBWuL2oHPyhDmT1gcaUQwEPSV6ogHEEQEDXdiUS8heNK13KF
+ * TCQYFkETvV2BLxUhV1hypPzRQ6tUpJiAbD5KmoK2lD9slshG2QtvKQq0/bgkDY5J
+ * LhDHV2dtcZ3kDPkkZXpbcJQvoeH3d09C5sIsuTFo2zgNR6oETHUc5TzP6FY2YYRa
+ * QcK5HcmtsRRiXFm01ac+aMejJUIujjFt84SiKWT/73vC8AmY4tYcJBLjCg4XIxSH
+ * fdDFLL1YZENNO5ivlp8mdiHqcawx+36L7DrEZQ8RZt6cqST5t/+XTdM74s6k81GT
+ * pNsa82P2K2zmIUZ/DL2mKjW1vfRByw1NQFEBkN3vdyZxYfM/JyUzX4hbjXBEkh9Q
+ * QYrcwLKLjis2QzSvK04B3bvRzRb+4ocWiso8ZPAXAIxZFBWDpTMM2A==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICXAIBAAKBgQClrFscN6LdmYktsnm4j9VIpecchBeNaZzGrG358h0fORna03Ie
+ * buxEzHCk3LoAMPagTz1UemFqzFfQCn+VKBg/mtmU8hvIJIh+/p0PPftXUwizIDPU
+ * PxdHFNHN6gjYDnVOr77M0uyvqXpJ38LZrLgkQJCmA1Yq0DAFQCxPq9l0iQIDAQAB
+ * AoGAbqcbg1E1mkR99uOJoNeQYKFOJyGiiXTMnXV1TseC4+PDfQBU7Dax35GcesBi
+ * CtapIpFKKS5D+ozY6b7ZT8ojxuQ/uHLPAvz0WDR3ds4iRF8tyu71Q1ZHcQsJa17y
+ * yO7UbkSSKn/Mp9Rb+/dKqftUGNXVFLqgHBOzN2s3We3bbbECQQDYBPKOg3hkaGHo
+ * OhpHKqtQ6EVkldihG/3i4WejRonelXN+HRh1KrB2HBx0M8D/qAzP1i3rNSlSHer4
+ * 59YRTJnHAkEAxFX/sVYSn07BHv9Zhn6XXct/Cj43z/tKNbzlNbcxqQwQerw3IH51
+ * 8UH2YOA+GD3lXbKp+MytoFLWv8zg4YT/LwJAfqan75Z1R6lLffRS49bIiq8jwE16
+ * rTrUJ+kv8jKxMqc9B3vXkxpsS1M/+4E8bqgAmvpgAb8xcsvHsBd9ErdukQJBAKs2
+ * j67W75BrPjBI34pQ1LEfp56IGWXOrq1kF8IbCjxv3+MYRT6Z6UJFkpRymNPNDjsC
+ * dgUYgITiGJHUGXuw3lMCQHEHqo9ZtXz92yFT+VhsNc29B8m/sqUJdtCcMd/jGpAF
+ * u6GHufjqIZBpQsk63wbwESAPZZ+kk1O1kS5GIRLX608=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 6e:a7:1b:83:51:35:9a:44:7d:f6:e3:89:a0:d7:90:
+ * 60:a1:4e:27:21:a2:89:74:cc:9d:75:75:4e:c7:82:
+ * e3:e3:c3:7d:00:54:ec:36:b1:df:91:9c:7a:c0:62:
+ * 0a:d6:a9:22:91:4a:29:2e:43:fa:8c:d8:e9:be:d9:
+ * 4f:ca:23:c6:e4:3f:b8:72:cf:02:fc:f4:58:34:77:
+ * 76:ce:22:44:5f:2d:ca:ee:f5:43:56:47:71:0b:09:
+ * 6b:5e:f2:c8:ee:d4:6e:44:92:2a:7f:cc:a7:d4:5b:
+ * fb:f7:4a:a9:fb:54:18:d5:d5:14:ba:a0:1c:13:b3:
+ * 37:6b:37:59:ed:db:6d:b1
+ * prime1:
+ * 00:d8:04:f2:8e:83:78:64:68:61:e8:3a:1a:47:2a:
+ * ab:50:e8:45:64:95:d8:a1:1b:fd:e2:e1:67:a3:46:
+ * 89:de:95:73:7e:1d:18:75:2a:b0:76:1c:1c:74:33:
+ * c0:ff:a8:0c:cf:d6:2d:eb:35:29:52:1d:ea:f8:e7:
+ * d6:11:4c:99:c7
+ * prime2:
+ * 00:c4:55:ff:b1:56:12:9f:4e:c1:1e:ff:59:86:7e:
+ * 97:5d:cb:7f:0a:3e:37:cf:fb:4a:35:bc:e5:35:b7:
+ * 31:a9:0c:10:7a:bc:37:20:7e:75:f1:41:f6:60:e0:
+ * 3e:18:3d:e5:5d:b2:a9:f8:cc:ad:a0:52:d6:bf:cc:
+ * e0:e1:84:ff:2f
+ * exponent1:
+ * 7e:a6:a7:ef:96:75:47:a9:4b:7d:f4:52:e3:d6:c8:
+ * 8a:af:23:c0:4d:7a:ad:3a:d4:27:e9:2f:f2:32:b1:
+ * 32:a7:3d:07:7b:d7:93:1a:6c:4b:53:3f:fb:81:3c:
+ * 6e:a8:00:9a:fa:60:01:bf:31:72:cb:c7:b0:17:7d:
+ * 12:b7:6e:91
+ * exponent2:
+ * 00:ab:36:8f:ae:d6:ef:90:6b:3e:30:48:df:8a:50:
+ * d4:b1:1f:a7:9e:88:19:65:ce:ae:ad:64:17:c2:1b:
+ * 0a:3c:6f:df:e3:18:45:3e:99:e9:42:45:92:94:72:
+ * 98:d3:cd:0e:3b:02:76:05:18:80:84:e2:18:91:d4:
+ * 19:7b:b0:de:53
+ * coefficient:
+ * 71:07:aa:8f:59:b5:7c:fd:db:21:53:f9:58:6c:35:
+ * cd:bd:07:c9:bf:b2:a5:09:76:d0:9c:31:df:e3:1a:
+ * 90:05:bb:a1:87:b9:f8:ea:21:90:69:42:c9:3a:df:
+ * 06:f0:11:20:0f:65:9f:a4:93:53:b5:91:2e:46:21:
+ * 12:d7:eb:4f
+ *
+ *
+ * server certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 4 (0x4)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:21:16 2008 GMT
+ * Not After : Aug 25 03:21:16 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Server, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:a5:ac:5b:1c:37:a2:dd:99:89:2d:b2:79:b8:8f:
+ * d5:48:a5:e7:1c:84:17:8d:69:9c:c6:ac:6d:f9:f2:
+ * 1d:1f:39:19:da:d3:72:1e:6e:ec:44:cc:70:a4:dc:
+ * ba:00:30:f6:a0:4f:3d:54:7a:61:6a:cc:57:d0:0a:
+ * 7f:95:28:18:3f:9a:d9:94:f2:1b:c8:24:88:7e:fe:
+ * 9d:0f:3d:fb:57:53:08:b3:20:33:d4:3f:17:47:14:
+ * d1:cd:ea:08:d8:0e:75:4e:af:be:cc:d2:ec:af:a9:
+ * 7a:49:df:c2:d9:ac:b8:24:40:90:a6:03:56:2a:d0:
+ * 30:05:40:2c:4f:ab:d9:74:89
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * ED:6E:DB:F4:B5:56:C8:FB:1A:06:61:3F:0F:08:BB:A6:04:D8:16:54
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1, DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICqjCCAhOgAwIBAgIBBDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzIxMTZaFw0yODA4MjUwMzIxMTZaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3
+ * ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6
+ * YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS
+ * 7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjeTB3MAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB
+ * gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAWTrftGaL73lKLgRTrChGR+F6
+ * //qvs0OM94IOKVeHz36NO49cMJmhJSbKdiGIkppBgpLIBoWxZlN9NOO9oSXFYZsZ
+ * rHaAe9/lWMtQM7XpjqjhWVhB5VPvWFbkorQFMtRYLf7pkonGPFq8GOO1s0TKhogC
+ * jtYCdzlrU4v+om/J3H8=
+ * -----END CERTIFICATE-----
+ *
+ *
+ * TLS client certificate:
+ * client private key:
+ * ----BEGIN RSA PRIVATE KEY-----
+ * Proc-Type: 4,ENCRYPTED
+ * DEK-Info: DES-EDE3-CBC,FA2A435CD35A9390
+ *
+ * Z+Y2uaETbsUWIyJUyVu1UV2G4rgFYJyACZT6Tp1KjRtxflSh2kXkJ9MpuXMXA0V4
+ * Yy3fDzPqCL9NJmQAYRlAx/W/+j4F5EyMWDIx8fUxzONRZyoiwF7jLm+KscAfv6Pf
+ * q7ItWOdj3z7IYrwlB8YIGd3F2cDKT3S+lYRk7rKb/qT7itbuHnY4Ardh3yl+MZak
+ * jBp+ELUlRsUqSr1V0LoM+0rCCykarpyfhpxEcqsrl0v9Cyi5uhU50/oKv5zql3SH
+ * l2ImgDjp3batAs8+Bd4NF2aqi0a7Hy44JUHxRm4caZryU/i/D9N1MbuM6882HLat
+ * 5N0G+NaIUfywa8mjwq2D5aiit18HqKA6XeRRYeJ5Dvu9DCO4GeFSwcUFIBMI0L46
+ * 7s114+oDodg57pMgITi+04vmUxvqlN9aiyd7f5Fgd7PeHGeOdbMz1NaJLJaPI9++
+ * NakK8eK9iwT/Gdq0Uap5/CHW7vCT5PO+h3HY0STH0lWStXhdWnFO04zTdywsbSp+
+ * DLpHeFT66shfeUlxR0PsCbG9vPRt/QmGLeYQZITppWo/ylSq4j+pRIuXvuWHdBRN
+ * rTZ8QF4Y7AxQUXVz1j1++s6ZMHTzaK2i9HrhmDs1MbJl+QwWre3Xpv3LvTVz3k5U
+ * wX8kuY1m3STt71QCaRWENq5sRaMImLxZbxc/ivFl9RAzUqo4NCxLod/QgA4iLqtO
+ * ztnlpzwlC/F8HbQ1oqYWwnZAPhzU/cULtstl+Yrws2c2atO323LbPXZqbASySgig
+ * sNpFXQMObdfP6LN23bY+1SvtK7V4NUTNhpdIc6INQAQ=
+ * -----END RSA PRIVATE KEY-----
+ *
+ * -----BEGIN RSA PRIVATE KEY-----
+ * MIICWwIBAAKBgQC78EA2rCZUTvSjWgAvaSFvuXo6k+yi9uGOx2PYLxIwmS6w8o/4
+ * Jy0keCiE9wG/jUR53TvSVfPOPLJbIX3v/TNKsaP/xsibuQ98QTWX+ds6BWAFFa9Z
+ * F5KjEK0WHOQHU6+odqJWKpLT+SjgeM9eH0irXBnd4WdDunWN9YKsQ5JEGwIDAQAB
+ * AoGAEbdqNj0wN85hnWyEi/ObJU8UyKTdL9eaF72QGfcF/fLSxfd3vurihIeXOkGW
+ * tpn4lIxYcVGM9CognhqgJpl11jFTQzn1KqZ+NEJRKkCHA4hDabKJbSC9fXHvRwrf
+ * BsFpZqgiNxp3HseUTiwnaUVeyPgMt/jAj5nB5Sib+UyUxrECQQDnNQBiF2aifEg6
+ * zbJOOC7he5CHAdkFxSxWVFVHL6EfXfqdLVkUohMbgZv+XxyIeU2biOExSg49Kds3
+ * FOKgTau1AkEA0Bd1haj6QuCo8I0AXm2WO+MMTZMTvtHD/bGjKNM+fT4I8rKYnQRX
+ * 1acHdqS9Xx2rNJqZgkMmpESIdPR2fc4yjwJALFeM6EMmqvj8/VIf5UJ/Mz14fXwM
+ * PEARfckUxd9LnnFutCBTWlKvKXJVEZb6KO5ixPaegc57Jp3Vbh3yTN44lQJADD/1
+ * SSMDaIB1MYP7a5Oj7m6VQNPRq8AJe5vDcRnOae0G9dKRrVyeFxO4GsHj6/+BHp2j
+ * P8nYMn9eURQ7DXjf/QJAAQzMlWnKGSO8pyTDtnQx3hRMoUkOEhmNq4bQhLkYqtnY
+ * FcqpUQ2qMjW+NiNWk5HnTrMS3L9EdJobMUzaNZLy4w==
+ * -----END RSA PRIVATE KEY-----
+ *
+ * Private-Key: (1024 bit)
+ * modulus:
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * publicExponent: 65537 (0x10001)
+ * privateExponent:
+ * 11:b7:6a:36:3d:30:37:ce:61:9d:6c:84:8b:f3:9b:
+ * 25:4f:14:c8:a4:dd:2f:d7:9a:17:bd:90:19:f7:05:
+ * fd:f2:d2:c5:f7:77:be:ea:e2:84:87:97:3a:41:96:
+ * b6:99:f8:94:8c:58:71:51:8c:f4:2a:20:9e:1a:a0:
+ * 26:99:75:d6:31:53:43:39:f5:2a:a6:7e:34:42:51:
+ * 2a:40:87:03:88:43:69:b2:89:6d:20:bd:7d:71:ef:
+ * 47:0a:df:06:c1:69:66:a8:22:37:1a:77:1e:c7:94:
+ * 4e:2c:27:69:45:5e:c8:f8:0c:b7:f8:c0:8f:99:c1:
+ * e5:28:9b:f9:4c:94:c6:b1
+ * prime1:
+ * 00:e7:35:00:62:17:66:a2:7c:48:3a:cd:b2:4e:38:
+ * 2e:e1:7b:90:87:01:d9:05:c5:2c:56:54:55:47:2f:
+ * a1:1f:5d:fa:9d:2d:59:14:a2:13:1b:81:9b:fe:5f:
+ * 1c:88:79:4d:9b:88:e1:31:4a:0e:3d:29:db:37:14:
+ * e2:a0:4d:ab:b5
+ * prime2:
+ * 00:d0:17:75:85:a8:fa:42:e0:a8:f0:8d:00:5e:6d:
+ * 96:3b:e3:0c:4d:93:13:be:d1:c3:fd:b1:a3:28:d3:
+ * 3e:7d:3e:08:f2:b2:98:9d:04:57:d5:a7:07:76:a4:
+ * bd:5f:1d:ab:34:9a:99:82:43:26:a4:44:88:74:f4:
+ * 76:7d:ce:32:8f
+ * exponent1:
+ * 2c:57:8c:e8:43:26:aa:f8:fc:fd:52:1f:e5:42:7f:
+ * 33:3d:78:7d:7c:0c:3c:40:11:7d:c9:14:c5:df:4b:
+ * 9e:71:6e:b4:20:53:5a:52:af:29:72:55:11:96:fa:
+ * 28:ee:62:c4:f6:9e:81:ce:7b:26:9d:d5:6e:1d:f2:
+ * 4c:de:38:95
+ * exponent2:
+ * 0c:3f:f5:49:23:03:68:80:75:31:83:fb:6b:93:a3:
+ * ee:6e:95:40:d3:d1:ab:c0:09:7b:9b:c3:71:19:ce:
+ * 69:ed:06:f5:d2:91:ad:5c:9e:17:13:b8:1a:c1:e3:
+ * eb:ff:81:1e:9d:a3:3f:c9:d8:32:7f:5e:51:14:3b:
+ * 0d:78:df:fd
+ * coefficient:
+ * 01:0c:cc:95:69:ca:19:23:bc:a7:24:c3:b6:74:31:
+ * de:14:4c:a1:49:0e:12:19:8d:ab:86:d0:84:b9:18:
+ * aa:d9:d8:15:ca:a9:51:0d:aa:32:35:be:36:23:56:
+ * 93:91:e7:4e:b3:12:dc:bf:44:74:9a:1b:31:4c:da:
+ * 35:92:f2:e3
+ *
+ * client certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 5 (0x5)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 03:22:10 2008 GMT
+ * Not After : Aug 25 03:22:10 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org, OU=SSL-Client, CN=localhost
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:bb:f0:40:36:ac:26:54:4e:f4:a3:5a:00:2f:69:
+ * 21:6f:b9:7a:3a:93:ec:a2:f6:e1:8e:c7:63:d8:2f:
+ * 12:30:99:2e:b0:f2:8f:f8:27:2d:24:78:28:84:f7:
+ * 01:bf:8d:44:79:dd:3b:d2:55:f3:ce:3c:b2:5b:21:
+ * 7d:ef:fd:33:4a:b1:a3:ff:c6:c8:9b:b9:0f:7c:41:
+ * 35:97:f9:db:3a:05:60:05:15:af:59:17:92:a3:10:
+ * ad:16:1c:e4:07:53:af:a8:76:a2:56:2a:92:d3:f9:
+ * 28:e0:78:cf:5e:1f:48:ab:5c:19:dd:e1:67:43:ba:
+ * 75:8d:f5:82:ac:43:92:44:1b
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Basic Constraints:
+ * CA:FALSE
+ * X509v3 Key Usage:
+ * Digital Signature, Non Repudiation, Key Encipherment
+ * X509v3 Subject Key Identifier:
+ * CD:BB:C8:85:AA:91:BD:FD:1D:BE:CD:67:7C:FF:B3:E9:4C:A8:22:E6
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ *
+ * X509v3 Subject Alternative Name: critical
+ * IP Address:127.0.0.1, DNS:localhost
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICqjCCAhOgAwIBAgIBBTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMzIyMTBaFw0yODA4MjUwMzIyMTBaMHIxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD
+ * VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas
+ * JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV
+ * 8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq
+ * ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjeTB3MAkGA1UdEwQCMAAw
+ * CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV
+ * HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB
+ * gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAwDc4f13abs9ZeEkrl5WV2Z74
+ * BlmBhXu8ExtAvoF9q6Ug6xV1MDpxbD124KfUHHL0kNMhMB1WIpC0kOnQBxziNpfS
+ * 7u6GOc3tWLSxw/sHoJGCefnRBllLZOoQuSBrWB8qgilL6HRmZ4UqDcXu4UCaLBZ0
+ * KGDT5ASEN6Lq2GtiP4Y=
+ * -----END CERTIFICATE-----
+ *
+ *
+ *
+ * Trusted CA certificate:
+ * Certificate:
+ * Data:
+ * Version: 3 (0x2)
+ * Serial Number: 0 (0x0)
+ * Signature Algorithm: md5WithRSAEncryption
+ * Issuer: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Validity
+ * Not Before: Dec 8 02:43:36 2008 GMT
+ * Not After : Aug 25 02:43:36 2028 GMT
+ * Subject: C=US, ST=Some-State, L=Some-City, O=Some-Org
+ * Subject Public Key Info:
+ * Public Key Algorithm: rsaEncryption
+ * RSA Public Key: (1024 bit)
+ * Modulus (1024 bit):
+ * 00:cb:c4:38:20:07:be:88:a7:93:b0:a1:43:51:2d:
+ * d7:8e:85:af:54:dd:ad:a2:7b:23:5b:cf:99:13:53:
+ * 99:45:7d:ee:6d:ba:2d:bf:e3:ad:6e:3d:9f:1a:f9:
+ * 03:97:e0:17:55:ae:11:26:57:de:01:29:8e:05:3f:
+ * 21:f7:e7:36:e8:2e:37:d7:48:ac:53:d6:60:0e:c7:
+ * 50:6d:f6:c5:85:f7:8b:a6:c5:91:35:72:3c:94:ee:
+ * f1:17:f0:71:e3:ec:1b:ce:ca:4e:40:42:b0:6d:ee:
+ * 6a:0e:d6:e5:ad:3c:0f:c9:ba:82:4f:78:f8:89:97:
+ * 89:2a:95:12:4c:d8:09:2a:e9
+ * Exponent: 65537 (0x10001)
+ * X509v3 extensions:
+ * X509v3 Subject Key Identifier:
+ * FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * X509v3 Authority Key Identifier:
+ * keyid:FA:B9:51:BF:4C:E7:D9:86:98:33:F9:E7:CB:1E:F1:33:49:F7:A8:14
+ * DirName:/C=US/ST=Some-State/L=Some-City/O=Some-Org
+ * serial:00
+ *
+ * X509v3 Basic Constraints:
+ * CA:TRUE
+ * Signature Algorithm: md5WithRSAEncryption
+ *
+ * -----BEGIN CERTIFICATE-----
+ * MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET
+ * MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK
+ * EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ
+ * BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp
+ * dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+ * gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX
+ * 4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj
+ * 7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G
+ * A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ
+ * hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt
+ * U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw
+ * DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA
+ * ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ
+ * LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P
+ * 6Mvf0r1PNTY2hwTJLJmKtg==
+ * -----END CERTIFICATE---
+ */
+
+
+public class Identities {
+ static Map cookies;
+ ServerSocket ss;
+
+ /*
+ * =============================================================
+ * Set the various variables needed for the tests, then
+ * specify what tests to run on each side.
+ */
+
+ /*
+ * Should we run the client or server in a separate thread?
+ * Both sides can throw exceptions, but do you have a preference
+ * as to which side should be the main thread.
+ */
+ static boolean separateServerThread = true;
+
+ /*
+ * Where do we find the keystores?
+ */
+ static String trusedCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICrDCCAhWgAwIBAgIBADANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMjQzMzZaFw0yODA4MjUwMjQzMzZaMEkxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB\n" +
+ "gQDLxDggB76Ip5OwoUNRLdeOha9U3a2ieyNbz5kTU5lFfe5tui2/461uPZ8a+QOX\n" +
+ "4BdVrhEmV94BKY4FPyH35zboLjfXSKxT1mAOx1Bt9sWF94umxZE1cjyU7vEX8HHj\n" +
+ "7BvOyk5AQrBt7moO1uWtPA/JuoJPePiJl4kqlRJM2Akq6QIDAQABo4GjMIGgMB0G\n" +
+ "A1UdDgQWBBT6uVG/TOfZhpgz+efLHvEzSfeoFDBxBgNVHSMEajBogBT6uVG/TOfZ\n" +
+ "hpgz+efLHvEzSfeoFKFNpEswSTELMAkGA1UEBhMCVVMxEzARBgNVBAgTClNvbWUt\n" +
+ "U3RhdGUxEjAQBgNVBAcTCVNvbWUtQ2l0eTERMA8GA1UEChMIU29tZS1PcmeCAQAw\n" +
+ "DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBcIm534U123Hz+rtyYO5uA\n" +
+ "ofd81G6FnTfEAV8Kw9fGyyEbQZclBv34A9JsFKeMvU4OFIaixD7nLZ/NZ+IWbhmZ\n" +
+ "LovmJXyCkOufea73pNiZ+f/4/ScZaIlM/PRycQSqbFNd4j9Wott+08qxHPLpsf3P\n" +
+ "6Mvf0r1PNTY2hwTJLJmKtg==\n" +
+ "-----END CERTIFICATE-----";
+
+ static String serverCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICqjCCAhOgAwIBAgIBBDANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzIxMTZaFw0yODA4MjUwMzIxMTZaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtU2VydmVyMRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKWsWxw3\n" +
+ "ot2ZiS2yebiP1Uil5xyEF41pnMasbfnyHR85GdrTch5u7ETMcKTcugAw9qBPPVR6\n" +
+ "YWrMV9AKf5UoGD+a2ZTyG8gkiH7+nQ89+1dTCLMgM9Q/F0cU0c3qCNgOdU6vvszS\n" +
+ "7K+peknfwtmsuCRAkKYDVirQMAVALE+r2XSJAgMBAAGjeTB3MAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTtbtv0tVbI+xoGYT8PCLumBNgWVDAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB\n" +
+ "gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAWTrftGaL73lKLgRTrChGR+F6\n" +
+ "//qvs0OM94IOKVeHz36NO49cMJmhJSbKdiGIkppBgpLIBoWxZlN9NOO9oSXFYZsZ\n" +
+ "rHaAe9/lWMtQM7XpjqjhWVhB5VPvWFbkorQFMtRYLf7pkonGPFq8GOO1s0TKhogC\n" +
+ "jtYCdzlrU4v+om/J3H8=\n" +
+ "-----END CERTIFICATE-----";
+
+ static String clientCertStr =
+ "-----BEGIN CERTIFICATE-----\n" +
+ "MIICqjCCAhOgAwIBAgIBBTANBgkqhkiG9w0BAQQFADBJMQswCQYDVQQGEwJVUzET\n" +
+ "MBEGA1UECBMKU29tZS1TdGF0ZTESMBAGA1UEBxMJU29tZS1DaXR5MREwDwYDVQQK\n" +
+ "EwhTb21lLU9yZzAeFw0wODEyMDgwMzIyMTBaFw0yODA4MjUwMzIyMTBaMHIxCzAJ\n" +
+ "BgNVBAYTAlVTMRMwEQYDVQQIEwpTb21lLVN0YXRlMRIwEAYDVQQHEwlTb21lLUNp\n" +
+ "dHkxETAPBgNVBAoTCFNvbWUtT3JnMRMwEQYDVQQLEwpTU0wtQ2xpZW50MRIwEAYD\n" +
+ "VQQDEwlsb2NhbGhvc3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALvwQDas\n" +
+ "JlRO9KNaAC9pIW+5ejqT7KL24Y7HY9gvEjCZLrDyj/gnLSR4KIT3Ab+NRHndO9JV\n" +
+ "8848slshfe/9M0qxo//GyJu5D3xBNZf52zoFYAUVr1kXkqMQrRYc5AdTr6h2olYq\n" +
+ "ktP5KOB4z14fSKtcGd3hZ0O6dY31gqxDkkQbAgMBAAGjeTB3MAkGA1UdEwQCMAAw\n" +
+ "CwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTNu8iFqpG9/R2+zWd8/7PpTKgi5jAfBgNV\n" +
+ "HSMEGDAWgBT6uVG/TOfZhpgz+efLHvEzSfeoFDAdBgNVHREBAf8EEzARhwR/AAAB\n" +
+ "gglsb2NhbGhvc3QwDQYJKoZIhvcNAQEEBQADgYEAwDc4f13abs9ZeEkrl5WV2Z74\n" +
+ "BlmBhXu8ExtAvoF9q6Ug6xV1MDpxbD124KfUHHL0kNMhMB1WIpC0kOnQBxziNpfS\n" +
+ "7u6GOc3tWLSxw/sHoJGCefnRBllLZOoQuSBrWB8qgilL6HRmZ4UqDcXu4UCaLBZ0\n" +
+ "KGDT5ASEN6Lq2GtiP4Y=\n" +
+ "-----END CERTIFICATE-----";
+
+ static byte serverPrivateExponent[] = {
+ (byte)0x6e, (byte)0xa7, (byte)0x1b, (byte)0x83,
+ (byte)0x51, (byte)0x35, (byte)0x9a, (byte)0x44,
+ (byte)0x7d, (byte)0xf6, (byte)0xe3, (byte)0x89,
+ (byte)0xa0, (byte)0xd7, (byte)0x90, (byte)0x60,
+ (byte)0xa1, (byte)0x4e, (byte)0x27, (byte)0x21,
+ (byte)0xa2, (byte)0x89, (byte)0x74, (byte)0xcc,
+ (byte)0x9d, (byte)0x75, (byte)0x75, (byte)0x4e,
+ (byte)0xc7, (byte)0x82, (byte)0xe3, (byte)0xe3,
+ (byte)0xc3, (byte)0x7d, (byte)0x00, (byte)0x54,
+ (byte)0xec, (byte)0x36, (byte)0xb1, (byte)0xdf,
+ (byte)0x91, (byte)0x9c, (byte)0x7a, (byte)0xc0,
+ (byte)0x62, (byte)0x0a, (byte)0xd6, (byte)0xa9,
+ (byte)0x22, (byte)0x91, (byte)0x4a, (byte)0x29,
+ (byte)0x2e, (byte)0x43, (byte)0xfa, (byte)0x8c,
+ (byte)0xd8, (byte)0xe9, (byte)0xbe, (byte)0xd9,
+ (byte)0x4f, (byte)0xca, (byte)0x23, (byte)0xc6,
+ (byte)0xe4, (byte)0x3f, (byte)0xb8, (byte)0x72,
+ (byte)0xcf, (byte)0x02, (byte)0xfc, (byte)0xf4,
+ (byte)0x58, (byte)0x34, (byte)0x77, (byte)0x76,
+ (byte)0xce, (byte)0x22, (byte)0x44, (byte)0x5f,
+ (byte)0x2d, (byte)0xca, (byte)0xee, (byte)0xf5,
+ (byte)0x43, (byte)0x56, (byte)0x47, (byte)0x71,
+ (byte)0x0b, (byte)0x09, (byte)0x6b, (byte)0x5e,
+ (byte)0xf2, (byte)0xc8, (byte)0xee, (byte)0xd4,
+ (byte)0x6e, (byte)0x44, (byte)0x92, (byte)0x2a,
+ (byte)0x7f, (byte)0xcc, (byte)0xa7, (byte)0xd4,
+ (byte)0x5b, (byte)0xfb, (byte)0xf7, (byte)0x4a,
+ (byte)0xa9, (byte)0xfb, (byte)0x54, (byte)0x18,
+ (byte)0xd5, (byte)0xd5, (byte)0x14, (byte)0xba,
+ (byte)0xa0, (byte)0x1c, (byte)0x13, (byte)0xb3,
+ (byte)0x37, (byte)0x6b, (byte)0x37, (byte)0x59,
+ (byte)0xed, (byte)0xdb, (byte)0x6d, (byte)0xb1
+ };
+
+ static byte serverModulus[] = {
+ (byte)0x00,
+ (byte)0xa5, (byte)0xac, (byte)0x5b, (byte)0x1c,
+ (byte)0x37, (byte)0xa2, (byte)0xdd, (byte)0x99,
+ (byte)0x89, (byte)0x2d, (byte)0xb2, (byte)0x79,
+ (byte)0xb8, (byte)0x8f, (byte)0xd5, (byte)0x48,
+ (byte)0xa5, (byte)0xe7, (byte)0x1c, (byte)0x84,
+ (byte)0x17, (byte)0x8d, (byte)0x69, (byte)0x9c,
+ (byte)0xc6, (byte)0xac, (byte)0x6d, (byte)0xf9,
+ (byte)0xf2, (byte)0x1d, (byte)0x1f, (byte)0x39,
+ (byte)0x19, (byte)0xda, (byte)0xd3, (byte)0x72,
+ (byte)0x1e, (byte)0x6e, (byte)0xec, (byte)0x44,
+ (byte)0xcc, (byte)0x70, (byte)0xa4, (byte)0xdc,
+ (byte)0xba, (byte)0x00, (byte)0x30, (byte)0xf6,
+ (byte)0xa0, (byte)0x4f, (byte)0x3d, (byte)0x54,
+ (byte)0x7a, (byte)0x61, (byte)0x6a, (byte)0xcc,
+ (byte)0x57, (byte)0xd0, (byte)0x0a, (byte)0x7f,
+ (byte)0x95, (byte)0x28, (byte)0x18, (byte)0x3f,
+ (byte)0x9a, (byte)0xd9, (byte)0x94, (byte)0xf2,
+ (byte)0x1b, (byte)0xc8, (byte)0x24, (byte)0x88,
+ (byte)0x7e, (byte)0xfe, (byte)0x9d, (byte)0x0f,
+ (byte)0x3d, (byte)0xfb, (byte)0x57, (byte)0x53,
+ (byte)0x08, (byte)0xb3, (byte)0x20, (byte)0x33,
+ (byte)0xd4, (byte)0x3f, (byte)0x17, (byte)0x47,
+ (byte)0x14, (byte)0xd1, (byte)0xcd, (byte)0xea,
+ (byte)0x08, (byte)0xd8, (byte)0x0e, (byte)0x75,
+ (byte)0x4e, (byte)0xaf, (byte)0xbe, (byte)0xcc,
+ (byte)0xd2, (byte)0xec, (byte)0xaf, (byte)0xa9,
+ (byte)0x7a, (byte)0x49, (byte)0xdf, (byte)0xc2,
+ (byte)0xd9, (byte)0xac, (byte)0xb8, (byte)0x24,
+ (byte)0x40, (byte)0x90, (byte)0xa6, (byte)0x03,
+ (byte)0x56, (byte)0x2a, (byte)0xd0, (byte)0x30,
+ (byte)0x05, (byte)0x40, (byte)0x2c, (byte)0x4f,
+ (byte)0xab, (byte)0xd9, (byte)0x74, (byte)0x89
+ };
+
+ static byte clientPrivateExponent[] = {
+ (byte)0x11, (byte)0xb7, (byte)0x6a, (byte)0x36,
+ (byte)0x3d, (byte)0x30, (byte)0x37, (byte)0xce,
+ (byte)0x61, (byte)0x9d, (byte)0x6c, (byte)0x84,
+ (byte)0x8b, (byte)0xf3, (byte)0x9b, (byte)0x25,
+ (byte)0x4f, (byte)0x14, (byte)0xc8, (byte)0xa4,
+ (byte)0xdd, (byte)0x2f, (byte)0xd7, (byte)0x9a,
+ (byte)0x17, (byte)0xbd, (byte)0x90, (byte)0x19,
+ (byte)0xf7, (byte)0x05, (byte)0xfd, (byte)0xf2,
+ (byte)0xd2, (byte)0xc5, (byte)0xf7, (byte)0x77,
+ (byte)0xbe, (byte)0xea, (byte)0xe2, (byte)0x84,
+ (byte)0x87, (byte)0x97, (byte)0x3a, (byte)0x41,
+ (byte)0x96, (byte)0xb6, (byte)0x99, (byte)0xf8,
+ (byte)0x94, (byte)0x8c, (byte)0x58, (byte)0x71,
+ (byte)0x51, (byte)0x8c, (byte)0xf4, (byte)0x2a,
+ (byte)0x20, (byte)0x9e, (byte)0x1a, (byte)0xa0,
+ (byte)0x26, (byte)0x99, (byte)0x75, (byte)0xd6,
+ (byte)0x31, (byte)0x53, (byte)0x43, (byte)0x39,
+ (byte)0xf5, (byte)0x2a, (byte)0xa6, (byte)0x7e,
+ (byte)0x34, (byte)0x42, (byte)0x51, (byte)0x2a,
+ (byte)0x40, (byte)0x87, (byte)0x03, (byte)0x88,
+ (byte)0x43, (byte)0x69, (byte)0xb2, (byte)0x89,
+ (byte)0x6d, (byte)0x20, (byte)0xbd, (byte)0x7d,
+ (byte)0x71, (byte)0xef, (byte)0x47, (byte)0x0a,
+ (byte)0xdf, (byte)0x06, (byte)0xc1, (byte)0x69,
+ (byte)0x66, (byte)0xa8, (byte)0x22, (byte)0x37,
+ (byte)0x1a, (byte)0x77, (byte)0x1e, (byte)0xc7,
+ (byte)0x94, (byte)0x4e, (byte)0x2c, (byte)0x27,
+ (byte)0x69, (byte)0x45, (byte)0x5e, (byte)0xc8,
+ (byte)0xf8, (byte)0x0c, (byte)0xb7, (byte)0xf8,
+ (byte)0xc0, (byte)0x8f, (byte)0x99, (byte)0xc1,
+ (byte)0xe5, (byte)0x28, (byte)0x9b, (byte)0xf9,
+ (byte)0x4c, (byte)0x94, (byte)0xc6, (byte)0xb1
+ };
+
+ static byte clientModulus[] = {
+ (byte)0x00,
+ (byte)0xbb, (byte)0xf0, (byte)0x40, (byte)0x36,
+ (byte)0xac, (byte)0x26, (byte)0x54, (byte)0x4e,
+ (byte)0xf4, (byte)0xa3, (byte)0x5a, (byte)0x00,
+ (byte)0x2f, (byte)0x69, (byte)0x21, (byte)0x6f,
+ (byte)0xb9, (byte)0x7a, (byte)0x3a, (byte)0x93,
+ (byte)0xec, (byte)0xa2, (byte)0xf6, (byte)0xe1,
+ (byte)0x8e, (byte)0xc7, (byte)0x63, (byte)0xd8,
+ (byte)0x2f, (byte)0x12, (byte)0x30, (byte)0x99,
+ (byte)0x2e, (byte)0xb0, (byte)0xf2, (byte)0x8f,
+ (byte)0xf8, (byte)0x27, (byte)0x2d, (byte)0x24,
+ (byte)0x78, (byte)0x28, (byte)0x84, (byte)0xf7,
+ (byte)0x01, (byte)0xbf, (byte)0x8d, (byte)0x44,
+ (byte)0x79, (byte)0xdd, (byte)0x3b, (byte)0xd2,
+ (byte)0x55, (byte)0xf3, (byte)0xce, (byte)0x3c,
+ (byte)0xb2, (byte)0x5b, (byte)0x21, (byte)0x7d,
+ (byte)0xef, (byte)0xfd, (byte)0x33, (byte)0x4a,
+ (byte)0xb1, (byte)0xa3, (byte)0xff, (byte)0xc6,
+ (byte)0xc8, (byte)0x9b, (byte)0xb9, (byte)0x0f,
+ (byte)0x7c, (byte)0x41, (byte)0x35, (byte)0x97,
+ (byte)0xf9, (byte)0xdb, (byte)0x3a, (byte)0x05,
+ (byte)0x60, (byte)0x05, (byte)0x15, (byte)0xaf,
+ (byte)0x59, (byte)0x17, (byte)0x92, (byte)0xa3,
+ (byte)0x10, (byte)0xad, (byte)0x16, (byte)0x1c,
+ (byte)0xe4, (byte)0x07, (byte)0x53, (byte)0xaf,
+ (byte)0xa8, (byte)0x76, (byte)0xa2, (byte)0x56,
+ (byte)0x2a, (byte)0x92, (byte)0xd3, (byte)0xf9,
+ (byte)0x28, (byte)0xe0, (byte)0x78, (byte)0xcf,
+ (byte)0x5e, (byte)0x1f, (byte)0x48, (byte)0xab,
+ (byte)0x5c, (byte)0x19, (byte)0xdd, (byte)0xe1,
+ (byte)0x67, (byte)0x43, (byte)0xba, (byte)0x75,
+ (byte)0x8d, (byte)0xf5, (byte)0x82, (byte)0xac,
+ (byte)0x43, (byte)0x92, (byte)0x44, (byte)0x1b
+ };
+
+ static char passphrase[] = "passphrase".toCharArray();
+
+ /*
+ * Is the server ready to serve?
+ */
+ volatile static boolean serverReady = false;
+
+ /*
+ * Turn on SSL debugging?
+ */
+ static boolean debug = false;
+
+ private SSLServerSocket sslServerSocket = null;
+
+ /*
+ * Define the server side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doServerSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, serverCertStr,
+ serverModulus, serverPrivateExponent, passphrase);
+ SSLServerSocketFactory sslssf = context.getServerSocketFactory();
+
+ sslServerSocket =
+ (SSLServerSocket) sslssf.createServerSocket(serverPort);
+ serverPort = sslServerSocket.getLocalPort();
+
+ /*
+ * Signal Client, we're ready for his connect.
+ */
+ serverReady = true;
+
+ SSLSocket sslSocket = (SSLSocket) sslServerSocket.accept();
+ sslSocket.setNeedClientAuth(true);
+ if (sslSocket instanceof SSLSocketImpl) {
+ ((SSLSocketImpl)sslSocket).trySetHostnameVerification("HTTPS");
+ }
+
+ PrintStream out =
+ new PrintStream(sslSocket.getOutputStream());
+
+ try {
+ // ignore request data
+
+ // send the response
+ out.print("HTTP/1.1 200 OK\r\n");
+ out.print("Content-Type: text/html; charset=iso-8859-1\r\n");
+ out.print("Content-Length: "+ 9 +"\r\n");
+ out.print("\r\n");
+ out.print("Testing\r\n");
+ out.flush();
+ } finally {
+ // close the socket
+ Thread.sleep(2000);
+ System.out.println("Server closing socket");
+ sslSocket.close();
+ serverReady = false;
+ }
+
+ }
+
+ /*
+ * Define the client side of the test.
+ *
+ * If the server prematurely exits, serverReady will be set to true
+ * to avoid infinite hangs.
+ */
+ void doClientSide() throws Exception {
+ SSLContext context = getSSLContext(trusedCertStr, clientCertStr,
+ clientModulus, clientPrivateExponent, passphrase);
+
+ SSLContext.setDefault(context);
+
+ /*
+ * Wait for server to get started.
+ */
+ while (!serverReady) {
+ Thread.sleep(50);
+ }
+
+ HttpsURLConnection http = null;
+
+ /* establish http connection to server */
+ URL url = new URL("https://localhost:" + serverPort+"/");
+ System.out.println("url is "+url.toString());
+
+ http = (HttpsURLConnection)url.openConnection();
+
+ int respCode = http.getResponseCode();
+ System.out.println("respCode = "+respCode);
+
+ http.disconnect();
+ }
+
+ /*
+ * =============================================================
+ * The remainder is just support stuff
+ */
+
+ // use any free port by default
+ volatile int serverPort = 0;
+
+ volatile Exception serverException = null;
+ volatile Exception clientException = null;
+
+ public static void main(String args[]) throws Exception {
+ if (debug)
+ System.setProperty("javax.net.debug", "all");
+
+ /*
+ * Start the tests.
+ */
+ new Identities();
+ }
+
+ Thread clientThread = null;
+ Thread serverThread = null;
+ /*
+ * Primary constructor, used to drive remainder of the test.
+ *
+ * Fork off the other side, then do your work.
+ */
+ Identities() throws Exception {
+ if (separateServerThread) {
+ startServer(true);
+ startClient(false);
+ } else {
+ startClient(true);
+ startServer(false);
+ }
+
+ /*
+ * Wait for other side to close down.
+ */
+ if (separateServerThread) {
+ serverThread.join();
+ } else {
+ clientThread.join();
+ }
+
+ /*
+ * When we get here, the test is pretty much over.
+ *
+ * If the main thread excepted, that propagates back
+ * immediately. If the other thread threw an exception, we
+ * should report back.
+ */
+ if (serverException != null)
+ throw serverException;
+ if (clientException != null)
+ throw clientException;
+ }
+
+ void startServer(boolean newThread) throws Exception {
+ if (newThread) {
+ serverThread = new Thread() {
+ public void run() {
+ try {
+ doServerSide();
+ } catch (Exception e) {
+ /*
+ * Our server thread just died.
+ *
+ * Release the client, if not active already...
+ */
+ System.err.println("Server died...");
+ serverReady = true;
+ serverException = e;
+ }
+ }
+ };
+ serverThread.start();
+ } else {
+ doServerSide();
+ }
+ }
+
+ void startClient(boolean newThread) throws Exception {
+ if (newThread) {
+ clientThread = new Thread() {
+ public void run() {
+ try {
+ doClientSide();
+ } catch (Exception e) {
+ /*
+ * Our client thread just died.
+ */
+ System.err.println("Client died...");
+ clientException = e;
+ }
+ }
+ };
+ clientThread.start();
+ } else {
+ doClientSide();
+ }
+ }
+
+ // get the ssl context
+ private static SSLContext getSSLContext(String trusedCertStr,
+ String keyCertStr, byte[] modulus,
+ byte[] privateExponent, char[] passphrase) throws Exception {
+
+ // generate certificate from cert string
+ CertificateFactory cf = CertificateFactory.getInstance("X.509");
+
+ ByteArrayInputStream is =
+ new ByteArrayInputStream(trusedCertStr.getBytes());
+ Certificate trusedCert = cf.generateCertificate(is);
+ is.close();
+
+ // create a key store
+ KeyStore ks = KeyStore.getInstance("JKS");
+ ks.load(null, null);
+
+ // import the trused cert
+ ks.setCertificateEntry("RSA Export Signer", trusedCert);
+
+ if (keyCertStr != null) {
+ // generate the private key.
+ RSAPrivateKeySpec priKeySpec = new RSAPrivateKeySpec(
+ new BigInteger(modulus),
+ new BigInteger(privateExponent));
+ KeyFactory kf = KeyFactory.getInstance("RSA");
+ RSAPrivateKey priKey =
+ (RSAPrivateKey)kf.generatePrivate(priKeySpec);
+
+ // generate certificate chain
+ is = new ByteArrayInputStream(keyCertStr.getBytes());
+ Certificate keyCert = cf.generateCertificate(is);
+ is.close();
+
+ Certificate[] chain = new Certificate[2];
+ chain[0] = keyCert;
+ chain[1] = trusedCert;
+
+ // import the key entry.
+ ks.setKeyEntry("Whatever", priKey, passphrase, chain);
+ }
+
+ // create SSL context
+ TrustManagerFactory tmf = TrustManagerFactory.getInstance("PKIX");
+ tmf.init(ks);
+
+ SSLContext ctx = SSLContext.getInstance("TLS");
+
+ if (keyCertStr != null) {
+ KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
+ kmf.init(ks, passphrase);
+
+ ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);
+ } else {
+ ctx.init(null, tmf.getTrustManagers(), null);
+ }
+
+ return ctx;
+ }
+
+}
--- a/jdk/test/sun/security/tools/jarsigner/oldsig.sh Sun Apr 11 23:21:23 2010 -0700
+++ b/jdk/test/sun/security/tools/jarsigner/oldsig.sh Tue Apr 20 01:24:48 2010 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2010 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -22,7 +22,7 @@
#
# @test
-# @bug 6543940
+# @bug 6543940 6868865
# @summary Exception thrown when signing a jarfile in java 1.5
#
# @run shell oldsig.sh
@@ -77,5 +77,6 @@
${TESTJAVA}${FS}bin${FS}jarsigner \
-keystore ${TESTSRC}${FS}JarSigning.keystore \
-storepass bbbbbb \
+ -digestalg SHA1 \
B.jar c
${TESTJAVA}${FS}bin${FS}jarsigner -verify B.jar
--- a/langtools/.hgtags Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/.hgtags Tue Apr 20 01:24:48 2010 -0700
@@ -62,3 +62,5 @@
136bfc67946219fb02ee223984540a4a9c5b209f jdk7-b85
ef07347428f2198ae6b8144ac0b9086bbe39fd16 jdk7-b86
409db93d19c002333980df5b797c6b965150c7a0 jdk7-b87
+f9b5d4867a26f8c4b90ad37fe2c345b721e93d6b jdk7-b88
+6cea9a143208bc1185ced046942c0f4e45dbeba5 jdk7-b89
--- a/langtools/make/Makefile Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/make/Makefile Tue Apr 20 01:24:48 2010 -0700
@@ -188,10 +188,16 @@
# All ant targets of interest
ANT_TARGETS = build clean sanity post-sanity diagnostics # for now
+# Create diagnostics log (careful, ant 1.8.0 -diagnostics always does an exit 1)
+$(OUTPUTDIR)/build/ant-diagnostics.log:
+ @mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
+ @$(RM) $@
+ $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $@ ; \
+ $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -version >> $@
+
# Create a make target for each
-$(ANT_TARGETS):
+$(ANT_TARGETS): $(OUTPUTDIR)/build/ant-diagnostics.log
@ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
- $(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $(OUTPUTDIR)/build/ant-diagnostics.log
$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@
#-------------------------------------------------------------------
--- a/langtools/make/jprt.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/make/jprt.properties Tue Apr 20 01:24:48 2010 -0700
@@ -50,6 +50,5 @@
jprt.test.targets=
# Directories needed to build
-jprt.bundle.src.dirs=make src
jprt.bundle.exclude.src.dirs=build dist
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java Tue Apr 20 01:24:48 2010 -0700
@@ -229,23 +229,24 @@
if (kind == ENUM) {
List<Element> enclosedElements =
new ArrayList<Element>(e.getEnclosedElements());
+ // Handle any enum constants specially before other entities.
List<Element> enumConstants = new ArrayList<Element>();
for(Element element : enclosedElements) {
if (element.getKind() == ENUM_CONSTANT)
enumConstants.add(element);
}
-
- int i;
- for(i = 0; i < enumConstants.size()-1; i++) {
+ if (!enumConstants.isEmpty()) {
+ int i;
+ for(i = 0; i < enumConstants.size()-1; i++) {
+ this.visit(enumConstants.get(i), true);
+ writer.print(",");
+ }
this.visit(enumConstants.get(i), true);
- writer.print(",");
- }
- if (i >= 0 ) {
- this.visit(enumConstants.get(i), true);
- writer.print(";");
+ writer.println(";\n");
+
+ enclosedElements.removeAll(enumConstants);
}
- enclosedElements.removeAll(enumConstants);
for(Element element : enclosedElements)
this.visit(element);
} else {
--- a/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javah/JavahTask.java Tue Apr 20 01:24:48 2010 -0700
@@ -318,12 +318,6 @@
int run(String[] args) {
try {
handleOptions(args);
- if (classes == null || classes.size() == 0) {
- if (help || version || fullVersion)
- return 0;
- else
- return 1;
- }
boolean ok = run();
return ok ? 0 : 1;
} catch (BadArgs e) {
@@ -355,7 +349,7 @@
fileManager = getDefaultFileManager(diagnosticListener, log);
Iterator<String> iter = args.iterator();
- boolean noArgs = !iter.hasNext();
+ noArgs = !iter.hasNext();
while (iter.hasNext()) {
String arg = iter.next();
@@ -416,9 +410,9 @@
Util util = new Util(log, diagnosticListener);
- if (help) {
+ if (noArgs || help) {
showHelp();
- return true;
+ return help; // treat noArgs as an error for purposes of exit code
}
if (version || fullVersion) {
@@ -636,6 +630,7 @@
String usercp;
List<String> classes;
boolean verbose;
+ boolean noArgs;
boolean help;
boolean trace;
boolean version;
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java Tue Apr 20 01:24:48 2010 -0700
@@ -225,15 +225,15 @@
writeModifiers(flags.getFieldModifiers());
Signature_attribute sigAttr = getSignature(f.attributes);
if (sigAttr == null)
- print(getFieldType(f.descriptor));
+ print(getJavaFieldType(f.descriptor));
else {
try {
Type t = sigAttr.getParsedSignature().getType(constant_pool);
- print(t);
+ print(getJavaName(t.toString()));
} catch (ConstantPoolException e) {
// report error?
// fall back on non-generic descriptor
- print(getFieldType(f.descriptor));
+ print(getJavaFieldType(f.descriptor));
}
}
print(" ");
@@ -314,14 +314,14 @@
}
if (getName(m).equals("<init>")) {
print(getJavaName(classFile));
- print(getParameterTypes(d, flags));
+ print(getJavaParameterTypes(d, flags));
} else if (getName(m).equals("<clinit>")) {
print("{}");
} else {
- print(getReturnType(d));
+ print(getJavaReturnType(d));
print(" ");
print(getName(m));
- print(getParameterTypes(d, flags));
+ print(getJavaParameterTypes(d, flags));
}
Attribute e_attr = m.attributes.get(Attribute.Exceptions);
@@ -460,9 +460,9 @@
}
}
- String getFieldType(Descriptor d) {
+ String getJavaFieldType(Descriptor d) {
try {
- return d.getFieldType(constant_pool);
+ return getJavaName(d.getFieldType(constant_pool));
} catch (ConstantPoolException e) {
return report(e);
} catch (DescriptorException e) {
@@ -470,9 +470,9 @@
}
}
- String getReturnType(Descriptor d) {
+ String getJavaReturnType(Descriptor d) {
try {
- return d.getReturnType(constant_pool);
+ return getJavaName(d.getReturnType(constant_pool));
} catch (ConstantPoolException e) {
return report(e);
} catch (DescriptorException e) {
@@ -480,9 +480,9 @@
}
}
- String getParameterTypes(Descriptor d, AccessFlags flags) {
+ String getJavaParameterTypes(Descriptor d, AccessFlags flags) {
try {
- return adjustVarargs(flags, d.getParameterTypes(constant_pool));
+ return getJavaName(adjustVarargs(flags, d.getParameterTypes(constant_pool)));
} catch (ConstantPoolException e) {
return report(e);
} catch (DescriptorException e) {
--- a/langtools/test/Makefile Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/Makefile Tue Apr 20 01:24:48 2010 -0700
@@ -1,6 +1,20 @@
#
-# Makefile to run jtreg and any other tests
+# Makefile to run jtreg and other tests
+#
+
+# Product builds and langtools builds
+#
+# A full product build (or "control" build) creates a complete JDK image.
+# To test a product build, set TESTJAVA to the path for the image.
#
+# A langtools build just builds the langtools components of a JDK.
+# To test a langtools build, set TESTJAVA to the path for a recent JDK
+# build, and set TESTBOOTCLASSPATH to the compiled langtools classes --
+# for example build/classes or dist/lib/classes.jar.
+
+# JPRT
+# JPRT may invoke this Makefile directly, as part of a langtools build,
+# or indirectly, via FOREST/test/Makefile, as part of a control build.
# Get OS/ARCH specifics
OSNAME = $(shell uname -s)
@@ -41,8 +55,11 @@
# Root of this test area (important to use full paths in some places)
TEST_ROOT := $(shell pwd)
-# Default bundle of all test results (passed or not)
-JPRT_ARCHIVE_BUNDLE=$(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
+# Default bundle of all test results (passed or not) (JPRT only)
+ifdef JPRT_JOB_ID
+ JPRT_CLEAN = clean
+ JPRT_ARCHIVE_BUNDLE = $(TEST_ROOT)/JPRT_ARCHIVE_BUNDLE.zip
+endif
ifeq ($(PLATFORM), windows)
SLASH_JAVA = J:
@@ -57,8 +74,21 @@
JTREG_HOME = $(SLASH_JAVA)/re/jtreg/4.0/promoted/latest/binaries/jtreg
endif
JTREG = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtreg
+JTDIFF = $(JTREG_HOME)/$(JT_PLATFORM)/bin/jtdiff
-# Default JDK for JTREG
+# Default JCK to run
+ifdef JPRT_JCK_HOME
+ JCK_HOME = $(JPRT_JCK_HOME)
+else
+ JCK_HOME = $(SLASH_JAVA)/re/jck/7/promoted/latest/binaries
+endif
+
+# Default JDK for JTREG and JCK
+#
+# JT_JAVA is the version of java used to run jtreg/JCK. Since it is now
+# standard to execute tests in sameVM mode, it should normally be set the
+# same as TESTJAVA (although not necessarily so.)
+#
ifdef JPRT_JAVA_HOME
JT_JAVA = $(JPRT_JAVA_HOME)
else
@@ -72,49 +102,275 @@
TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
endif
-TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
+# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from
+# make/Makefile
+# For langtools, this is a directory containing build and dist
+# For a control build, this is build/$(PRODUCT)-$(ARCH)/j2sdk-image
+ifdef PRODUCT_HOME
+ ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0)
+ TESTBOOTCLASSPATH = $(PRODUCT_HOME)/dist/lib/classes.jar
+ endif
+ ifeq ($(shell [ -r $(PRODUCT_HOME)/lib/tools.jar ]; echo $$?),0)
+ TESTJAVA = $(PRODUCT_HOME)
+ endif
+endif
+
+ifdef TESTBOOTCLASSPATH
+ JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH)
+### In the following, -refvmoptions is an undocumented option
+### The following does not work JCK 7 b30 2/6/2010. Awaiting b31.
+ JCK_OPTIONS += \
+ -vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
+ -refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH)
+endif
+
+# Concurrency is the number of tests that can execute at once.
+# Supported for JCK, not supported for jtreg.
+# On an otherwise empty machine, suggest setting to (#cpus + 2)
+# If unset, the default is (#cpus)
+### RFE: determine and use #cpus
+ifdef JCK_CONCURRENCY
+ JCK_OPTIONS += -concurrency:$(JCK_CONCURRENCY)
+endif
+
+# JCK is executed using "Multi-JVM Group Mode", which is a hybrid
+# of otherVM and sameVM modes. New JVMs are created and reused for
+# a number of tests, then eventually discarded and a new one started.
+# This amortizes the JVM startup time. The "group size" defines
+# how many tests are run in a JVM before it is replaced.
+# If unset, the default is 100.
+JCK_GROUP_SIZE = 1000
+ifdef JCK_GROUP_SIZE
+ JCK_COMPILER_OPTIONS += \
+ -jtoptions:-Ejck.env.compiler.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE) \
+ -jtoptions:-Ejck.env.compiler.compRefExecute.groupMode.groupSize=$(JCK_GROUP_SIZE)
+### The following is not supported. Awaiting RFE 6924287
+### 6924287: Jck4Jdk: Allow to configure test group size for group mode via simple command line option
+### JCK_RUNTIME_OPTIONS += \
+### -jtoptions:-Ejck.env.runtime.testCompile.groupMode.groupSize=$(JCK_GROUP_SIZE)
+endif
+
+# Assertions: some tests show failures when assertions are enabled.
+# Since javac is typically loaded via the bootclassloader (either via TESTJAVA
+# or TESTBOOTCLASSPATH), you may need -esa to enable assertions in javac.
+JTREG_OPTIONS += $(ASSERTION_OPTIONS)
+JCK_OPTIONS += $(ASSERTION_OPTIONS:%=-vmoptions:%)
+
+# Include shared options
+JCK_COMPILER_OPTIONS += $(JCK_OPTIONS)
+JCK_RUNTIME_OPTIONS += $(JCK_OPTIONS)
+
+# Exit codes:
+# jtreg, jck: 0: OK, 1: tests failed, 2: tests error; 3+: SERIOUS
+FATAL_JTREG_EXIT = 3
+FATAL_JCK_EXIT = 3
+# jtdiff: 0: OK, 1: differences found; 2+: SERIOUS
+FATAL_JTDIFF_EXIT = 2
+#
+# Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid
+# having make exit with non-zero return code.
+EXIT = exit
+# Function to exit shell if exit code of preceding command is greater than or equal
+# to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed.
+EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi
# The test directories to run
DEFAULT_TESTDIRS = .
TESTDIRS = $(DEFAULT_TESTDIRS)
# Root of all test results
-TEST_OUTPUT_DIR = $(TEST_ROOT)/o_$(PLATFORM)-$(ARCH)
+TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools
+ABS_TEST_OUTPUT_DIR := \
+ $(shell mkdir -p $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
+ cd $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
+ pwd )
+# Subdirectories for different test runs
+JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg
+JCK_COMPILER_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-compiler
+JCK_RUNTIME_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jck-runtime-Xcompile
-# Default make rule
-all apt javac javadoc javah javap: clean check jtreg-tests $(JPRT_ARCHIVE_BUNDLE)
+# Default make rule -- warning, may take a while
+all: $(JPRT_CLEAN) jtreg-tests jck-compiler-tests jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) all-summary
+ @echo "Testing completed successfully"
+
+jtreg apt javac javadoc javah javap: $(JPRT_CLEAN) jtreg-tests $(JPRT_ARCHIVE_BUNDLE) jtreg-summary
+ @echo "Testing completed successfully"
+
+jck-compiler: $(JPRT_CLEAN) jck-compiler-tests $(JPRT_ARCHIVE_BUNDLE) jck-compiler-summary
+ @echo "Testing completed successfully"
+
+jck-runtime: $(JPRT_CLEAN) jck-runtime-tests $(JPRT_ARCHIVE_BUNDLE) jck-runtime-summary
@echo "Testing completed successfully"
# for use with JPRT -testrule
-all: TESTDIRS = .
-apt: TESTDIRS = tools/apt
-javac: TESTDIRS = tools/javac
-javadoc: TESTDIRS = tools/javadoc com/sun/javadoc
-javah: TESTDIRS = tools/javah
-javap: TESTDIRS = tools/javap
+all: JTREG_TESTDIRS = .
+jtreg: JTREG_TESTDIRS = .
+apt: JTREG_TESTDIRS = tools/apt
+javac: JTREG_TESTDIRS = tools/javac
+javadoc: JTREG_TESTDIRS = tools/javadoc com/sun/javadoc
+javah: JTREG_TESTDIRS = tools/javah
+javap: JTREG_TESTDIRS = tools/javap
+
+# Run jtreg tests
+#
+# JTREG_HOME
+# Installed location of jtreg
+# JT_JAVA
+# Version of java used to run jtreg. Should normally be the same as TESTJAVA
+# TESTJAVA
+# Version of java to be tested.
+# JTREG_OPTIONS
+# Additional options for jtreg
+# JTREG_TESTDIRS
+# Directories of tests to be run
+# JTREG_OUTPUT_DIR
+# Where to write the results
+# JTREG_REFERENCE
+# (Optional) reference results (e.g. work, report or summary.txt)
+#
+jtreg-tests: check-jtreg FRC
+ @rm -f -r $(JTREG_OUTPUT_DIR)/JTwork $(JTREG_OUTPUT_DIR)/JTreport \
+ $(JTREG_OUTPUT_DIR)/diff.html $(JTREG_OUTPUT_DIR)/status.txt
+ @mkdir -p $(JTREG_OUTPUT_DIR)
+ JT_JAVA=$(JT_JAVA) $(JTREG) \
+ -J-Xmx512m \
+ -a -samevm -ignore:quiet -v:fail,error,nopass \
+ -r:$(JTREG_OUTPUT_DIR)/JTreport \
+ -w:$(JTREG_OUTPUT_DIR)/JTwork \
+ -jdk:$(TESTJAVA) \
+ $(JAVA_ARGS:%=-vmoption:%) \
+ $(JTREG_OPTIONS) \
+ $(JTREG_TESTDIRS) \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JTREG_EXIT)) ; \
+ echo $$status > $(JTREG_OUTPUT_DIR)/status.txt \
+ )
+ifdef JTREG_REFERENCE
+ JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JTREG_OUTPUT_DIR)/diff.html \
+ $(JTREG_REFERENCE) $(JTREG_OUTPUT_DIR)/JTreport \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jtreg-summary: FRC
+ if [ -r $(JTREG_OUTPUT_DIR)/status.txt ]; then \
+ echo ; echo "Summary of jtreg test failures" ; \
+ cat $(JTREG_OUTPUT_DIR)/JTreport/text/summary.txt | \
+ grep -v 'Not run' | grep -v 'Passed' ; \
+ echo ; \
+ $(EXIT) `cat $(JTREG_OUTPUT_DIR)/status.txt` ; \
+ fi
# Check to make sure these directories exist
-check: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
+check-jtreg: $(JT_HOME) $(PRODUCT_HOME) $(JTREG)
+
+
+# Run JCK-compiler tests
+#
+# JCK_HOME
+# Installed location of JCK: should include JCK-compiler, and JCK-extras
+# JT_JAVA
+# Version of java used to run JCK. Should normally be the same as TESTJAVA
+# TESTJAVA
+# Version of java to be tested.
+# JCK_COMPILER_OPTIONS
+# Additional options for JCK-compiler
+# JCK_COMPILER_TESTDIRS
+# Directories of tests to be run
+# JCK_COMPILER_OUTPUT_DIR
+# Where to write the results
+# JCK_COMPILER_REFERENCE
+# (Optional) reference results (e.g. work, report or summary.txt)
+#
+jck-compiler-tests: check-jck FRC
+ @rm -f -r $(JCK_COMPILER_OUTPUT_DIR)/work $(JCK_COMPILER_OUTPUT_DIR)/report \
+ $(JCK_COMPILER_OUTPUT_DIR)/diff.html $(JCK_COMPILER_OUTPUT_DIR)/status.txt
+ @mkdir -p $(JCK_COMPILER_OUTPUT_DIR)
+ $(JT_JAVA)/bin/java -XX:MaxPermSize=256m -Xmx512m \
+ -jar $(JCK_HOME)/JCK-compiler-7/lib/jtjck.jar \
+ -v:non-pass \
+ -r:$(JCK_COMPILER_OUTPUT_DIR)/report \
+ -w:$(JCK_COMPILER_OUTPUT_DIR)/work \
+ -jdk:$(TESTJAVA) \
+ $(JCK_COMPILER_OPTIONS) \
+ $(JCK_COMPILER_TESTDIRS) \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \
+ echo $$status > $(JCK_COMPILER_OUTPUT_DIR)/status.txt \
+ )
+ifdef JCK_COMPILER_REFERENCE
+ JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_COMPILER_OUTPUT_DIR)/diff.html \
+ $(JCK_COMPILER_REFERENCE) $(JCK_COMPILER_OUTPUT_DIR)/report \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jck-compiler-summary: FRC
+ if [ -r $(JCK_COMPILER_OUTPUT_DIR)/status.txt ]; then \
+ echo ; echo "Summary of JCK-compiler test failures" ; \
+ cat $(JCK_COMPILER_OUTPUT_DIR)/report/text/summary.txt | \
+ grep -v 'Not run' | grep -v 'Passed' ; \
+ echo ; \
+ $(EXIT) `cat $(JCK_COMPILER_OUTPUT_DIR)/status.txt` ; \
+ fi
-# Run the tests
-jtreg-tests: FRC
- @echo "Using export JAVA_TOOL_OPTIONS=$(JAVA_TOOL_OPTIONS)"
- @rm -f -r $(TEST_OUTPUT_DIR)/JTwork $(TEST_OUTPUT_DIR)/JTreport
- @mkdir -p $(TEST_OUTPUT_DIR)
- JT_JAVA=$(JT_JAVA) $(JTREG) \
- -a -samevm -k:\!ignore -v:fail,error,nopass \
- -r:$(TEST_OUTPUT_DIR)/JTreport \
- -w:$(TEST_OUTPUT_DIR)/JTwork \
- -jdk:$(TESTJAVA) \
- -Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
- $(JAVA_ARGS:%=-vmoption:%) \
- $(TESTDIRS) \
- || ( status=$$? ; \
- echo ; echo "Summary of test failures" ; \
- cat $(TEST_OUTPUT_DIR)/JTreport/text/summary.txt | \
- grep -v 'Not run' | grep -v 'Passed' ; \
- echo ; \
- exit $$status )
+# Run JCK-runtime tests in -Xcompile mode
+# This is a special mode to test javac by compiling the tests in the JCK-runtime test suite
+# Normal JCK-runtime invocation belongs in the jdk/ repository.
+#
+# JCK_HOME
+# Installed location of JCK: should include JCK-compiler, JCK-runtime and JCK-extras
+# JT_JAVA
+# Version of java used to run JCK. Should normally be the same as TESTJAVA
+# TESTJAVA
+# Version of java to be tested.
+# JCK_RUNTIME_OPTIONS
+# Additional options for JCK-runtime
+# JCK_RUNTIME_TESTDIRS
+# Directories of tests to be run
+# JCK_RUNTIME_OUTPUT_DIR
+# Where to write the results
+# JCK_RUNTIME_REFERENCE
+# (Optional) reference results (e.g. work, report or summary.txt)
+#
+jck-runtime-tests: check-jck FRC
+ @rm -f -r $(JCK_RUNTIME_OUTPUT_DIR)/work $(JCK_RUNTIME_OUTPUT_DIR)/report \
+ $(JCK_RUNTIME_OUTPUT_DIR)/diff.html $(JCK_RUNTIME_OUTPUT_DIR)/status.txt
+ @mkdir -p $(JCK_RUNTIME_OUTPUT_DIR)
+ $(JT_JAVA)/bin/java -XX:MaxPermSize=256m -Xmx512m \
+ -jar $(JCK_HOME)/JCK-runtime-7/lib/jtjck.jar \
+ -v:non-pass \
+ -r:$(JCK_RUNTIME_OUTPUT_DIR)/report \
+ -w:$(JCK_RUNTIME_OUTPUT_DIR)/work \
+ -jdk:$(TESTJAVA) \
+ -Xcompile \
+ $(JCK_RUNTIME_OPTIONS) \
+ $(JCK_RUNTIME_TESTDIRS) \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JCK_EXIT)) ; \
+ echo $$status > $(JCK_RUNTIME_OUTPUT_DIR)/status.txt \
+ )
+ifdef JCK_RUNTIME_REFERENCE
+ JT_JAVA=$(JT_JAVA) $(JTDIFF) -o $(JCK_RUNTIME_OUTPUT_DIR)/diff.html \
+ $(JCK_RUNTIME_REFERENCE) $(JCK_RUNTIME_OUTPUT_DIR)/report \
+ || ( $(call EXIT_IF_FATAL,$(FATAL_JTDIFF_EXIT)) )
+endif
+
+jck-runtime-summary: FRC
+ if [ -r $(JCK_RUNTIME_OUTPUT_DIR)/status.txt ]; then \
+ echo ; echo "Summary of JCK-runtime test failures" ; \
+ cat $(JCK_RUNTIME_OUTPUT_DIR)/report/text/summary.txt | \
+ grep -v 'Not run' | grep -v 'Passed' ; \
+ echo ; \
+ $(EXIT) `cat $(JCK_RUNTIME_OUTPUT_DIR)/status.txt` ; \
+ fi
+
+# Check to make sure these directories exist
+check-jck: $(JT_HOME) $(JCK_HOME) $(PRODUCT_HOME)
+
+all-summary: FRC
+ if [ -n "`find $(TEST_OUTPUT_DIR) -name status.txt`" ]; then
+ echo ; echo "Summary of test failures" ; \
+ cat `find $(TEST_OUTPUT_DIR) -name summary.txt` | \
+ grep -v 'Not run' | grep -v 'Passed' ; \
+ echo ; \
+ $(EXIT) 1
+ fi
# Bundle up the results
$(JPRT_ARCHIVE_BUNDLE): FRC
@@ -124,12 +380,17 @@
# Cleanup
clean:
- rm -f -r $(TEST_OUTPUT_DIR)
rm -f $(JPRT_ARCHIVE_BUNDLE)
# Used to force a target rules to run
FRC:
# Phony targets (e.g. these are not filenames)
-.PHONY: all tests clean check
+.PHONY: all clean \
+ jtreg javac javadoc javah javap jtreg-tests jtreg-summary check-jtreg \
+ jck-compiler jck-compiler-tests jck-compiler-summary \
+ jck-runtime jck-runtime-tests jck-runtime-summary check-jck
+# No use of suffix rules
+.SUFFIXES:
+
--- a/langtools/test/tools/javac/OverrideChecks/6738538/T6738538a.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/OverrideChecks/6738538/T6738538a.java Tue Apr 20 01:24:48 2010 -0700
@@ -41,4 +41,4 @@
public T m();
}
class Crash<T extends C<?> & I> {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/OverrideChecks/6738538/T6738538b.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/OverrideChecks/6738538/T6738538b.java Tue Apr 20 01:24:48 2010 -0700
@@ -44,4 +44,4 @@
}
class C2<T extends C1<?> & I2> {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/api/6731573/Erroneous.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/api/6731573/Erroneous.java Tue Apr 20 01:24:48 2010 -0700
@@ -1,4 +1,4 @@
class A {
boolean b;
boolean b;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/api/6731573/T6731573.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/api/6731573/T6731573.java Tue Apr 20 01:24:48 2010 -0700
@@ -106,4 +106,4 @@
public static void main(String... args) throws Exception {
new T6731573().test();
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6548436/T6548436d.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/cast/6548436/T6548436d.java Tue Apr 20 01:24:48 2010 -0700
@@ -37,4 +37,4 @@
static void test(Base<? extends Double> je) {
Object o = (Base<Integer>)je;
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6558559/T6558559a.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/cast/6558559/T6558559a.java Tue Apr 20 01:24:48 2010 -0700
@@ -37,4 +37,4 @@
A<?> x = null;
B<?> y = (B<?>)x;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6558559/T6558559b.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/cast/6558559/T6558559b.java Tue Apr 20 01:24:48 2010 -0700
@@ -40,4 +40,4 @@
Object o = unboundList;
Throwable t3 = (Throwable) o;
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/cast/6586091/T6586091.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/cast/6586091/T6586091.java Tue Apr 20 01:24:48 2010 -0700
@@ -35,4 +35,4 @@
A<A<?>> t = null;
B c = (B)t;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/enum/T6724345.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/enum/T6724345.java Tue Apr 20 01:24:48 2010 -0700
@@ -48,4 +48,4 @@
enum E implements I {
V {public void i() {}};
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6557954.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/T6557954.java Tue Apr 20 01:24:48 2010 -0700
@@ -33,4 +33,4 @@
class T6557954<T> {
class Foo<U extends T> {}
T6557954<Number>.Foo<Integer> f;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6751514.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/T6751514.java Tue Apr 20 01:24:48 2010 -0700
@@ -79,4 +79,4 @@
" - found: " + found + ")");
}
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/T6869075.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/T6869075.java Tue Apr 20 01:24:48 2010 -0700
@@ -64,4 +64,4 @@
" - found: " + found + ")");
}
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/inference/6569789/T6569789.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/inference/6569789/T6569789.java Tue Apr 20 01:24:48 2010 -0700
@@ -41,4 +41,4 @@
}
static <W extends C & I & I1 & I2, T extends W> void testMethod(T t) {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/inference/6650759/T6650759a.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/inference/6650759/T6650759a.java Tue Apr 20 01:24:48 2010 -0700
@@ -42,4 +42,4 @@
Integer test = getGenericValue(new IntegerInterface());
testSet(getGenericValue(new IntegerInterface()));
}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/generics/wildcards/T6732484.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/generics/wildcards/T6732484.java Tue Apr 20 01:24:48 2010 -0700
@@ -34,4 +34,4 @@
class B extends A<B> {}
A<? super B> f;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javac/processing/model/util/elements/Foo.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/processing/model/util/elements/Foo.java Tue Apr 20 01:24:48 2010 -0700
@@ -26,4 +26,4 @@
* Dummy type to compile.
*/
public class Foo {
-}
\ No newline at end of file
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/model/util/elements/VacuousEnum.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937417
+ * @summary Test -Xprint on enum type with no constants
+ * @author Joseph D. Darcy
+ * @compile -Xprint VacuousEnum.java
+ */
+public enum VacuousEnum {
+ // But alas, no enum constants!
+}
--- a/langtools/test/tools/javac/varargs/T6746184.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javac/varargs/T6746184.java Tue Apr 20 01:24:48 2010 -0700
@@ -36,4 +36,4 @@
class A {
public static void m(final Object... varargs) {}
private static void m(final Object singleArg) {}
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javah/T6893943.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javah/T6893943.java Tue Apr 20 01:24:48 2010 -0700
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 6893943
+ * @bug 6893943 6937318
* @summary exit code from javah with no args is 0
*/
@@ -31,22 +31,32 @@
import java.util.*;
public class T6893943 {
+ static final String[] NO_ARGS = { };
+ static final String[] HELP = { "-help" };
+ static final String NEWLINE = System.getProperty("line.separator");
+
public static void main(String... args) throws Exception {
new T6893943().run();
}
void run() throws Exception {
- testSimpleAPI();
- testCommand();
+ testSimpleAPI(NO_ARGS, 1);
+ testSimpleAPI(HELP, 0);
+ testCommand(NO_ARGS, 1);
+ testCommand(HELP, 0);
}
- void testSimpleAPI() throws Exception {
- PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.err));
- int rc = com.sun.tools.javah.Main.run(new String[] { }, pw);
- expect("testSimpleAPI", rc, 1);
+ void testSimpleAPI(String[] args, int expect_rc) throws Exception {
+ System.err.println("Test simple api: " + Arrays.asList(args));
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javah.Main.run(args, pw);
+ pw.close();
+ expect("testSimpleAPI", sw.toString(), rc, expect_rc);
}
- void testCommand() throws Exception {
+ void testCommand(String[] args, int expect_rc) throws Exception {
+ System.err.println("Test command: " + Arrays.asList(args));
File javaHome = new File(System.getProperty("java.home"));
if (javaHome.getName().equals("jre"))
javaHome = javaHome.getParentFile();
@@ -54,22 +64,32 @@
List<String> command = new ArrayList<String>();
command.add(new File(new File(javaHome, "bin"), "javah").getPath());
command.add("-J-Xbootclasspath:" + System.getProperty("sun.boot.class.path"));
+ command.addAll(Arrays.asList(args));
//System.err.println("command: " + command);
ProcessBuilder pb = new ProcessBuilder(command);
pb.redirectErrorStream(true);
Process p = pb.start();
p.getOutputStream().close();
+ StringWriter sw = new StringWriter();
String line;
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = in.readLine()) != null)
- System.err.println("javah: " + line);
+ sw.write(line + NEWLINE);
int rc = p.waitFor();
- expect("testCommand", rc, 1);
+ expect("testCommand", sw.toString(), rc, expect_rc);
}
- void expect(String name, int actual, int expect) throws Exception {
- if (actual != expect)
- throw new Exception(name + ": unexpected exit: " + actual + ", expected: " + expect);
+ void expect(String name, String out, int actual_rc, int expect_rc) throws Exception {
+ if (out.isEmpty())
+ throw new Exception("No output from javah");
+
+ if (!out.startsWith("Usage:")) {
+ System.err.println(out);
+ throw new Exception("Unexpected output from javah");
+ }
+
+ if (actual_rc != expect_rc)
+ throw new Exception(name + ": unexpected exit: " + actual_rc + ", expected: " + expect_rc);
}
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/6937244/T6937244.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937244
+ * @summary fields display with JVMS names, not Java names
+ */
+
+import java.io.*;
+
+public class T6937244 {
+ public static void main(String[] args) throws Exception {
+ new T6937244().run();
+ }
+
+ void run() throws Exception {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ String[] args = { "java.lang.String" };
+ int rc = com.sun.tools.javap.Main.run(args, pw);
+ pw.close();
+ String out = sw.toString();
+ System.err.println(out);
+ if (rc != 0)
+ throw new Exception("unexpected exit from javap: " + rc);
+ for (String line: out.split("[\r\n]+")) {
+ if (line.contains("CASE_INSENSITIVE_ORDER")) {
+ if (line.matches("\\s*\\Qpublic static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;\\E\\s*"))
+ return;
+ throw new Exception("declaration not shown as expected");
+ }
+ }
+ throw new Exception("declaration of CASE_INSENSITIVE_ORDER not found");
+ }
+}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/6937244/T6937244A.java Tue Apr 20 01:24:48 2010 -0700
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6937244
+ * @summary fields display with JVMS names, not Java names
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T6937244A {
+ public static void main(String[] args) throws Exception {
+ new T6937244A().run();
+ }
+
+ void run() throws Exception {
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ String[] args = { "Test" };
+ int rc = com.sun.tools.javap.Main.run(args, pw);
+ pw.close();
+ String out = sw.toString();
+ System.err.println(out);
+ if (rc != 0)
+ throw new Exception("unexpected exit from javap: " + rc);
+
+ int count = 0;
+
+ for (String line: out.split("[\r\n]+")) {
+ if (line.contains("extends")) {
+ verify(line, "extends java.lang.Object implements java.util.List<java.lang.String>");
+ count++;
+ }
+
+ if (line.contains("field")) {
+ verify(line, "java.util.List<java.lang.String> field");
+ count++;
+ }
+
+ if (line.contains("method")) {
+ verify(line, "java.util.List<java.lang.String> method(java.util.List<java.lang.String>) throws java.lang.Exception");
+ count++;
+ }
+ }
+
+ // final backstop check
+ if (out.contains("/"))
+ throw new Exception("unexpected \"/\" in output");
+
+ if (count != 3)
+ throw new Exception("wrong number of matches found: " + count);
+ }
+
+ void verify(String line, String expect) throws Exception {
+ if (!line.contains(expect)) {
+ System.err.println("line: " + line);
+ System.err.println("expect: " + expect);
+ throw new Exception("expected string not found in line");
+ }
+ }
+}
+
+
+abstract class Test implements List<String> {
+ public List<String> field;
+ public List<String> method(List<String> arg) throws Exception { return null; }
+}
+
--- a/langtools/test/tools/javap/T6715251.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javap/T6715251.java Tue Apr 20 01:24:48 2010 -0700
@@ -71,4 +71,4 @@
String log;
int errors;
-}
\ No newline at end of file
+}
--- a/langtools/test/tools/javap/T6715753.java Sun Apr 11 23:21:23 2010 -0700
+++ b/langtools/test/tools/javap/T6715753.java Tue Apr 20 01:24:48 2010 -0700
@@ -47,4 +47,4 @@
throw new Exception("test failed");
}
}
-}
\ No newline at end of file
+}
--- a/make/jprt.properties Sun Apr 11 23:21:23 2010 -0700
+++ b/make/jprt.properties Tue Apr 20 01:24:48 2010 -0700
@@ -62,6 +62,7 @@
# Test targets in test/Makefile
jprt.make.rule.test.targets= \
+ *-product-*-langtools_jtreg, \
*-product-*-jdk_beans1, \
*-product-*-jdk_beans2, \
*-product-*-jdk_beans3, \
@@ -84,7 +85,6 @@
*-product-*-jdk_util
# Not Ready Yet:
-# *-product-*-langtools_all
# *-product-*-jdk_awt
# *-product-*-jdk_rmi
# *-product-*-jdk_swing
--- a/test/Makefile Sun Apr 11 23:21:23 2010 -0700
+++ b/test/Makefile Tue Apr 20 01:24:48 2010 -0700
@@ -42,6 +42,7 @@
$(MAKE) -C $1/test $2 ; \
else \
echo "ERROR: File does not exist: $1/test/Makefile"; \
+ exit 1; \
fi; \
else \
echo "WARNING: No testing done, directory does not exist: $1"; \
@@ -49,7 +50,7 @@
endef
# Test target list for langtools repository
-LANGTOOLS_TEST_LIST = langtools_all
+LANGTOOLS_TEST_LIST = langtools_jtreg
# Test target list for jdk repository
JDK_TEST_LIST = \
@@ -74,7 +75,7 @@
# Test targets
$(LANGTOOLS_TEST_LIST):
- @$(call SUBDIR_TEST, $(LANGTOOLS_DIR), all)
+ @$(call SUBDIR_TEST, $(LANGTOOLS_DIR), $(subst langtools_,,$@))
$(JDK_TEST_LIST):
@$(call SUBDIR_TEST, $(JDK_DIR), $@)